Genesis - Habilitar e desabilitar

Bom dia galera,

Estava fazendo um exemplo simples com o genesis de habilitar e desabilitar botões. Está rodando beleza, porém está aparecendo em tempo de execução alguns warnings.

Veja o código abaixo:

//----------------------------
// FORM
//----------------------------
package testeg;

import net.java.dev.genesis.annotation.Form;
import net.java.dev.genesis.annotation.Action;
import net.java.dev.genesis.annotation.EnabledWhen;


@Form
public class TesteViewFormBotao {

    private boolean novoMode;
    private boolean incluirMode;
    private boolean excluirMode;
    private boolean cancelarMode;

    public TesteViewFormBotao() {
        super();
        setNovoMode(true);
        setExcluirMode(true);        
    }

@Action
@EnabledWhen("form.novoMode") //Só habilita se a condição for true
public void novo() {
    
        setNovoMode(false);
        setIncluirMode(true);
        setExcluirMode(false);        
        System.out.println("1 - "+isIncluirMode());
}

@Action
@EnabledWhen("form.incluirMode")
public void incluir()
{
  System.out.println("Incluir - "+isIncluirMode());
}


@Action
@EnabledWhen("form.excluirMode")
public void excluir()
{
   setNovoMode(false);
   setIncluirMode(false);
   System.out.println("excluir - "+isExcluirMode());
}


@Action
public void cancelar()
{
    setNovoMode(true);
    setIncluirMode(false);
    setExcluirMode(true);
    System.out.println("---- Estado Inicial dos botoes ----");
}

    public boolean isIncluirMode() {
        return incluirMode;
    }

    public void setIncluirMode(boolean incluirMode) {
        this.incluirMode = incluirMode;
    }

    public boolean isExcluirMode() {
        return excluirMode;
    }

    public void setExcluirMode(boolean excluirMode) {
        this.excluirMode = excluirMode;
    }

    public boolean isCancelarMode() {
        return cancelarMode;
    }

    public void setCancelarMode(boolean cancelarMode) {
        this.cancelarMode = cancelarMode;
    }

    public boolean isNovoMode() {
        return novoMode;
    }

    public void setNovoMode(boolean novoMode) {
        this.novoMode = novoMode;
    }

}

E A VIEW

//----------------------------
// VIEW
//----------------------------

package testeg;

import net.java.dev.genesis.annotation.ViewHandler;
import net.java.dev.genesis.ui.swing.SwingBinder;

@ViewHandler
public class TesteViewBotao extends javax.swing.JFrame {
    
    public TesteViewBotao() {
        
        initComponents();
  
        SwingBinder binder = new SwingBinder(this, new TesteViewFormBotao());    
        binder.bind(); 
    }
    
     private void initComponents() {

        Novo = new javax.swing.JButton();
        Incluir = new javax.swing.JButton();
        Excluir = new javax.swing.JButton();
        Cancelar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        Novo.setText("Novo");
        Novo.setName("novo"); // NOI18N
        Novo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NovoActionPerformed(evt);
            }
        });

        Incluir.setText("Incluir");
        Incluir.setName("incluir"); // NOI18N

        Excluir.setText("Excluir");
        Excluir.setName("excluir"); // NOI18N

        Cancelar.setText("Cancelar");
        Cancelar.setName("cancelar"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(Novo)
                .addGap(18, 18, 18)
                .addComponent(Incluir)
                .addGap(18, 18, 18)
                .addComponent(Excluir)
                .addGap(18, 18, 18)
                .addComponent(Cancelar)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Novo)
                    .addComponent(Incluir)
                    .addComponent(Excluir)
                    .addComponent(Cancelar))
                .addContainerGap(24, Short.MAX_VALUE))
        );

        pack();
    }

    private void NovoActionPerformed(java.awt.event.ActionEvent evt) {}                                    
    

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TesteViewBotao().setVisible(true);
            }
        });
    }
    
    private javax.swing.JButton Cancelar;
    private javax.swing.JButton Excluir;
    private javax.swing.JButton Incluir;
    private javax.swing.JButton Novo;
    
}

WARNING:

07/04/2008 11:16:50 net.java.dev.genesis.ui.binding.AbstractBinder bindFieldMetadata
WARNING: novoMode could not be found while binding class testeg.TesteViewFormBotao
07/04/2008 11:16:50 net.java.dev.genesis.ui.binding.AbstractBinder bindFieldMetadata
WARNING: excluirMode could not be found while binding class testeg.TesteViewFormBotao
07/04/2008 11:16:50 net.java.dev.genesis.ui.binding.AbstractBinder bindFieldMetadata
WARNING: cancelarMode could not be found while binding class testeg.TesteViewFormBotao
07/04/2008 11:16:50 net.java.dev.genesis.ui.binding.AbstractBinder bindFieldMetadata
WARNING: incluirMode could not be found while binding class testeg.TesteViewFormBotao

Acho que está procurando uma referencia a algum componente da view e não encontra(incluirMode, excluirMode, cancelarMode, novoMode). Só que eu não posso fazer o “binder.register” por que os métodos dos botões são outros(novo, incluir, excluir,cancelar).
Eu não sei se foi a melhor maneira para fazer o Form, mais funcionou. O problema mesmo são as warnings em tempo de execução. Só quero tirá-los.

Se alguem puder me ajudar ficarei grato.

Obrigado a todos.

Aléssio

Galera, o Mister_m me respondeu na lista do Genesis e achei que deveria compartilhar a resposta.

Veja abaixo:

Esses warnings são normais; apenas te avisam que estas propriedades
não foram encontradas na view. Servem para diagnosticar um erro comum,
que é dar nome errado aos componentes visuais por erro de digitação.
No seu caso, não são significativos.

Lembre-se que warnings são avisos, não erros; então, nem sempre há
algo de errado.

[]s
Michael Nascimento Santos
https://genesis.dev.java.net/
https://jsr-310.dev.java.net/