Personalizadores para propriedades do bean Java

Um personalizador é um diálogo adicional que os usuários podem ativar para alterar as propriedades do bean Java. É possível criar classes do personalizador para editar propriedades de beans Java que foram incluídas no editor visual.

Um classe do personalizador deve implementar a interface java.beans.Customizer e também deve ser uma subclasse de java.awt.Component. Geralmente, um personalizador é um contêiner como um java.awt.Panel ou javax.swing.JPanel que contém os controles para permitir que você visualize e manipule suas propriedades do bean Java. Quando o personalizador é ativado a partir do botão da barra de ferramentas, ele é hospedado dentro de um diálogo que tem os botões OK e Cancelar.

Quando um usuário abre um personalizador, o personalizador recebe o bean Java que está personalizando como parte do método public void setObject(Object bean);. O personalizador é, então, capaz de fazer alterações diretamente no argumento.

A interface java.beans.Customizer também tem os métodos public void addPropertyChangeListener(PropertyChangeListener listener); e public void removePropertyChangeListener(PropertyChangeListener listener). O editor visual se incluirá como um listener no personalizador e, se o personalizador tiver que atualizar a aparência do bean Java na visualização Design, ele deverá indicar uma alteração de propriedade chamando seus listeners com qualquer um dos métodos firePropertyChange(... com qualquer conjunto de argumentos.

Quando seu usuário clicar em OK, o editor visual tentará determinar quais alterações o personalizador fez no bean Java para que possa atualizar o código fonte Java. Para fazer isso, o editor visual pega uma cópia de todas as propriedades do bean Java antes do personalizador ser ativado e, em seguida, compara-as com as propriedades quando o personalizador é fechado. Se alguma propriedade for diferente (retornar falso para o método igual), é determinado que ela foi alterada. Para determinar o argumento para o método definido para a propriedade, é criado o editor de propriedade no java.beans.PropertyDescriptor. Em seguida, ele é chamado com public void setValue(Object) e public String getJavaInitializationString();. Do mesmo modo, quando você clica em Cancelar, porque o personalizador já alterou o bean Java, o editor visual consulta o conjunto de propriedades e reconfigura qualquer uma que esteja diferente para seu estado inicial.

Se o personalizador for um shell de nível superior que não exija um diálogo no qual ser executado, como um java.awt.Frame ou javax.swing.JFrame, o editor visual executará o personalizador como está. Como esse tipo de personalizador é responsável por seu próprio conjunto de botões e o editor visual não tem como saber se ele foi cancelado ou confirmado, sempre que o personalizador é fechado, as propriedades de nível superior são consultadas para ver se foram alteradas. Assim, se o personalizador executar um cancelamento ele deve fazer isso, garantindo, desse modo, que as propriedades do bean Java sejam restauradas para seu estado inicial.

Depois de gravar um personalizador, ele deve ser definido no descritor de bean para a classe BeanInfo para o bean Java:

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

Tópico pai: Estendendo o Editor Visual para Java

(C) Copyright IBM Corporation 1999, 2004. Todos os Direitos Reservados.