Customizer per le proprietà dei bean Java

Un customizer è una finestra di dialogo aggiuntiva che gli utenti possono utilizzare per apportare modifiche alle proprietà dei bean Java. E' possibile creare classi customizer per la modifica delle proprietà dei bean Java da includere nell'editor visuale.

Una classe customizer deve implementare l'interfaccia java.beans.Customizer, inoltre deve essere una sottoclasse di java.awt.Component. In genere, un customizer è un contenitore, quale ad esempio java.awt.Panel o javax.swing.JPanel, che contiene i controlli con i quali è possibile visualizzare e manipolare le proprietà dei bean Java. Quando viene avviato con il pulsante della barra degli strumenti, il customizer viene sistemato all'interno di una finestra di dialogo che dispone di pulsanti OK e Annulla.

Quando l'utente apre un customizer, al customizer viene assegnato il bean Java di cui deve eseguire la personalizzazione come parte del metodo public void setObject(Object bean);. In questo modo, il customizer è in grado di apportare modifiche direttamente all'argomento.

L'interfaccia java.beans.Customizer dispone inoltre dei metodi public void addPropertyChangeListener(PropertyChangeListener listener); e public void removePropertyChangeListener(PropertyChangeListener listener). L'editor visuale verrà aggiunto come listener nel customizer; se il customizer dovrà aggiornare la visualizzazione del bean Java nella vista Progettazione, dovrà segnalare una modifica di proprietà chiamando i propri listener con uno dei metodi firePropertyChange(... con qualsiasi insieme di argomenti.

Quando l'utente fa clic su OK, l'editor visuale tenterà di determinare quali modifiche avrà apportato il customizer al bean Java, quindi potrà aggiornare il codice di origine Java. A tale scopo, l'editor visuale conserva una copia di tutte le proprietà dei bean Java prima dell'avvio del customizer e poi le confronta con le proprietà al termine dell'esecuzione del customizer. Se una proprietà è diversa (restituisce false al metodo equals), ne viene determinata la modifica. Per determinare l'argomento del metodo set della proprietà, viene creato l'editor delle proprietà in java.beans.PropertyDescriptor. Quindi, viene chiamato con public void setValue(Object) e public String getJavaInitializationString();. Allo stesso modo, quando si fa clic su Annulla e il customizer ha già modificato il bean Java, l'editor visuale esegue una query relativa all'insieme di proprietà e ripristina quelle che risultano diverse rispetto allo stato iniziale.

Se il customizer è una shell di primo livello che non necessita di una finestra di dialogo in cui essere eseguito, come ad esempio java.awt.Frame o javax.swing.JFrame, l'editor visuale eseguirà il customizer nello stato in cui si trova. Poiché questo tipo di customizer è responsabile del proprio insieme di pulsanti e l'editor visuale non è quindi in grado di sapere in alcun modo se è stata annullata o confermata un'operazione, ogni volta che viene terminata l'esecuzione del customizer viene eseguita una query relativa alle proprietà di primo livello per verificare se sono state modificate. Pertanto, se il customizer ha eseguito un'operazione di annullamento, sarà necessario svolgere la stessa operazione, garantendo così che le proprietà dei bean Java siano ripristinate allo stato iniziale.

Dopo aver scritto un customizer, sarà necessario impostarlo nel descrittore per la classe BeanInfo del bean Java:

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

Argomento principale: Estensione dell'editor visuale per Java

(C) Copyright IBM Corporation 1999, 2004. Tutti i diritti riservati.