org.eclipse.ui.newWizards

Työympäristön valikon Tiedosto > Uusi -vaihtoehtoon voi lisätä ohjatun toiminnon laajennuspisteen org.eclipse.ui.newWizards avulla. Seuraava esimerkki kuvaa, kuinka Readme-tiedoston ohjattu toiminto lisätään kyseisen laajennuspisteen määrityksen avulla:

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

Luokka määrittää ohjatun toiminnon ryhmittelyn.  Vaihtoehtoinen luokka parentCategory luo uuden luokan entisen aliluokaksi.

Ylätason luokat näkyvät valikossa Tiedosto > Uusi .  Tässä esimerkissä parentCategory on määritetty luokkaan "Esimerkkejä". Seuraavassa on kuvattu, miten pääluokka määritetään.  Lisäosa org.eclipse.ui määrittää merkinnöissään standardinmukaisen Esimerkkejä-luokan:

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

Tämä luokka näkyy valikossa Tiedosto > Uusi .

Uusi valikko, jossa on Esimerkkejä-luokka

 

Readme-työkalun luokka nimi määrittää nimiön, jota käytetään pääluokan alapuolella olevasta ryhmittelyn tasosta.  Nämä luokat näkyvät toisena tasona rakenteessa, joka näkyy ohjatussa toiminnossa Uusi esimerkki.  Ohjatun toiminnon nimi ja kuvake näkyvät alla, kun luokka laajennetaan.  Ohjatun toiminnon kuvaus näkyy ohjatun toiminnon yläosassa, kun toiminto valitaan.

Uusi Esimerkkejä - ohjattu toiminto, jossa on Readme-työkalun merkinnät

Ohjatun toiminnon tiedot näkyvät ainoastaan plugin.xml -tiedoston merkintöjen vuoksi.  Lisäosan koodia ei ajeta, ennen kuin käyttäjä napsauttaa Seuraava-painiketta.  Tämän jälkeen työympäristö luo merkinnöissä määritetyn ohjatun toiminnon luokan ilmentymän ja välittää sille odotetun valintojen luokan.

Tässä laajennuksessa (ReadmeCreationWizard) yksilöidyn luokan pitää toteuttaa rajapinta INewWizard.  Useimmat ohjatut toiminnot toteuttavat tämän rajapinnan laajentamalla ympäristön Ohjattu toiminto -luokan, vaikka tämä onkin toteutusmekanismi eikä laajennuspiste tätä edellytä.

Ohjattu toiminto ei tee muuta kuin luo itselleen sivut. Seuraavassa perehdytään ensin sivujen toteutukseen, ennen kuin palataan takaisin ohjattuun toimintoon.

Sivut

Työympäristön ohjatun toiminnon perussivuluokat tukevat kunkin ohjatun toiminnon laajennuspisteen käsittelyä. Voit käyttää näitä sivuja tai laajentaa niitä lisäämään käsittelyä.

Ohjatun toiminnon ReadmeCreationWizard päämäärä on luoda uusi tiedosto, lisätä siihen vaadittu sisältö ja mahdollisesti avata muokkausohjelma tiedostossa. Sivun pitää määrittää ohjausobjektit, joiden avulla käyttäjä voi määrittää, mitä sisältöä tiedostoon laitetaan ja aloitetaanko muokkausohjelma.

Ohjatun toiminnon sivu ReadmeCreationPage luodaan laajentamalla luokka WizardNewFileCreationPage. Sivun ohjausobjektit määritetään samalla tavalla kuin katselu- tai muokkausohjelmankin ohjausobjektit. Sivu toteuttaa metodia createControl ja luo tarvittavat widget-vakiotyökalut Composite-rajapinnan aliosiksi. Koska yliluokka lisää jo uuden tiedoston käsittelyä tukevia widget-objekteja, enää tarvitsee laajentaa ohjatun toiminnon sivun metodia createControl siten, että se lisää sivulle ylimääräisiä valintaruutuja, jotka ohjaavat muokkausohjelman avausta ja sen osien muodostusta.

public void createControl(Composite parent) {
      // peri oletussäilö ja nimeä määrityksen widget-toiminnot
	super.createControl(parent);
      Composite composite = (Composite)getControl();
      ...
      // esimerkki osan luomisen ryhmästä
      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));
      ...
      // esimerkki osan luomisen valintaruudusta
      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);
      ...
      // avaa tiedosto valintaruudun muokkausta varten
      openFileCheckbox = new Button(composite,SWT.CHECK);
      openFileCheckbox.setText(MessageUtil.getString("Open_file_for_editing_when_done"));
      openFileCheckbox.setSelection(true);
      ...
   }

Mikäli olet sisäistänyt widget-vakiotyökalujen (SWT) perusperiaatteet, yllä olevan koodin pitäisi olla ymmärrettävä.

Sivun toteutusmalli etenee seuraavasti:

Luokka ReadmeCreationPage perii suuren osan toiminnastaan WizardNewFileCreationPage-luokalta.  Jos haluat lisätietoja, tutki näiden luokkien toteutuksia.

Nyt kun sivun toimintaa on selvitetty, voidaan palata ohjatun toiminnon pariin.

Ohjattu toiminto

Ohjattu toiminto luo sivut ja vastaa "päätöslogiikasta".

Ohjatun toiminnon toteutusmalli etenee seuraavasti:

Valmis ohjattu toiminto näyttää tältä:

Readme-tiedoston luomisen ohjatun toiminnon sivu