Java varázsló oldalak

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.

Java összeépítés beállítása

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).

Új Java elemek létrehozása

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. 

Hozzáadás az osztályútvonal tároló varázsló oldalhoz

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.

Varázsló oldal személyre szabása

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); 
        }
   }
}