Schreiben Sie Java™-Code,
um die Darstellung und Funktion eines benutzerdefinierten Editors zu definieren.
Bevor Sie beginnen:Erstellen Sie ein Codeprojekt und eine Java-Klasse. Sie können ein Codeprojekt und eine
Java-Beispielklasse für Ihren benutzerdefinierten Editor bei
der Konfiguration des benutzerdefinierten Editors erstellen (siehe
Benutzerdefinierten Editor konfigurieren).
Lesen Sie die Referenzinformationen zu den
Java-Schnittstellen, die zum Schreiben von Code für
benutzerdefinierte Editoren erforderlich sind (siehe Java-Schnittstellen für benutzerdefinierte Editoren).
Geben Sie Java-Code für den benutzerdefinierten
Editor in der Java-Klasse ein, die Sie verwenden möchten. Sie
müssen die Java-Klasse und das Codeprojekt dem
benutzerdefinierten Editor zuordnen, wenn Sie den Editor konfigurieren (siehe
Benutzerdefinierten Editor konfigurieren). Benutzer von Mustern verwenden den Musterinstanzeditor zum Bearbeiten einer Instanz des benutzerdefinierten Musters. Der Code für den benutzerdefinierten Editor übergibt Werte an den Musterinstanzeditor und erhält Werte von dort. Hierfür werden zwei
Java-Schnittstellen verwendet,
PatternPropertyEditor und
PatternPropertyEditorSite.
Sie müssen Code schreiben, um die Methoden in diesen Schnittstellen zu
überschreiben.
Wenn der Code des benutzerdefinierten Editors eine Ausnahme auslöst, wird sie
abgefangen und im Fenster Ausnahme des Musterinstanzeditors, das automatisch
geöffnet wird, angezeigt.
So schreiben Sie Code für einen benutzerdefinierten Editor:
- Schreiben Sie Code für die Hauptklasse des benutzerdefinierten Editors. Folgendes ist zu
beachten:
- Die Hauptklasse des benutzerdefinierten Editors wird erstellt, wenn der Musterbenutzer eine Instanz des benutzerdefinierten Musters öffnet.
- Der benutzerdefinierte Editor muss die Superklasse
BasePatternPropertyEditor erweitern.
- Die Hauptklasse muss einen allgemein zugänglichen Standardkonstruktor ohne Argumente
bereitstellen.
- Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode configureEditor(). Verwenden Sie diese Methode, um den benutzerdefinierten Editor nach
der Erstellung zu konfigurieren. Folgendes ist zu beachten:
- Die Methode configureEditor() verarbeitet ein Objekt PatternPropertyEditorSite, einen booleschen Wert und einen Zeichenfolgewert. Diese Werte werden automatisch vom Musterinstanzeditor übergeben.
- Das Objekt PatternPropertyEditorSite fungiert als Schnittstelle zwischen dem Code des benutzerdefinierten Editors und dem Musterinstanzeditor. Auf dieses Objekt können Sie an beliebiger Stelle im Code des benutzerdefinierten Editors über die Methode getSite() zugreifen.
- Der boolesche Wert gibt an, ob der Musterparameter für den benutzerdefinierten Editor als
verbindlich markiert wurde. Wenn dies der Fall ist, muss Ihr Code einen Wert für den
Musterparameter festlegen.
- Der Zeichenfolgewert enthält die Konfigurationswerte, die bei der Konfiguration des
benutzerdefinierten Editors eingegeben werden. Falls erforderlich, können Sie Code zum Auswerten
dieser Zeichenfolge schreiben, um die Werte im Code des Editors zu verwenden.
- Rufen Sie in der Methode configureEditor() die Methode configureEditor() für die Superklasse auf und übergeben Sie das
Objekt PatternPropertyEditorSite, den booleschen Wert und den Zeichenfolgewert, die an die Methode
configureEditor() übergeben wurden.
Beispiel:
@Override
public void configureEditor(PatternPropertyEditorSite site, boolean required, String configurationValues) {
super.configureEditor(site, required, configurationValues);
}
- Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode
createControls(). Verwenden Sie diese Methode, um die Bedienelemente Ihres
benutzerdefinierten Editors zu definieren. Folgendes ist zu
beachten:
- Sie können die Bedienelemente in der Methode createControls() erstellen oder eine oder mehrere neue Klassen für die Bedienelemente schreiben
und diese neuen Klassen von der Methode createControls() aus instanziieren.
- Wenn sich der Wert des Musterparameters ändert, müssen Sie die Methode valueChanged() im Objekt PatternPropertySite aufrufen. Mit diesem Aufruf wird der Musterinstanzeditor über die Änderung benachrichtigt, der dann wiederum alle XPath-Ausdrücke bzw. benutzerdefinierten Editoren aktualisiert, die diesen Musterparameter verwenden. Mit der Methode getSite() können Sie auf das Objekt PatternPropertySite für den benutzerdefinierten Editor zugreifen. Beispiel:
PatternPropertyEditorSite site = getSite().
- In der Methode createControls() müssen die Bedienelemente initialisiert werden, bevor die zugehörigen Empfangsprogramme definiert werden.
- Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode setValue(). Verwenden Sie diese Methode, um Anfangswerte im benutzerdefinierten Editor festzulegen, um beispielsweise ein Textfeld mit dem Standardwert des Musterparameters zu füllen. Die Methode setValue() verarbeitet einen Zeichenfolgewert, bei dem es sich um den aktuellen Wert des Musterparameters handelt, der automatisch vom Musterinstanzeditor übergeben wird. Vom Musterinstanzeditor wird der Standardwert des Parameters bzw. der nach der Konfiguration der Musterinstanz gespeicherte Wert übergeben.
- Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode getValue(). Verwenden Sie diese Methode, um dem Musterinstanzeditor den Wert des Musterparameters anzugeben.
Die Methode getValue() wird automatisch aufgerufen, nachdem die Methode
valueChanged() aufgerufen wurde.
- Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode setEnabled(). Verwenden Sie diese Methode, um Ihren benutzerdefinierten Editor zu
aktivieren oder zu inaktivieren. Die Methode setEnabled() erhält vom Musterinstanzeditor einen booleschen Wert, aus dem hervorgeht, ob der Musterparameter durch einen XPath-Aktivierungsausdruck aktiviert oder inaktiviert ist. Ist der Parameter aktiviert, lautet der Wert true;
ist der Parameter inaktiviert, lautet der Wert false.
- Optional: Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode isValid().
Verwenden Sie diese Methode, um Einträge im Editor zu überprüfen und gegebenenfalls eine Fehlernachricht an den Musterinstanzeditor zurückzugeben. Die Fehlernachricht wird den Musterbenutzern im Musterinstanzeditor angezeigt.
- Optional: Schreiben Sie in der Hauptklasse des benutzerdefinierten Editors Code zum Überschreiben der Methode notifyChanged().
Verwenden Sie diese Methode, um Benachrichtigungen über Änderungen von anderen Parametern in Ihrem benutzerdefinierten Muster zu verarbeiten und gegebenenfalls den Wert des Musterparameters bzw. das Verhalten des Editors zu ändern. Die Methode notifyChanged() verarbeitet die Parameter-ID des geänderten Parameters sowie dessen neuen Wert.
Beachten Sie die folgenden Beispiele von Java-Codes
für benutzerdefinierte Editoren:
Nächste Schritte: Wenn Sie Ihren benutzerdefinierten Editor noch nicht
konfiguriert haben, lesen Sie den Abschnitt Benutzerdefinierten Editor konfigurieren.