Uso de BeanInfo para expor as propriedades dos beans

0 respostas
J
Galera, tenho um bean "idiota", com uma propriedade chamada "nome", que eu estou tentando expor com uma implementação de BeanInfo, ao invés de usar o mecanismo default de instrospection. Eis o código do bean:
public class BeanOla extends Canvas implements Serializable {       
    PropertyChangeSupport gerenteDeMudancas = new PropertyChangeSupport(this);
    private String nome;//exemplo de uma propriedade "bound"
    
    public String getNome()
    {
        return nome;
    }
    
    public void setNome(String nome)
    {
        String velho = this.nome;
        this.nome = nome;
        gerenteDeMudancas.firePropertyChange("nome",velho, nome);
    }
    
   public BeanOla()
    {
        setSize(60,40);
        setBackground(Color.red);
    }  
    
    //gerenciamento dos listeners de nome
    public void addPropertyChangeListener(String nomeDaPropriedade, PropertyChangeListener pcl){

        gerenteDeMudancas.addPropertyChangeListener(nomeDaPropriedade, pcl);
    }
    
    public void removePropertyChangeListener(String nomeDaPropriedade, PropertyChangeListener pcl)
    {
        gerenteDeMudancas.removePropertyChangeListener(nomeDaPropriedade, pcl);
    }   
}
Agora, o código da classe que implementa BeanInfo:
public class BeanOlaBeanInfo extends SimpleBeanInfo
{
    public PropertyDescriptor[] getPropertyDescriptors() {
    try {  
        PropertyDescriptor nome =
            new PropertyDescriptor("nome", BeanOla.class);         
        nome.setBound(true);           
        PropertyDescriptor rv[] =
            {nome};
        return rv;
    } catch (IntrospectionException e) {
         throw new Error(e.toString());
    }
}      
    public java.awt.Image getIcon(int iconKind) {
       return loadImage("beanIcon.GIF");
     }
Quanto ao icone, perfeito, ele aparece lá no toolbox, lindinho. Mas com ou sem a minha implementação do método getPropertyDescriptorsacima, não tem jeito de eu enxergar a propriedade nome na beanbox.... Alguém sabe dizer o que está faltando? Ah, o manifest:
Manifest-Version: 1.0
Created-By: NetBeans IDE
Specified-By: beaninfo.jarContent
Java-Bean: true
Name: BeanOla.class

Fiz tudo como manda o figurino, ou melhor, o Java Tutorial.... :?

Criado 11 de fevereiro de 2005
Respostas 0
Participantes 1