Paketet org.eclipse.jdt.ui.wizards tillhandahåller guidesidor för att skapa och konfigurera Java-element. Det finns flera prefabricerade sidor som du kan använda.
JavaCapabilityConfigurationPage stöder redigering av Java-bygginställningar (konfiguration av källmapp, hänvisade projekt och hänvisade och exporterade bibliotek).
Om du behöver tillhandahålla en guide som konfigurerar ett projekt för ditt insticksprogram samtidigt som du även konfigurerar det med Java-naturen och andra egenskaper för Java-projekt, bör du använda denna sida (snarare än att användaNewJavaProjectWizardPage som underordnad klass).
En hierarki av guidesidor stöder skapandet av nya Java-element.
NewElementWizardPage är den abstrakta klass som definierar guidens grundfunktioner. Ytterligare abstrakta klasser finns i hierarkin för att göra anpassningar av funktionaliteten som tillhandahålls av de konkreta guiderna.
Guiderna för konkret skapande kan användas direkt och är generellt inte avsedda att användas i underordnade klasser.
Gränssnittet IClasspathContainerPage definierar en struktur för att samverka med en guidesida som låter en användare definiera en ny classpath-behållarpost eller redigera en befintlig. Om ditt insticksprogram har definierat en egen typ av classpath-behållare med utökningspunkten org.eclipse.jdt.core.classpathContainerInitializer i KDT Core, vill du sannolikt definiera en motsvarande guidesida för att redigera och skapa classpath-behållare av denna typ.
Insticksprogrammets märkordsuppsättning ska tillhandahålla tilläggetorg.eclipse.jdt.ui.classpathContainerPage. I insticksprogrammets märkordsuppsättning tillhandahåller du namnet på den klass som implementerar IClasspathContainerPage. Om du behöver ytterligare information på guidesidan om en klassökvägs kontext när den väljs, kan du implementera IClasspathContainerPageExtension. Om din konfigurationssida vill returnera mer än en post när den lagts till, implementerar du IClasspathContainerPageExtension2.
Vid sidan av att använda prefabricerade sidor kan du använda guidesidorna som underordnade klasser och lägga till egna inmatningsfält eller för att påverka kodgenereringen. Du bör använda de abstrakta klasserna i hierarkin NewElementWizardPagetill att anpassa en guide snarare än att använda de konkreta klasserna som underordnade klasser.
Nedan är ett exempel på en guidesida för ny typ som anpassas för att skapa JUnit-testfallsklasser.
Sidan initierar superklassfältet med "junit.framework.TestCase"
och lägger till en kryssruta som styr huruvida anslutningar för metoderna setUp()
och tearDown()
ska skapas.
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); } } }