Tilpassere for egenskaper for Java-bønner

En tilpasser er en tilleggsdialogboks som brukere kan starte for å endre egenskapene for Java-bønner. Du kan opprette tilpasser-klasser til redigering av egenskaper for Java-bønner som du legger til i det visuelle redigeringsprogrammet.

En tilpasser-klasse skal implementere grensesnittet java.beans.Customizer, og skal også være en subklasse av java.awt.Component. En tilpasser er vanligvis en container som java.awt.Panel eller javax.swing.JPanel, som inneholder kontroller du kan bruke til å vise og manipulere Java-bønnens egenskaper. Når tilpasseren startes fra verktøylinjeknappen, blir den lagret i en dialogboks som har knappene OK og Avbryt.

Når en bruker åpner en tilpasser, får tilpasseren Java-bønnen som den tilpasser, som del av metoden public void setObject(Object bean);. Tilpasseren kan da gjøre endringer direkte i argumentet.

Grensesnittet java.beans.Customizer har også metodene public void addPropertyChangeListener(PropertyChangeListener listener) og public void removePropertyChangeListener(PropertyChangeListener listener). Det visuelle redigeringsprogrammet vil legge til seg selv som en lytter i tilpasseren, og hvis tilpasseren oppdaterer utseendet til Java-bønnen i Design-visningen, skal den signalisere en egenskapsendring ved å sende kall til lytterne med en av firePropertyChange(...-metodene med et hvilket som helst sett med argumenter.

Når brukeren klikker på OK, vil det visuelle redigeringsprogrammet prøve å fastsette hvilke endringer tilpasseren har gjort i Java-bønnen, slik at Java-kildekoden kan oppdateres. For at det visuelle redigeringsprogrammet skal kunne gjøre det, tar den en kopi av alle Java-bønnens egenskaper før tilpasseren blir startet, og sammenlikner dem så med egenskapene når tilpasseren lukkes. Hvis en egenskap er forskjellig (returnerer false (usann) til equals-metoden), anses egenskapen som endret. Redigeringsprogrammet for egenskapene på java.beans.PropertyDescriptor blir opprettet for å bestemme argumentet for set-metoden til egenskapen. Deretter blir den kalt med public void setValue(Object) og public String getJavaInitializationString();. På samme måte, når du klikker på Avbryt, og tilpasseren allerede har endret Java-bønnen, sender det visuelle redigeringsprogrammet en spørring til settet med egenskaper og tilbakestiller alle som er forskjellige fra den opprinnelige tilstanden.

Hvis tilpasseren er et toppnivåskall som ikke krever at det kjøres en dialogboks i den, for eksempel en java.awt.Frame eller javax.swing.JFrame, vil det visuelle redigeringsprogrammet kjøre tilpasseren som den er. Fordi denne typen tilpasser har ansvar for sitt eget sett med knapper, og det visuelle redigeringsprogrammet ikke kan vite om den ble avbrutt eller bekreftet, blir det sendt spørringer til toppnivåegenskapene for å se om de er endret, hver gang tilpasseren lukkes. Hvis tilpasseren utfører et avbrudd, må den dermed gjøre det, og på den måten sikre at Java-bønnens egenskaper blir gjenopprettet til de opprinnelige tilstandene.

Når du har skrevet en tilpasser, må den defineres i bønnedeskriptoren for BeanInfo-klassen for Java-bønnen:

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

(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved.