Schnittstelle |
Beschreibung |
IErrorContext |
Konstruiert und protokolliert IStatus-Nachrichten in dem Plug-in-Protokoll. |
Bundle |
Das Plug-in-Produktpaket, das die Implementierung des Abschnitts enthält. Dieses informiert andere Komponenten, wie z.B. die Implementierung von IErrorContext, automatisch über ihre Plug-ins. |
IContainer |
Der Container der Site. Dieses Objekt kann nach allen anderen Site-Schnittstellen abgefragt werden, was hilfreich sein kann, wenn der Abschnitt alles von seiner Site an seine untergeordneten Elemente umleiten oder multiplexen möchte. |
INameable |
Ermöglicht einem Abschnitt die Einstellung seines Namens, Symbols, der QuickInfo und der Inhaltsbeschreibung. Ersetzt die verschiedenen Abrufmethoden und Listener-Funktionen bei IWorkbenchPart. |
Composite |
Das übergeordnete kombinierte Anzeigenobjekt für den Abschnitt. Dieses kombinierte Anzeigenobjekt wird nicht mit anderen Abschnitten gemeinsam benutzt und wird zum selben Zeitpunkt entfernt, wie der Abschnitt. Es ist dem Abschnitt möglich, das Layout einzustellen und diesem kombinierten Anzeigenobjekt Listener-Funktionen hinzuzufügen. |
ISecondaryId |
Eine Schnittstelle, die bei Verwendung als Sicht mit mehreren Instanzen die sekundäre ID des Abschnitts zurückgibt. |
ResourceManager |
Ordnet sicher Abbildungen, Schriftarten, Farben und andere SWT-Ressourcen zu und hebt die Zuordnung wieder auf. Stellt sicher, dass identische Ressourcen gemeinsam von Abschnitten benutzt werden und dass alle Verluste bereinigt werden, wenn der Abschnitt geschlossen wird. |
IDirtyHandler |
Ermgöicht Abschnitten, ihren unbereinigten Status zu setzen oder zu löschen. |
IMessageDialogs |
Zeigt dem Benutzer Fehler-, Warn- und Info-Dialoge an. |
IActionBars |
Dient demselben Zweck, wie dies mit getViewSite().getActionBars() bei Eclipse 3.0 API der Fall war. |
IMultiplexer |
Stellt eine multiplexte Komponente mit Zugriff auf ihre Multiplexer und alle gemeinsam benutzten Schnittstellen zur Verfügung. . |
ISavedState |
Enthält den zuvor bestehenden Status des Abschnitts. |
IPartFactory |
Ermöglicht einem Abschnitt, verschachtelte Sichten und Editoren zu erstellen. |
IPartDescriptor |
Enthält Meta-Informationen über einen Abschnitt, wie dessen ID, Titel, Standardbild usw. |
IEditorInput |
Enthält die Editoreingabe für einen Editor. Verweist auf eine leere Editoreingabe für Sichten. |
ISelectionHandler |
Handhabt alle Auswahländerungen. Abschnitte können dies verwenden, um die Auswahl zu ändern, die sie der Workbench zur Verfügung stellen. |
Es hängt von dem Kontext des Abschnitts ab zu bestimmen, ob der Abschnitt eine eindeutige Instanz für jede Schnittstelle erhält oder ein Objekt, das von mehreren Abschnitten gemeinsam benutzt wird. Der Konstruktor des Abschnitts empfängt niemals ein Null-Argument.
Obschon die Konstruktor-Einblendung angenehm ist, wäre es unpraktisch, jeden vorhandenen Editor und jede Sicht zur Konstruktor-Einblendung neu zu schreiben, um Vorteile aus den neuen Site-Schnittstellen zu ziehen. Aus diesem grund stehen alle neuen Schnittstellen auch den vorhandenen Sichten als Adapter auf der IWorkbenchPartSite zur Verfügung.
Hier ist eine Sicht, die eine einzelne Schaltfläche zum Öffnen eines Nachrichtendialogs enthält.
Das folgende Beispiel zeigt zeigt die Quelle für eine neuartige Ansicht, die den Dialog unter Verwendung der neuen Schnittstelle 'IMessageDialogs' öffnet.
/**
* Demonstriert die Verwendung von Komponentenabhängigkeiten in einem neuartigen Abschnitt.
*
* @Ab 3.1
*/
public class DependenciesViewNew {
// Abhängigkeiten
private IMessageDialogs dialogs;
/**
* Komponentenkonstruktor. Nicht direkt aufrufen.
*/
public DependenciesViewNew(Composite parent, IMessageDialogs dialogs) {
this.dialogs = dialogs;
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (nicht Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
dialogs.open(IStatus.INFO, "Dies ist eine Nachricht");
}
}
Dieses Beispiel zeigt eine traditionelle Sicht, die einen Dialog mit Hilfe von 'IMessageDialogs' öffnet und
demonstriert, dass dies auch unter Verwendung eines traditionellen Workbench-Abschnitts möglich ist.
Die Zeilen in roter Schrift zeigen, wie die IMessageDialogs-Schnittstelle initialisiert und in jedem Fall verwendet wird.
/**
* Demonstriert die Verwendung von Komponentenabhängigkeiten in einer alten Sicht
*
* @Ab 3.1
*/
public class DependenciesViewOld extends ViewPart {
// Abhängigkeiten
private IMessageDialogs dialogs;
// Hauptfensterobjekt
private Composite parent;
/* (nicht Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(Composite parent) {
this.parent = parent;
this.dialogs = (IMessageDialogs)getSite().getAdapter(IMessageDialogs.class);
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (nicht Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
if (dialogs != null) {
dialogs.open(IStatus.INFO, "Dies ist eine Nachricht");
}
}
/* (nicht Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
parent.setFocus();
}
}