Java-veivisersider

Pakken org.eclipse.jdt.ui.wizards har veivisersider for opprettelse og konfigurering av Java-elementer.  Det følger med flere prefabrikkerte sider som du kan bruke.

Konfigurere Java-byggeinnstillinger

JavaCapabilityConfigurationPage støtter redigering av Java-byggeinnstillinger (kildemappekonfigurering, refererte prosjekter og refererte og eksporterte biblioteker).  

Hvis du trenger en veiviser som konfigurerer et prosjekt for en plugin-modul samtidig som den konfigureres med Java-naturen og andre Java-prosjektfunksjoner, kan du bruke denne siden (snarere enn å definere subklasser for NewJavaProjectWizardPage).

Opprette nye Java-elementer

Et hierarki av veivisersider støtter opprettelse av nye Java-elementer.  

NewElementWizardPage er den abstrakte klassen som definerer grunnleggende operasjon av veiviseren.  Det finnes ytterligere abstrakte klasser i hierarkiet for å gjøre tilpasninger i funksjonaliteten som følger med de konkrete veiviserne.

De konkrete opprettelsesveiviserne kan brukes direkte og er generelt ikke beregnet på bruk av subklasser. 

Bidra med en veiviserside for klassebanecontainer

Grensesnittet IClasspathContainerPage definerer en struktur for bidrag til en veiviserside som gjør det mulig for brukeren å definere en ny oppføring for klassebanecontainer eller redigere en eksisterende. Hvis plugin-modulen har definert sin egen type klassebanecontainer med JDT-kjernens utvidelsespunkt org.eclipse.jdt.core.classpathContainerInitializer, vil du sannsynligvis definere en tilsvarende veiviserside for redigering og opprettelse av klassebanecontainere av denne typen.

Plugin-modulens kodetype bør inneholde filtypen org.eclipse.jdt.ui.classpathContainerPageI utvidelseskodetypen kan du oppgi navn på klassen som implementerer IClasspathContainerPage.  Hvis du trenger ytterligere informasjon på veivisersiden om klassebanens kontekst når den velges, kan du implementere IClasspathContainerPageExtension. Hvis konfigurasjonssiden skal returnere mer enn en forekomst når den blir lagt til, implementerer du IClasspathContainerPageExtension2.

Tilpasse en veiviserside

I tillegg til å bruke prefabrikkerte siden kan du definere subklasser for veivisersidene og legge til i inndatafelt eller påvirke kodegenereringen.  Du bør bruke de abstrakte klassene i hierarkiet NewElementWizardPage for å tilpasse en veiviser snarere enn å definere subklasser for konkrete klasser.

Nedenfor er et eksempel på en ny type veiviserside som er tilpasset for å opprette klasser for JUnit-testtilfeller. Siden initialiserer superklassefeltet med "junit.framework.TestCase" og legger til en avmerkingsboks som kontrollerer om metodesnutter for metodene setUp() og tearDown() skal opprettes.

public class TestCaseWizardPage extends NewTypeWizardPage {
    private Button fCreateStubs;

    public TestCaseWizardPage() {
        super(true, "TestCaseWizardPage");
    }

    /**
     * Veiviseren som styrer denne veivisersiden, må kalle opp denne metoden
     * under initialiseringen med tilsvarende valg.
     */   
    public void init(IStructuredSelection selection) {
        IJavaElement jelem= getInitialJavaElement(selection);
        initContainerPage(jelem);
        initTypePage(jelem);
        doStatusUpdate();
    }

    private void doStatusUpdate() {
        // Definer komponentene som det ønskes status for
        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);

        // Opprett standard inndatafelt
        createContainerControls(composite, nColumns);
        createPackageControls(composite, nColumns);
        createSeparator(composite, nColumns);
        createTypeNameControls(composite, nColumns);
        createSuperClassControls(composite, nColumns);

        // Opprett avmerkingsboks som styrer ønske om snutter
        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);

        // Initialiserer supertypefelt og merk det som skrivebeskyttet
        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); 
        }
   }
}