Eigenschappen van Java-beans aanpassen

Een customizer is een extra dialoogvenster dat door de gebruiker kan worden opgestart om de eigenschappen van Java-beans te wijzigen. U kunt customizerklassen maken voor het bewerken van de eigenschappen van de Java-beans die u toevoegt aan de Visual Editor.

Een customizerklasse moet de interface java.beans.Customizer implementeren en moet ook een subklasse zijn van java.awt.Component. Een customizer is een container zoals een java.awt.Panel of javax.swing.JPanel die de besturingsfuncties bevat waarmee u de eigenschappen van de Java-beans kunt bekijken en bewerken. Als de customizer wordt gestart met de werkbalkknop, wordt deze beschikbaar gesteld in een dialoogvenster met de knoppen OK en Annuleren.

Wanneer de gebruiker een customizer opent, ontvangt de customizer de Java-bean die wordt aangepast als onderdeel van de methode public void setObject(Object bean);. De customizer kan de wijzigingen vervolgens direct aanbrengen aan het argument.

De java.beans.Customizer-interface bevat ook de methoden public void addPropertyChangeListener(PropertyChangeListener listener); en public void removePropertyChangeListener(PropertyChangeListener listener). De Visual Editor voegt zichzelf als listener toe voor de customizer en als de customizer de presentatie van de Java-bean op de ontwerpview moet vernieuwen, moet een signaal over een eigenschappenwijziging worden verzonden door middel van het aanroepen van de listeners met een van de methoden firePropertyChange(... met een argumentenset.

Wanneer de gebruiker op OK klikt, probeert de Visual Editor vast te stellen welke wijzigingen de customizer heeft aangebracht aan de Java-bean, zodat de Java-broncode kan worden bijgewerkt. Om dit uit te kunnen voeren, kopieert de Visual Editor alle eigenschappen van de Java-bean voordat de customizer wordt gestart en vergelijkt deze vervolgens met de eigenschappen op het moment dat de customizer wordt gesloten. Als een eigenschap anders is (onwaar wordt teruggezonden na de methode Is gelijk aan), wordt vastgesteld dat deze is gewijzigd. Om het argument vast te stellen voor de methode instellen van de eigenschap, wordt de eigenschappen-editor voor de java.beans.PropertyDescriptor gemaakt. Vervolgens wordt deze aangeroepen met public void setValue(Object) en public String getJavaInitializationString();. Wanneer u op Annuleren klikt omdat de customizer de Java-bean al gewijzigd heeft, voert de Visual Editor een query uit op de eigenschappenset en herstelt de beginwaarden van de eigenschappen die zijn gewijzigd.

Als de customizer een toplevel-shell is die voor uitvoering geen dialoogvenster nodig heeft, bijvoorbeeld java.awt.Frame of javax.swing.JFrame, wordt door de Visual Editor de customizer als zodanig uitgevoerd. Omdat dit type customizer verantwoordelijk is voor de eigen knoppen en aan de Visual Editor niet bekend wordt gemaakt of is geannuleerd of bevestigd, wordt iedere keer dat de customizer wordt gesloten een query uitgevoerd op de toplevel-eigenschappen om te weten te komen of de eigenschappen zijn gewijzigd. Als de customizer dus een annulering uitvoert, wordt ervoor gezorgd dat de beginwaarden van de eigenschappen van de Java-bean naar hun oorspronkelijke toestand worden hersteld.

Nadat u een customizer hebt geschreven, moet deze worden ingesteld op de bean-descriptor van de BeanInfo-klasse van de Java-bean:

public class MyClassBeanInfo extends SimpleBeanInfo {
    public BeanDescriptor getBeanDescriptor() {
        return new BeanDescriptor(MyClass.class,
MyCustomizer.class);
    }
}

(C) Copyright IBM Corporation 1999, 2004. Alle rechten voorbehouden.