org.eclipse.ui.newWizards

Mit dem Erweiterungspunkt org.eclipse.ui.newWizards können Sie in der Workbench einen Assistenten zur Menüoption Datei > Neu hinzufügen. Das Tool für Readme-Dateien verwendet diese Erweiterungspunktdefinition, um den Assistenten für Readme-Dateien hinzuzufügen:

<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.gif">
    	   <description>%NewWizard.desc</description>
         <selection class="org.eclipse.core.resources.IResource"/>
	</wizard>
</extension> 

Der Parameter category beschreibt, in welche Gruppe der Assistent gestellt wird, wenn der Assistentenauswahldialog verwendet wird, um einen Assistenten zu suchen und zu starten. Das unter "category" angegebene Attribut name definiert die Bezeichnung, die im Assistenten verwendet wird. Der Assistent selbst wird der angegebenen Kategorie zugeordnet. Im unten dargestellten Auswahldialog für einen neuen Assistenten werden sein Name, sein Symbol (icon) und seine Beschreibung (description) angezeigt.

Auswahldialog des Assistenten 'Neu' mit Readme-Einträgen

Diese Angaben werden auf Grund der Befehlsdefinition in der Datei plugin.xml angezeigt. Kein Teil des Plug-in-Codes wird ausgeführt, bevor der Benutzer die Schaltfläche Weiter auswählt. Sobald dies stattfindet, erstellt die Workbench ein Exemplar der Klasse des Assistenten, die in der Befehlsdefinition angegeben ist, und übergibt an sie eine erwartete Auswahlklasse.

Die in dieser Erweiterung (ReadmeCreationWizard) angegebene Klasse muss die Schnittstelle INewWizard implementieren. In den meisten Assistenten wird zu diesem Zweck die Klasse Wizard der Plattform erweitert, obwohl es sich um einen Implementierungsmechanismus handelt und durch den Erweiterungspunkt nicht erfordert wird.

Der Assistent führt nichts weiter aus, als die in ihm enthaltenen Seiten zu erstellen. Im Folgenden wird zunächst die Implementierung der Seite erläutert. Anschließend kehren Sie zum Assistenten zurück.

Seiten

Die Workbench bietet Basisklassen für Assistentenseiten, die den Typ der Verarbeitung unterstützen, die an einem bestimmten Assistentenerweiterungspunkt ausgeführt wird. Sie können diese Seiten unverändert verwenden oder sie durch das Hinzufügen einer weiteren Verarbeitung erweitern.

Der Zweck der Klasse ReadmeCreationWizard ist es, eine neue Datei zu erstellen, den erforderlichen Inhalt zur Datei hinzuzufügen und über eine Option einen Editor für die Datei zu öffnen. Die entsprechende Seite muss die Steuerelemente definieren, mit denen der Benutzer angeben kann, welcher Inhalt in die Datei gestellt und ob ein Editor gestartet werden soll.

Die Assistentenseite ReadmeCreationPage erstellen Sie nun, indem Sie die Klasse WizardNewFileCreationPage erweitern. Die Steuerelemente für eine Assistentenseite werden ähnlich wie die Steuerelemente für eine Sicht oder einen Editor definiert. Die Seite implementiert eine Methode createControl, mit der die erforderlichen SWT-Widgets als untergeordnete Elemente der bereitgestellten Klasse Composite erstellt werden. Da die Superklasse bereits Widgets hinzufügt, die die Verarbeitung einer neuen Datei unterstützen, müssen Sie lediglich die Methode createControl in der Assistentenseite erweitern und die zusätzlichen Markierungsfelder hinzufügen, mit denen das Generieren von Abschnitten und das Öffnen des Editors gesteuert wird.

   public void createControl(Composite parent) {
      // Standard-Widgets für Container- und Namensspezifikation übernehmen
      super.createControl(parent);
      Composite composite = (Composite)getControl();
      ...
      // Gruppe zur Generierung von Beispielabschnitten
      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));
      ...
      // Markierungsfelder für die Generierung von Beispielabschnitten
      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);
      ...
      // Markierungsfeld für das Öffnen der Datei im Editor
      openFileCheckbox = new Button(composite,SWT.CHECK);
      openFileCheckbox.setText(MessageUtil.getString("Open_file_for_editing_when_done"));
      openFileCheckbox.setSelection(true);
      ...
   }

Wenn Sie mit den Konzepten, die unter SWT (Standard Widget Toolkit) beschrieben sind, vertraut sind, sollten Sie in der Lage sein, diesen Code nachzuvollziehen.

Die Implementierung einer Seite umfasst die folgenden Grundmuster:

Die Klasse ReadmeCreationPage übernimmt einen Großteil dieses Verhaltens von der Klasse WizardNewFileCreationPage.  Weitere Informationen finden Sie in den Implementierungen dieser Klassen.

Nachdem Sie jetzt die Funktionsweise einer Seite kennen gelernt haben, geht es wieder zurück zum Assistenten.

Assistent

Der Assistent ist zuständig für die Erstellung der Seiten und für das Bereitstellen der Logik für die Fertigstellung.

Die Implementierung eines Assistenten umfasst die folgenden Grundmuster:

Der fertig gestellte Assistent sollte folgendermaßen aussehen:

Assistentenseite für Erstellung der Readme-Datei

    

Copyright IBM Corporation und Andere 2000, 2002. Alle Rechte vorbehalten.