Το πακέτο org.eclipse.jdt.ui.wizards παρέχει σελίδες οδηγού για τη δημιουργία και τη ρύθμιση των στοιχείων Java. Μπορείτε να χρησιμοποιήσετε ορισμένες προκατασκευασμένες σελίδες που παρέχονται.
Η κλάση JavaCapabilityConfigurationPage υποστηρίζει την τροποποίηση των ρυθμίσεων δόμησης Java (ορισμός φακέλου πρωτογενούς κώδικα, έργα στα οποία γίνεται παραπομπή, βιβλιοθήκες στις οποίες γίνεται παραπομπή και βιβλιοθήκες που εξάγονται).
Αν θέλετε την παροχή ενός οδηγού ο οποίος ρυθμίζει ένα έργο για την πρόσθετη λειτουργία σας, ενώ ταυτόχρονα πραγματοποιεί ρυθμίσεις για τη φύση Java και άλλες δυνατότητες έργου Java, θα πρέπει να χρησιμοποιήσετε τη σελίδα αυτή (και όχι να δημιουργήσετε υποκλάσεις στην NewJavaProjectWizardPage).
Μια ιεραρχία σελίδων οδηγού υποστηρίζει τη δημιουργία νέων στοιχείων Java.
Η κλάση NewElementWizardPage είναι η αφηρημένη κλάση η οποία ορίζει τη βασική λειτουργία του οδηγού. Πρόσθετες αφηρημένες κλάσεις παρέχονται στην ιεραρχία για την προσαρμογή της λειτουργικότητας η οποία παρέχεται από τους πραγματικούς οδηγούς.
Οι πραγματικοί οδηγοί δημιουργίας μπορούν να χρησιμοποιηθούν απευθείας και γενικά δεν προβλέπεται η δημιουργία υποκλάσεων σε αυτούς.
Η διεπαφή IClasspathContainerPage ορίζει μια δομή για τη συνεισφορά μιας σελίδας οδηγού, η οποία επιτρέπει στον χρήστη να ορίζει μια νέα καταχώρηση θέσης υποδοχής διαδρομής κλάσεων ή να τροποποιεί μια υπάρχουσα. Αν στην πρόσθετη λειτουργία σας έχει οριστεί ένα δικό της είδος θέσης υποδοχής διαδρομής κλάσεων με τη χρήση του σημείου επέκτασης org.eclipse.jdt.core.classpathContainerInitializer του πυρήνα JDT, τότε θα θέλετε πιθανώς να ορίσετε μια αντίστοιχη σελίδα οδηγού για την τροποποίηση και τη δημιουργία θέσεων υποδοχής διαδρομής κλάσεων του ίδιου είδους.
Ο κώδικας της πρόσθετης λειτουργίας σας θα πρέπει να παρέχει μια επέκταση org.eclipse.jdt.ui.classpathContainerPage. Στη μορφοποίηση της επέκτασης, θα πρέπει να δώσετε το όνομα της κλάσης η οποία υλοποιεί τη διεπαφή IClasspathContainerPage. Αν χρειάζεστε πρόσθετες πληροφορίες στη σελίδα του οδηγού σχετικά με την επιλογή του περιβάλλοντος της διαδρομής κλάσεων, μπορείτε να υλοποιήσετε τη διεπαφή IClasspathContainerPageExtension. Αν θέλετε να επιστρέφονται περισσότερες από μία καταχωρήσεις κατά την προσθήκη της σελίδας ρύθμισης, πρέπει να υλοποιήσετε τη διεπαφή IClasspathContainerPageExtension2.
Εκτός από τη χρήση προκατασκευασμένων σελίδων, μπορείτε να δημιουργήσετε υποκλάσεις στις σελίδες οδηγού για να προσθέσετε τα δικά σας πεδία εισόδου ή για να παρέμβετε στη δημιουργία κώδικα. Για να προσαρμόσετε έναν οδηγό, συνιστάται να χρησιμοποιήσετε τις αφηρημένες κλάσεις στην ιεραρχία NewElementWizardPage αντί να δημιουργήσετε υποκλάσεις των κανονικών κλάσεων.
Παρακάτω δίνεται ένα δείγμα μιας σελίδας οδηγού δημιουργίας είδους, η οποία προσαρμόζεται για τη δημιουργία κλάσεων σεναρίων δοκιμής JUnit. Η σελίδα αποδίδει αρχικές τιμές στο πεδίο υπερκλάσης με "junit.framework.TestCase" και προσθέτει ένα τετραγωνίδιο επιλογής το οποίο ελέγχει αν θα δημιουργηθούν στελέχη για τη μέθοδο setUp()
και tearDown()
.
public class TestCaseWizardPage extends NewTypeWizardPage { private Button fCreateStubs; public TestCaseWizardPage() { super(true, "TestCaseWizardPage"); } /** * The wizard managing this wizard page must call this method * during initialization with a corresponding selection. */ public void init(IStructuredSelection selection) { IJavaElement jelem= getInitialJavaElement(selection); initContainerPage(jelem); initTypePage(jelem); doStatusUpdate(); } private void doStatusUpdate() { // define the components for which a status is desired IStatus[] status= new IStatus[] { fContainerStatus, isEnclosingTypeSelected() ? fEnclosingTypeStatus : fPackageStatus, fTypeNameStatus, }; updateStatus(status); } protected void handleFieldChanged(String fieldName) { super.handleFieldChanged(fieldName); doStatusUpdate(); } public void createControl(Composite parent) { initializeDialogUnits(parent); Composite composite= new Composite(parent, SWT.NONE); int nColumns= 4; GridLayout layout= new GridLayout(); layout.numColumns= nColumns; composite.setLayout(layout); // Create the standard input fields createContainerControls(composite, nColumns); createPackageControls(composite, nColumns); createSeparator(composite, nColumns); createTypeNameControls(composite, nColumns); createSuperClassControls(composite, nColumns); // Create the checkbox controlling whether we want stubs fCreateStubs= new Button(composite, SWT.CHECK); fCreateStubs.setText("Add 'setUp()' and 'tearDown()' to new class"); GridData gd= new GridData(); gd.horizontalSpan= nColumns; fCreateStubs.setLayoutData(gd); setControl(composite); // Initialize the super type field and mark it as read-only setSuperClass("junit.framework.TestCase", false); } protected void createTypeMembers(IType newType, ImportsManager imports, IProgressMonitor monitor) throws CoreException { if (fCreateStubs.getSelection()) { String setUpMathod= "public void setUp() {}"; newType.createMethod(setUpMathod, null, false, null); String tearDownMathod= "public void tearDown() {}"; newType.createMethod(tearDownMathod, null, false, null); } } }