Initialisierungsoperatoren

Der Hauptzweck eines Initialisierungsoperators ist es, einen Umfang zu identifizieren. Jedoch ist er mehr als nur eine eindeutige Kennung. Er verweist auf die Java-Klasse, die dem Umfang Initialisierungsinformationen liefert. Um ein Objekt von dem Erweiterungspunkt org.eclipse.core.component.types zu erstellen, muss Eclipse manuell einen Initialisierungsoperator des entsprechenden Typs konstruieren. Dadurch kann Eclipse von außerhalb des Komponenten-Frameworks erforderlichen Kontext an Komponenten weiterleiten. Jede Komponente kann in Bezug auf Ihren Umfang von dem Initialisierungsoperator abhängen und auf diesen Kontext zugreifen. Gegenwärtig haben die meisten der von der Workbench zur Verfügung gestellten Initialisierungsoperatoren eine allgemein zugängliche Schnittstelle, obschon die meisten Clients dies nicht möchten.

Vererbung wird zwischen Initialisierungsoperatortypen in Betracht gezogen. Die Registrierung eines Komponententyps bei der Basisklasse eines Initialisierungsoperators beeinflusst auch den Initialisierungsoperator und alle seiner Unterklassen. Initialisierungsoperatoren können keine Schnittstellen sein, so dass nur einzelne Vererbung möglich ist. So würde zum Beispiel eine bei org.eclipse.core.component.ExtensionInitializer registrierte Schnittstelle sowohl vom Abschnitt als auch von der Site aus sichtbar sein, da org.eclipse.core.component.ExtensionInitializer eine Basisklasse sowohl für den Initialisierungsoperator des Abschnitts als auch der Site ist.

Die Workbench stellt die folgenden Initialisierungsoperatortypen zur Verfügung:

Initialisierungsoperator
Basisklasse
verwendet für
org.eclipse.core.component.ExtensionInitializer
keine
Abhängigkeiten werden verwendet von jeder Komponente, die von einem Erweiterungspunkt aus erstellt wird.
org.eclipse.ui.part.PartInitializer
org.eclipse.core.component.ExtensionInitializer Schnittstellen, die durch einen Abschnitt implementiert werden können.
org.eclipse.ui.part.SiteInitializer org.eclipse.core.component.ExtensionInitializer Komponenten, die von einer Site verfügbar sind (z.B. Dinge, die ein Abschnitt in seinen Konstruktor aufnehmen kann).
org.eclipse.ui.part.SiteMultiplexerInitializer
org.eclipse.ui.part.SiteInitializer Abhängigkeiten, die nur auf eine Site innerhalb eines Multiplexers zutreffen (verwednet, um die standardmäßige Komponentenimplementierung, die durch eine Site zur Verfügung gestellt wird, außer Kraft zu setzen).