Eigenschaftenseiten

Eigenschaftenseiten haben große Ähnlichkeit mit Benutzervorgabenseiten. Der Hauptunterschied besteht darin, dass Eigenschaftenseiten einer bestimmten Ressource, Benutzervorgaben jedoch dem Plug-in selbst zugeordnet sind.

org.eclipse.ui.propertyPages

Eine Eigenschaftenseite für eine Ressource können Sie über den Erweiterungspunkt org.eclipse.ui.propertyPages zur Verfügung stellen. Die Eigenschaftenseite einer Ressource wird über das Menü Eigenschaften in der Ressourcensicht "Navigator" aufgerufen. Dieses Menü ist verfügbar, wenn eine einzelne Ressource ausgewählt ist.

Das Tool für Readme-Dateien ergänzt die Workbench durch zwei Eigenschaftenseiten.

<extension
    point = "org.eclipse.ui.propertyPages">
    <page
        id="org.eclipse.ui.examples.readmetool.FilePage"
        name="Readme Tool"
        objectClass="org.eclipse.core.resources.IFile"
        class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
        nameFilter="*.readme">
    </page>
    <page
        id="org.eclipse.ui.examples.readmetool.FilePage2"
        name="More Readme Info"
        objectClass="org.eclipse.core.resources.IFile"
        class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
        nameFilter="*.readme">
    </page>
</extension>

Beide Seiten werden für Objekte des Typs IFile mit der Dateierweiterung .readme ergänzt.

Eigenschaftenseiten sehen Benutzervorgabenseiten sehr ähnlich. Auf Eigenschaftenseiten gibt es jedoch keine Hierarchie oder Kategorisierung. In dem folgenden Dialog werden beide Eigenschaftenseiten für Readme-Dateien in der Hauptliste der Seiten angezeigt.

Eigenschaftenseite

Wenn die Workbench eine Eigenschaftenseite erstellt und startet, stellt sie die ausgewählte Ressource in die Seite. Die Seite kann die Methode getElement() verwenden, um ihr Element abzurufen, ein Objekt IAdaptable.

Das Muster für die Erstellung von Eigenschaftenseiten ist mit dem für Benutzervorgabenseiten vergleichbar. Daher wird im Folgenden nur auf die Unterschiede eingegangen. Eigenschaftenseiten zeigen Informationen zu ihrem jeweiligen Element an. Diese Informationen werden durch einen Zugriff auf das Element erhalten, um die relevanten Informationen abzufragen oder zu berechnen. Die Informationen können auch in den Eigenschaften der Ressource gespeichert und abgerufen werden.

ReadmeFilePropertyPage berechnet die meisten Informationen unter Verwendung des Elements. Der folgende Ausschnitt veranschaulicht, wie die Anzahl der Abschnitte berechnet und ein Anzeigenobjekt angezeigt wird.

...
IResource resource = (IResource) getElement();
...
IAdaptable sections = getSections(resource);
if (sections instanceof AdaptableList) {
    AdaptableList list = (AdaptableList)sections;
    label = createLabel(panel, String.valueOf(list.size()));
...

Wenn eine Eigenschaft berechnet wird, ist keine entsprechende Logik zum Speichern des Wertes erforderlich, da der Benutzer diesen Wert nicht aktualisieren kann.

Eigenschaftenseiten werden gewöhnlich zum Anzeigen und Festlegen der anwendungsspezifischen Eigenschaften einer Ressource verwendet. (Eine Erörterung von Sitzungseigenschaften und permanenten Eigenschaften finden Sie unter Ressourceneigenschaften.) Da die Eigenschaftenseite ihre Ressource kennt, können auf der Seite mit Hilfe der Ressourcen-API die Steuerelementwerte initialisiert oder neue Eigenschaftswerte anhand der Benutzerauswahl auf der Eigenschaftenseite festgelegt werden.

Der folgende Ausschnitt veranschaulicht, wie ein Wert für ein Markierungsfeld aus einer Eigenschaft im Element einer Eigenschaftenseite initialisiert wird.

private void initializeValues() {
    ...
    IResource resource = (IResource) getElement();
    label.setText(resource.getPersistentProperty("MyProperty"));
    ...
}

Der entsprechende Code, mit dem der Wert des Markierungsfelds wieder in der Eigenschaft gespeichert wird, sieht folgendermaßen aus:

private void storeValues() {
    ...
    IResource resource = (IResource) getElement();
    resource.setPersistentProperty("MyProperty", label.getText());
    ...
}