Modules de personnalisation pour les propriétés des beans Java

Un module de personnalisation est une boîte de dialogue supplémentaire que les utilisateurs peuvent ouvrir pour modifier les propriétés des beans Java. Vous pouvez créer les classes du module de personnalisation pour modifier les propriétés des beans Java à ajouter à l'éditeur visuel.

La classe du module de personnalisation implémente l'interface java.beans.Customizer et doit être une sous-classe de java.awt.Component. En règle générale, un module de personnalisation est un conteneur, tel que java.awt.Panel ou javax.swing.JPanel, qui contient les éléments permettant d'afficher et de manipuler les propriétés du bean Java. Lorsque le module de personnalisation est lancé à partir du bouton de la barre d'outils, il est hébergé au sein d'une boîte de dialogue dotée des boutons OK et Cancel.

Lorsqu'un utilisateur ouvre un module de personnalisation, celui-ci reçoit le bean Java à personnaliser avec la méthode public void setObject(Objectbean);. Le module de personnalisation peut ensuite modifier directement l'argument.

L'interface java.beans.Customizer dispose également des méthodes public void addPropertyChangeListener(PropertyChangeListener listener); et public void removePropertyChangeListener(PropertyChangeListener listener). L'éditeur visuel s'ajoute sous la forme de programme d'écoute dans le module de personnalisation et si le module de personnalisation doit régénérer l'apparence du bean Java dans la vue Conception, il doit signaler la modification d'une propriété en appelant ses programmes d'écoute avec l'une des méthodes firePropertyChange(... à l'aide de l'un des jeux d'arguments.

Lorsque l'utilisateur clique sur OK, l'éditeur visuel tente de déterminer les modifications que le module de personnalisation a apportées au bean Java afin de mettre à jour le code source Java. Pour ce faire, l'éditeur visuel extrait une copie de toutes les propriétés du bean Java avant le lancement du module de personnalisation, puis les compare aux propriétés après la fermeture du module de personnalisation. Si une propriété est différente (renvoie false à la méthode equals), on considère qu'elle a été modifiée. Pour déterminer l'argument transmis à la méthode set pour la propriété, l'éditeur de propriétés de java.beans.PropertyDescriptor est créé. Il est ensuite appelé avec public void setValue(Object) et public String getJavaInitializationString();. De la même manière, lorsque vous cliquez sur Cancel, l'éditeur visuel interroge le jeu de propriétés et réinitialise toutes celles qui diffèrent de leur état initial car le module de personnalisation a déjà modifié le bean Java.

Si le module de personnalisation correspond à un shell de niveau supérieur qui ne requiert pasde boîte de dialogue pour son exécution, comme java.awt.Frame ou javax.swing.JFrame, l'éditeur visuel exécute le module de personnalisation tel quel. Comme ce type de module de personnalisation prend en charge son propre jeu de boutons et que l'éditeur visuel nepeut pas savoir s'il a été annulé ou confirmé lorsque le module est fermé, les propriétés de niveau supérieur sont interrogées pour déterminer si elles ont été modifiées. Si le module de personnalisation effectue une annulation, cela peut s'avérer nécessaire pour s'assurer que l'état initial des propriétés du bean Java a été restauré.

Après avoir écrit un module de personnalisation, vous devez le définir dans le descripteur de bean de la classe BeanInfo pour le bean Java :

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

Rubrique parente : Extension de Visual Editor for Java

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