Interfejsy dostosowywania właściwości komponentów Java Bean

Interfejs dostosowywania to dodatkowe okno dialogowe, w którym można zmieniać właściwości komponentów Java Bean. Można także tworzyć klasy dostosowywania, które pozwalają edytować właściwości komponentów Java dodawanych do edytora elementów wizualnych.

Klasa dostosowywania powinna implementować interfejs java.beans.Customizer i być podklasą klasy java.awt.Component. Interfejs dostosowywania jest zwykle kontenerem, na przykład java.awt.Panel lub javax.swing.JPanel, zawierającym elementy sterujące, które pozwalają wyświetlać właściwości komponentu Java Bean i manipulować nimi. Interfejs dostosowywania uruchamiany przy użyciu przycisku na pasku narzędzi jest udostępniany w oknie dialogowym z przyciskami OK i Anuluj.

Gdy użytkownik otwiera interfejs dostosowywania, do interfejsu jako część metody public void setObject(Object bean); jest przekazywany komponent Java Bean, który ma zostać dostosowany. Interfejs dostosowywania może następnie wprowadzić zmiany bezpośrednio w argumencie.

Interfejs java.beans.Customizer ma także metody public void addPropertyChangeListener(PropertyChangeListener listener); i public void removePropertyChangeListener(PropertyChangeListener listener). Edytor elementów wizualnych dodaje siebie jako funkcję nasłuchiwania w interfejsie dostosowywania, a jeśli interfejs dostosowywania ma odświeżyć wygląd komponentu Java Bean w widoku projektowania, musi zasygnalizować zmianę właściwości, wywołując swoje funkcje nasłuchiwania dowolną metodą firePropertyChange(...) z dowolnym zestawem argumentów.

Gdy użytkownik kliknie przycisk OK, edytor elementów wizualnych spróbuje określić zmiany komponentu Java Bean wprowadzone przez interfejs dostosowywania, aby móc zaktualizować kod źródłowy Java. W tym celu edytor elementów wizualnych kopiuje wszystkie właściwości komponentu Java Bean przed uruchomieniem interfejsu dostosowywania, a następnie porównuje je z właściwościami istniejącymi przy zamykaniu interfejsu dostosowywania. Jeśli istnieją różnice między właściwościami (metoda equals zwróci wartość false), komponent uległ zmianie. Aby określić argument metody ustawiania właściwości, w klasie java.beans.PropertyDescriptor tworzony jest edytor właściwości. Następnie jest on wywoływany przy użyciu metod public void setValue(Object) i public String getJavaInitializationString();. Analogicznie po kliknięciu przycisku Anuluj edytor elementów wizualnych wysyła zapytanie o zestaw właściwości i resetuje do stanu początkowego te z nich, które uległy zmianie.

Jeśli interfejs dostosowywania jest powłoką najwyższego poziomu, która nie wymaga do uruchomienia okna dialogowego, na przykład java.awt.Frame lub javax.swing.JFrame, edytor elementów wizualnych uruchomi go w jego własnej postaci. Ponieważ taki interfejs dostosowywania ma własny zestaw przycisków, a edytor elementów wizualnych nie może wiedzieć, czy użyto przycisku potwierdzenia czy anulowania, po zamknięciu interfejsu dostosowywania właściwości najwyższego poziomu są sprawdzane pod kątem ewentualnych zmian. Jeśli więc interfejs dostosowywania zostanie anulowany, ta operacji zapewnia przywrócenie właściwości komponentu Java Bean do stanu początkowego.

Napisany interfejs dostosowywania należy ustawić w deskryptorze komponentu Bean dla klasy BeanInfo komponentu Java Bean:

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

(C) Copyright IBM Corporation 1999, 2004. Wszelkie prawa zastrzeżone.