A org.eclipse.jdt.ui.wizards csomag varázsló oldalakat biztosít Java elemek létrehozásához és beállításához. Számos előre elkészített oldal áll rendelkezésre.
JavaCapabilityConfigurationPage támogatja a Java összeépítés beállításainak szerkesztését (forrásmappa beállítás, hivatkozott projektek, hivatkozott és exportált könyvtárak).
Ha olyan varázslóra van szüksége, ami a bedolgozó számára beállít egy projektet, míg a Java környezethez és más Java projekt képességekhez is beállítja, akkor ezt az oldalt használja (ahelyett, hogy továbbmenne a NewJavaProjectWizardPage oldalra).
A varázsló oldalak hierarchiája támogatja új Java elemek létrehozását.
A NewElementWizardPage a varázsló alapműveleteit meghatározó absztrakt osztály. A hierarchia további absztrakt osztályokat biztosít a konkrét varázsló által nyújtott funkcionalitás személyre szabásához.
A konkrét létrehozási varázslók közvetlenül használhatók és általánosan ne tervezzen továbbszármaztatásukkal.
Az IClasspathContainerPage felület a varázsló oldalakhoz hozzáadó struktúrát határoz meg, amely lehetővé teszi, hogy a felhasználó új osztályútvonal tároló bejegyzésést határozzon meg, vagy egy meglévőt szerkeszthessen. Ha a bedolgozó saját osztályútvonal tárolót határozott meg a JDT törzs org.eclipse.jdt.core.classpathContainerInitializer kiterjesztési ponttal, akkor ajánlott egy vonatkozó varázsló oldalt is létrehozni az ilyen típusú osztályútvonal tárolók létrehozásához és szerkesztéséhez.
A bedolgozó kódjának biztosítania kell az org.eclipse.jdt.ui.classpathContainerPage kiterjesztést. A kiterjesztés kódjában fenn kell tartani az IClasspathContainerPage megvalósító osztály nevét. Ha további információkat szeretne biztosítani a varázsló oldalban az aktuálisan kijelölt osztályútvonal környezetéről, akkor valósítsa meg a IClasspathContainerPageExtension felületet, hogy inicializálhassa a kijelölt osztályútvonal bejegyzéseitől függő bármely állapotot.
Amellett, hogy előre elkészített oldalakat használ a varázsló oldalakat továbbszármaztatásával saját beviteli mezőket adhat hozzá vagy a kód előállításra lehet hatással. Használja a NewElementWizardPage hierarchia absztrakt osztályait a varázsló személyre szabásához a konkrét osztály továbbszármaztatása helyett.
Az alábbiakban egy új típus varázsló oldal példája látható, amely úgy lett beállítva, hogy JUnit tesztlépés osztályokat hozzon létre.
Az oldal a "junit.framework.TestCase" segítségével inicalizálja a
szülőosztályt és egy kiegészíti egy jelölőnégyzettel, amely azt vezérli, hogy a
setUp()
és a tearDown()
metódusoknak készüljön-e
metóduscsonkja, vagy nem.
public class TestCaseWizardPage extends NewTypeWizardPage { private Button fCreateStubs; public TestCaseWizardPage() { super(true, "TestCaseWizardPage"); } /** * A varázslóoldalt vezérlő varázslónak meg kell hívnia ezt a metódust * miközben egy megfelelő kijelöléssel inicializál. */ public void init(IStructuredSelection selection) { IJavaElement jelem= getInitialJavaElement(selection); initContainerPage(jelem); initTypePage(jelem); doStatusUpdate(); } private void doStatusUpdate() { // meg kell határozni azokat az összetevőket, amelyeknek egy állapotot kell megadni 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); // szabványos bemeneti mezők létrehozása createContainerControls(composite, nColumns); createPackageControls(composite, nColumns); createSeparator(composite, nColumns); createTypeNameControls(composite, nColumns); createSuperClassControls(composite, nColumns); // a csonk létrehozást vezérlő jelölőnégyzet létrehozása 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); // Az őstípus mező inicializálizálása és beállítása írásvédettnek 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); } } }