Abschnittsschnittstellen
Abschnitte müssen nicht eine bestimmte Schnittstelle implementieren oder von einer bestimmten Basisklasse übernehmen. Jedoch können Abschnitte optional bestimmte Schnittstellen implementieren, um Rückrufe von ihren übergeordneten Elementen zu empfangen. Wenn ein Abschnitt zum Beispiel die Schnittstelle IFocusable implementiert, wird sein übergeordnetes Element diese Schnittstelle verwenden, um auf diesen Abschnitt zu zielen. Abschnitte können entweder die Schnittstelle direkt implementieren oder sie können IAdaptable implementieren und einen Adapter für die Schnittstelle zur Verfügung stellen.
Ähnlich wie Site-Schnittstellen werden Abschnittsschnittstellen in dem Erweiterungspunkt org.eclipse.core.component.types registriert. Es gibt einen geringen Unterschied in der XML-Markup-Formatierung, um zwischen einer Site-Schnittstelle und einer Abschnittsschnittstelle zu unterscheiden. Jedes Plug-in kann die Gruppe der Schnittstellen, die einer Sicht für die Implementierung zur Verfügung stehen, erweitern, und die PDE-Plug-in-Registry kann verwendet werden, um alle diese Schnittstellen zu finden.
Die Workbench stellt die folgenden Schnittstellen zur Implementierung durch Abschnitte zur Verfügung:
Schnittstelle |
Beschreibung |
IFocusable |
Ermöglicht dem Abschnitt setFocus zu implementieren.
|
IPersistable |
Ermöglicht dem Abschnitt, seinen Status zwischen Sitzungen zu speichern. |
IMultiPart |
Zeigt an, dass der Abschnitt die Vorstellung eines aktiven untergeordneten Elements hat. |
ISite |
Obschon dies nie wirklich durch einen Abschnitt implementiert wird, können die Implementierungen anderer Abschnittsschnittstellen von ISite abhängig sein, um Zugriff auf ihre Site zu erlangen. |
Es kann sein, dass Abschnitte auch Lebenszyklusschnittstellen implementieren. Lebenszyklusschnittstellen unterscheiden sich auf mehrere Weisen von regulären Abschnittsschnittstellen:
- Eine Lebenszyklusschnittstelle muss direkt implementiert werden (sie kann nicht als Adapter zur Verfügung gestellt werden);
- Die Lebenszyklusschnittstelle kann auch von jeder oder allen Abhängigkeiten des Abschnitts implementiert werden;
- Wenn dem Abschnitte eine Lebenszyklusbenachrichtigung gesendet wird, wird diese auch an alle Abhängigkeiten des Abschnitts gesendet;
- Lebenszyklusschnittstellen sind fest codiert und nicht bei einem Erweiterungspunkt registriert.
Abschnitte unterstützen die folgenden Lebenszyklusschnittstellen:
Schnittstelle |
Beschreibung |
IDisposable |
Empfängt eine Benachrichtigung, wenn die Komponente entfernt wird. |
INestedComponent |
Implementiert durch untergeordnete Elemente eines Multiplexers.
Empfängt Aktivierungs- und Deaktivierungsnachrichten, wenn sich der aktive Abschnitt ändert.
|