org.eclipse.ui.newWizards

Az org.eclipse.ui.newWizards kiterjesztési pont segítségével a munkaterületen hozzáadhat egy varázslót a Fájl > Új> menüponthoz. A readme eszköz példa ezt a kiterjesztési pont definíciót használja a Readme fájl varázsló hozzáadásához:

<extension
      point = "org.eclipse.ui.newWizards">
	<category
	   id = "org.eclipse.ui.examples.readmetool.new"
	   parentCategory="org.eclipse.ui.Examples"
	   name="%NewWizard.category">
	</category>
 	<wizard
	   id = "org.eclipse.ui.examples.readmetool.wizards.new.file"
      	   name = "%NewWizard.name"
	   class="org.eclipse.ui.examples.readmetool.ReadmeCreationWizard"
	   category="org.eclipse.ui.Examples/org.eclipse.ui.examples.readmetool.new"
	   icon="icons/obj16/newreadme_wiz.png">
    	   <description>%NewWizard.desc</description>
	   <selection class="org.eclipse.core.resources.IResource"/>
	</wizard>
   </extension>

A kategória leírja a varázsló csoportosítását. Az elhagyható parentCategory létrehozza az új kategóriát a meglévő kategória leszármazottjaként.

A felsőszintű kategóriák megjelennek a Fájl > Új menüben.   Ebben a példában a parentCategory "Példák" kategóriára van állítva.  Honnan ered a szülőkategória? Az org.eclipse.ui bedolgozó szabványos példakategóriát ad meg a leírónyelvben:

<extension
        point="org.eclipse.ui.newWizards">
    <category
          name="%NewWizards.Category.Examples"
          id="org.eclipse.ui.Examples">
    </category>
    ...

Ez a kategória megjelenik a Fájl > Új menüben.

Új menü Példák kategóriával

 

A readme eszköz név kategóriája megadja a csoportosítás következő kategóriájához használt címkét a szülőkategória alatt. Ezek a kategóriák második szintként jelennek meg az Új példa varázslóban megjelenő fában. A kategória kiterjesztésekor a varázsló neve és ikonja alul jelenik meg. A kiválasztott varázsló leírása megjelenik a varázsló tetején, amikor kiválasztja.

Új példa varázsló tájékoztató bejegyzésekkel

Kizárólag a varázslóval kapcsolatos információk jelennek meg a plugin.xml fájlban lévő leírónyelv miatt. Egyik bedolgozó kód sem fut, amíg a felhasználó ki nem választja a Tovább gombot.  Ha ez történik, akkor a munkaterület példányosítja a leírónyelvben megadott varázslóosztályt és átadja a várt kiválasztási osztályt.

A kiterjesztésben azonosított osztálynak (ReadmeCreationWizard) meg kell valósítania az INewWizard felületet.  A legtöbb varázsló a platform Varázsló osztály kiterjesztésével valósítja meg, habár ez egy megvalósítási mechanizmus és a kiterjesztési ponthoz nem szükséges.

A varázsló maga kicsi, de létrehozza az oldalakat ezen belül. Tekintsük meg az első oldal megvalósítását, majd térjen vissza a varázslóhoz.

Oldalak

A munkaterület alap varázslóoldal-osztályokat biztosít, amely támogatja a varázsló kiterjesztési pontokhoz végrehajtott feldolgozási típusokat. Használhatja ezeket az oldalakat, vagy kiterjesztheti őket további feldolgozás hozzáadásához.

A ReadmeCreationWizard célja új fájl létrehozása, a szükséges tartalom fájlhoz adása, és lehetőségként szerkesztő megnyitása a fájlon. Az oldalaknak meg kell adniuk a vezérlőket, amelyek segítségével a felhasználó megadhatja, hogy milyen tartalom kerüljön a fájlba, valamint hogy a szerkesztőt el kell-e indítani.

Létrehozzuk a ReadmeCreationPage varázslóoldalt a WizardNewFileCreationPage kiterjesztésével. A varázslóoldal vezérlőelemei a nézet vagy szerkesztő vezérlőelemeihez hasonlóan kerülnek megadásra. Az oldal megvalósít egy createControl metódust, létrehozza a szükséges SWT felületi elemeket a biztosított Composite leszármazottjaként. Mivel a szülőosztály már hozzáadott felületi elemeket, amely támogatja az új fájlfeldolgozást, csak createControl metódust kell kiterjeszteni a varázslóoldalon további jelölőnégyzetek hozzáadása érdekében, amelyek vezérlik a szakaszok előállítását és a szerkesztő megnyitását.

   public void createControl(Composite parent) {
      // inherit default container and name specification widgets
      super.createControl(parent);
      Composite composite = (Composite)getControl();
      ...
      // példa szakaszelőállítási csoport
      Group group = new Group(composite,SWT.NONE);
      group.setLayout(new GridLayout());
      group.setText(MessageUtil.getString("Automatic_sample_section_generation"));
      group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL |
         GridData.HORIZONTAL_ALIGN_FILL));
      ...
      // példa szakaszelőállítási jelölőnégyzetek
      sectionCheckbox = new Button(group,SWT.CHECK);
      sectionCheckbox.setText(MessageUtil.getString("Generate_sample_section_titles"));
      sectionCheckbox.setSelection(true);
      sectionCheckbox.addListener(SWT.Selection,this);

      subsectionCheckbox = new Button(group,SWT.CHECK);
      subsectionCheckbox.setText(MessageUtil.getString("Generate_sample_subsection_titles"));
      subsectionCheckbox.setSelection(true);
      subsectionCheckbox.addListener(SWT.Selection,this);
      ...
      // fájlmegnyitás a jelölőnégyzet szerkesztéséhez
      openFileCheckbox = new Button(composite,SWT.CHECK);
      openFileCheckbox.setText(MessageUtil.getString("Open_file_for_editing_when_done"));
      openFileCheckbox.setSelection(true);
      ...
   }

Követnie kell ezt a kódot, ha megérti az alapelvet a Standard Widget eszközkészletben.

Az oldal megvalósításának alap mintái az alábbiak:

A ReadmeCreationPage osztály a viselkedésének nagy részét a WizardNewFileCreationPage elemtől örökli.  További információkért böngéssze az osztályok megvalósítását.

Most, hogy már ismerjük, mit csinál az oldal, tekintsük meg újra a varázslót.

Varázsló

A varázsló felelős az oldalak létrehozásáért és a "befejező" logika biztosításáért.

A varázsló megvalósításának alap mintái a következők:

A befejezett varázsló az alábbi módon néz ki:

Tájékoztató fájl létrehozási varázsló oldal