Come creare una pagina della procedura guidata di un nuovo elemento Java personalizzata

Il pacchettoorg.eclipse.jdt.ui.wizards fornisce pagine della procedura guidata per la creazione di elementi Java. Utilizzando le pagine predefinite, inoltre, i client possono collocare le pagine della procedura guidata in sottoclassi per aggiungere i propri campi di immissione oppure per influenzare la generazione del codice. Di seguito è riportato l'esempio di una pagina di procedura guidata di un nuovo tipo che viene personalizzata per la creazione di classi di tipi di test JUnit. La pagina inizializza il campo di superclasse con "junit.framework.TestCase" e aggiunge una casella di controllo che controlla se creare gli stub di metodo per i metodi setUp() e tearDown().

public class TestCaseWizardPage extends NewTypeWizardPage {

private Button fCreateStubs; public TestCaseWizardPage() { super(true, "TestCaseWizardPage"); } /** * La procedura guidata che gestisce questa pagina della procedura guidata deve richiamare questo metodo * durante l'inizializzazione con una selezione corrispondente. */ public void init(IStructuredSelection selection) { IJavaElement jelem= getInitialJavaElement(selection); initContainerPage(jelem); initTypePage(jelem); // definire i componenti per cui si desidera uno stato IStatus[] status= new IStatus[] { fContainerStatus, isEnclosingTypeSelected() ? fEnclosingTypeStatus : fPackageStatus, fTypeNameStatus, }; updateStatus(status); } 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); // Creare i campi di immissione standard createContainerControls(composite, nColumns); createPackageControls(composite, nColumns); createSeparator(composite, nColumns); createTypeNameControls(composite, nColumns); createSuperClassControls(composite, nColumns); // Creare la casella che controlla se inserire stub 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); // Inizializzare il campo del supertipo e contrassegnarlo come campo di sola lettura 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 setUp() {}" newType.createMethod(tearDownMathod, null, false, null); } } }

Copyright IBM Corporation e altri 2000, 2002. Tutti i diritti riservati.