Eine Anpassungsfunktion ist ein zusätzlicher Dialog, den der Benutzer starten kann, um Eigenschaften von Java-Beans zu ändern. Sie können Anpassungsfunktionsklassen für das Editieren der Eigenschaften von Java-Beans erstellen, die Sie dem Visual Editor hinzufügen.
Eine Anpassungsfunktionsklasse muss die Schnittstelle 'java.beans.Customizer' enthalten und muss ebenfalls eine Unterklasse von 'java.awt.Component' sein. Üblicherweise ist eine Anpassungsfunktion ein Container, wie z.B. java.awt.Panel oder javax.swing.JPanel, der die Steuerungen enthält, mit denen Sie die Eigenschaften Ihrer Java-Beans anzeigen und bearbeiten können. Wenn die Anpassungsfunktion über die Schaltfläche in der Symbolleiste gestartet worden ist, wird sie innerhalb eines Dialogs verwendet, der die Schaltflächen OK und Abbrechen hat.
Wenn der Benutzer eine Anpassungsfunktion öffnet, wird der Anpassungsfunktion die Java-Bean, die sie anpasst, als Teil der Methode public void setObject(Object bean); übergeben. Die Anpassungsfunktion kann dann Änderungen direkt am Argument vornehmen.
Die Schnittstelle java.beans.Customizer verfügt auch über die Methoden public void addPropertyChangeListener(PropertyChangeListener listener); und public void removePropertyChangeListener(PropertyChangeListener listener). Der Visual Editor wird sich selbst der Anpassungsfunktion als Listener-Funktion hinzufügen und, wenn die Anpassungsfunktion die Darstellung der Java-Bean in der Entwurfsansicht aktualisieren muss, sollte er eine Eigenschaftsänderung melden, indem er seine Listener-Funktion mit einer der Methoden firePropertyChange(... mit einem Satz an Argumenten aufruft.
Wenn Ihr Benutzer auf OK klickt, wird der Visual Editor festzustellen versuchen, welche Änderungen die Anpassungsfunktion an der Java-Bean vorgenommen hat, um den Java-Quellcode aktualisieren zu können. Dazu nimmt der Visual Editor eine Kopie aller Java-Bean-Eigenschaften, bevor die Anpassungsfunktion gestartet wird und vergleicht sie dann mit den Eigenschaften nach dem Schließen der Anpassungsfunktion. Wenn eine Eigenschaft abweicht (d.h., auf die 'Equals'_Methode 'false' zurückgibt), wird als als geändert festgestellt. Zur Ermittlung des Arguments für die gesetzte Methode der Eigenschaft wird der Eigenschaftseditor java.beans.PropertyDescriptor erstellt. Dann wird er mit public void setValue(Object) und public String getJavaInitializationString(); aufgerufen. Ebenso wird, wenn Sie auf Abbrechen klicken, da die Anpassungsfunktion die Java-Bean bereits geändert hat, der Visual Editor die Eigenschaften abfragen und all jene zurücksetzen die von ihrem anfänglichen Status abweichen.
Wenn die Anpassungsfunktion eine Shell der höchsten Ebene ist, die für den Ablauf keinen Dialog benötigt, wie z.B. java.awt.Frame oder javax.swing.JFrame, wird der Visual Editor die Anpassungsfunktion so wie sie ist ausführen. Da dies Art einer Anpassungsfunktion verantwortlich ist für ihren eigenen Satz an Schaltflächen und der Visual Editor nicht wissen kann, ob sie abgebrochen oder bestätigt wurde wenn die Anpassungsfunktion geschlossen wurde, werden die Eigenschaften der höchsten Ebene abgefragt um festzustellen, ob sie geändert worden sind. Wenn die Anpassungsfunktion also einen Abbruch durchführt, muss sie dies tun, stellt dabei aber sicher, dass die Eigenschaften der Java-Bean wieder in ihren anfänglichen Zustand zurückgesetzt werden.
Nachdem Sie eine Anpassungsfunktion geschrieben haben, muss sie im Bean-Deskriptor für die BeanInfo-Klasse für die Java-Bean definiert werden:
public class MyClassBeanInfo extends SimpleBeanInfo { public BeanDescriptor getBeanDescriptor() { return new BeanDescriptor(MyClass.class, MyCustomizer.class); } }
Übergeordnetes Thema: Erweiterung des Visual Editors für Java