Tutorial de 5 minutos
Esta é uma rápida introdução ao Cola. Uma rápida leitura vai permitir compreender as características disponíveis no Cola.
Instalando o Cola
Nós utilizamos o Eclipse 3.1 para desenvolver. No arquivo colaLib-full-depend.zip você vai encontrar todos os arquivos jar que vai precisar , adicione eles para seu classPath. Veja guia de desenvolvimento para ver como desenvolver um projeto no cola.
Criando classes para serem persistidas
Aqui esta uma classe simples. Por meio do Cola vamos montar uma tela para persistir os dados.
public class Person { private Long id; private String firstname; private String lastname; private String phone; private String fax; }
Nota: Note que os campos são privados. O Cola usa o mecanismo de metamodelos do Hibernate que por sua vez pode usar acesso dos campos ("field") não tendo necessidade do uso de sets e gets. Esta é uma forma de implementar um DTO no entanto eu sempre tenho usado gets e sets embora para o exemplo atual não seja necessário.
Inicializando o Cola
Primeiro passos crie uma classe extendendo JPanel.
public class PanelPerson extends JPanel {//...
Para usar
PersistentFormBuilder
crie um construtor e inicie o layout do Panel com um BorderLayout e crie um FormLayout (JGoodies), ele definirá um grid onde os componentes vão ser lançados :
public PanelPerson () { setLayout (new BorderLayout()); FormLayout layout = new FormLayout( "p,2dlu,max(100dlu;p),4dlu,p,2dlu,max(100dlu;p)", ""); //... }
Agora nós podemos iniciar o PersistentFormBuilder :
public PanelPerson () { //... PersistentFormBuilder builder = new PersistentFormBuilder(layout);//1 builder.setDefaultDialogBorder(); //2 builder.setPersistentClass(Person.class); //3 //... }
- Em 1 nós inicializamos o
PersistentFormBuilder
com o layout que definimos. - Em 2 nós colocamos uma borda.
- Em 3 nós definimos que classe vai ser persistida pelos components construidos pelo
PersistentFormBuilder
.
Podemos agorá adicionar os Components necessários para montar a tela:
public PanelPerson () { //... builder.appendTextField("First Name :", "firstname"); //1 builder.appendTextField("Last Name :", "lastname"); //2 builder.nextLine(); //3 builder.appendTextField("Phone :", "phone"); //4 builder.appendTextField("Fax :", "fax"); //5 builder.nextLine(); //... }
- Em 1 adicionamos uma caixa de edição (JTextField) para o primeiro nome da pessoa.
- Em 2 adicionamos uma caixa de edição (JTextField) para o último nome da pessoa.
- Em 3 pulamos uma linha.
- Em 4 e 5 adicionamos caixas de edição (JTextField) para o telefone e o fax.
Falta adicionarmos uma barra com buttons para efetuar algumas operações:
public PanelPerson () { //... builder.buildButtonPanel(new ActionListener () { public void actionPerformed(ActionEvent e) { System.exit(0); }}); //1 add (builder.getPanel(), BorderLayout.CENTER); //2 //... }
- Em 1 passamos um ActionListener para a barra de buttons para que seja executado pelo button fechar.
- Em 2 adicionamos o panel gerado pelo Builder ao
PanelPerson
Esta pronto a nossa tela. Que deve ficar assim:

O código completo para desenhar a tela fica assim:
public PanelPerson () { setLayout (new BorderLayout()); this.setLayout (new BorderLayout()); FormLayout layout = new FormLayout( "p,2dlu,max(100dlu;p),4dlu,p,2dlu,max(100dlu;p)", ""); PersistentFormBuilder builder = new PersistentFormBuilder(layout); builder.setDefaultDialogBorder(); builder.setPersistentClass(Person.class); builder.appendTextField("First Name :", "firstname"); builder.appendTextField("Last Name :", "lastname"); builder.nextLine(); builder.appendTextField("Phone :", "phone"); builder.appendTextField("Fax :", "fax"); builder.nextLine(); builder.buildButtonPanel(new ActionListener () { public void actionPerformed(ActionEvent e) { System.exit(0); }}); add (builder.getPanel(), BorderLayout.CENTER); }
Para exibir este panel podemos criar um main na classe
PanelPerson
também precisamos dos arquivos de configuração do Hibernate no caso hibernate1.cfg.xml e person.hbm.xml