Lançada versão 1.1 do Framework SwingBean

Olá Guerra!

Desde já parabenizo a você pelo belo trabalho desenvolvido!
Considero-me ainda novato diante de Java e seus Frameworks…

Estou atualmente desenvolvendo um trabalho sobre alguns Frameworks de Produtividade para Desenvolvimento de Aplicações Desktop em Java. Tive a enorme felicidade de adiquirir uma revista Mundo Java, pude ver/testar o SwingBean e incluí-lo em meu projeto. Esse trabalho está sendo desenvolvido à uma disciplina do curos, mas poderá vir a ser o meu Trabalho de Conclusão de Curso (<onografia). Em virtude disso, estou aqui em busca de mais informações a respeito do SwingBean, que ao meu ver terá um futuro bastante promissor!

Minhas principais dúvidas estão relacionadas à possibilidade da integração das interfaces desenvolvidas com o SwingBean com algum framework de persistência de dados, como por exemplo o Hibernate. Existem tais possibilidades?

Agradeço desde já pela atenção e espero novidades em futuras versões do SwingBean!

Ae guerra, estou com uma dúvida quanto ao carregamento automatico dos dados em tabelas … dados da base de dados … só consegui com ApplicationAction de botões… da uma força … mandei uma msg privada com detalhes da minha dúvida …

quem puder me dar alguma dica …

uso SwingBean 1.1

falow … abraço

:oops: Mó facil … consegui aki valeu!

[quote=Vádinei Soares]Olá Guerra!

Desde já parabenizo a você pelo belo trabalho desenvolvido!
Considero-me ainda novato diante de Java e seus Frameworks…

Estou atualmente desenvolvendo um trabalho sobre alguns Frameworks de Produtividade para Desenvolvimento de Aplicações Desktop em Java. Tive a enorme felicidade de adiquirir uma revista Mundo Java, pude ver/testar o SwingBean e incluí-lo em meu projeto. Esse trabalho está sendo desenvolvido à uma disciplina do curos, mas poderá vir a ser o meu Trabalho de Conclusão de Curso (<onografia). Em virtude disso, estou aqui em busca de mais informações a respeito do SwingBean, que ao meu ver terá um futuro bastante promissor!

Minhas principais dúvidas estão relacionadas à possibilidade da integração das interfaces desenvolvidas com o SwingBean com algum framework de persistência de dados, como por exemplo o Hibernate. Existem tais possibilidades?

Agradeço desde já pela atenção e espero novidades em futuras versões do SwingBean![/quote]

Puxa vida! Que legal! Quando seu trabalho ficar pronto, gostaria de receber uma cópia.

Na verdade eu mesmo utilizo o SwingBean junto com o hibernate. Você pode utilizar os objetos mapeados com o hibernate para cadastro com o SwingBean sem problemas! :slight_smile:

Pode deixar que para as próximas versões do SwingBean estão previstas features como componentes customizáveis, binding automático e customizações de vizualização.

[quote=muriloagu]Ae guerra, estou com uma dúvida quanto ao carregamento automatico dos dados em tabelas … dados da base de dados … só consegui com ApplicationAction de botões… da uma força … mandei uma msg privada com detalhes da minha dúvida …

quem puder me dar alguma dica …

uso SwingBean 1.1

falow … abraço[/quote]

Eu vi que você já resolveu o problema, mas aí vai uma dica bem legal…

Você quando excluir os objetos de uma tabela, não precisa exclui-los imediatamente do banco de dados. Se você utilizar na classe BeanTableModel o método deleteBeanAt(), que exclui o objeto em uma linha, você pode depois recuperar todos os objetos que forem excluidos com o método getDeleted().

Os métodos getInserted() e getUpdated() fazem o mesmo para objetos atualizados e inseridos. Para zerar a contagem, basta utilizar resetCounters().

[quote=muriloagu]Ae guerra, estou com uma dúvida quanto ao carregamento automatico dos dados em tabelas … dados da base de dados … só consegui com ApplicationAction de botões… da uma força … mandei uma msg privada com detalhes da minha dúvida …

quem puder me dar alguma dica …

uso SwingBean 1.1

falow … abraço[/quote]

Vi que já conseguiu o que queria… Mas aí vai uma dica!!

Quando você exclui os beans de uma tabela utilizando o metodo deleteBeanAt() da classe BeanTableModel, você pode recuperar todos os objetos excluídos utilizando o método getDeleted(). Assim você pode excluir e depois sincronizar com o banco!

Massa demais essas dicas … vou usar aki também …

valeu! e mais uma vez parabéns … axei massa o artigo da MJ e o Frame também é uma mão na roda …

Tenho um projeto e quero usar o Swingbean, mas tenho umas questoes.

Gostaria de Usar com Hibernate e JNDI, vc acha Viavel, ou sai do escopo do projeto?

[quote=jupysilva]Tenho um projeto e quero usar o Swingbean, mas tenho umas questoes.

Gostaria de Usar com Hibernate e JNDI, vc acha Viavel, ou sai do escopo do projeto?[/quote]

Na verdade o SwingBean age na camada de view, sendo que pode ser utilizado independentemente da tecnologia da camada de negócios e persistência. Seria a mesma coisa que perguntar: “É possível utilizar hibernate com JTextField?”.

A integração com Hibernate não faz parte do escopo do SwingBean, porém nada impede de utilizar os dois em um mesmo projeto. Pessoalmente já participei de um projeto que utilizou esta mistura de SwingBean com Hibernate e deu bastante certo!

Olá pessoal, sou novo no mundo java, e estou com problemas para instalar o Swingbeans. Eu coloque todos os arquivos .jar dentro da pasta /lib/ , entretanto ao inicializar o eclipse ele não carrega automaticamente as bibliotecas do swingbeans, por isso vários comandos como “getFieldDescriptor” não são reconhecidos. Alguém pode me ajudar na instalação das bibliotecas.

[quote=dilsonjau]
Olá pessoal, sou novo no mundo java, e estou com problemas para instalar o Swingbeans. Eu coloque todos os arquivos .jar dentro da pasta /lib/ , entretanto ao inicializar o eclipse ele não carrega automaticamente as bibliotecas do swingbeans, por isso vários comandos como “getFieldDescriptor” não são reconhecidos. Alguém pode me ajudar na instalação das bibliotecas. [/quote]

Você precisa adicionar o .jar nas dependências do projeto. Siga os seguintes passos:

1 - Clique com o botão direito no nome do projeto
2 - Escolha a opção Properties
3 - Na janela que abrir escolha a opção Java Build Path
4 - Escolha a aba Libraries
5 - Clique no botão Add External JARS… (pode ser somente Add JAR… se os arquivos estiverem em algum subdiretório do projeto)
6 - Escolha os arquivos jar do SwingBean
7 - Confirme apertando OK

Lembre que os arquivos jar necessários são: swingbean.jar, jcalendar.jar, forms.1.0.5.jar e validation.1.0.jar. Colocar no diretório lib serve apenas para você organizar melhor seu projeto, mas não adiciona biblioteca de classes.

Amigo, depois de sua orientação consegui perfeitamente que todas as bibliotecas fossem reconhecidas, acredito que consegui dar o 1º passo, agora estou com problemas com os arquivos xml. Estou usando o Eclipse 3.2, agora eu crio o arquivo .xml e executo.
Para executar as classes devo executar como JavaBeans ou aplicativo Java normalmente.
Amigo obrigado por suas orientações!!!

[quote=dilsonjau]Amigo, depois de sua orientação consegui perfeitamente que todas as bibliotecas fossem reconhecidas, acredito que consegui dar o 1º passo, agora estou com problemas com os arquivos xml. Estou usando o Eclipse 3.2, agora eu crio o arquivo .xml e executo.
Para executar as classes devo executar como JavaBeans ou aplicativo Java normalmente.
Amigo obrigado por suas orientações!!!
[/quote]

Como aplicativo java!

Olá amigo! ao executar a classe [color=blue]CadastroTeste.java[/color] ele dá os seguintes erros:

Exception in thread “main” java.lang.NullPointerException
at org.swingBean.gui.JBeanPanel.createComponents(JBeanPanel.java:73)
at org.swingBean.gui.JBeanPanel.(JBeanPanel.java:67)
at org.swingBean.gui.JBeanPanel.(JBeanPanel.java:54)
at org.mundojava.swinbean.CadastroTeste.main(CadastroTeste.java:19)

O código é o seguinte:

package org.mundojava.swinbean;
import org.swingBean.gui.;
import org.swingBean.actions.
;
import org.swingBean.descriptor.;
import javax.swing.
;
import java.awt.*;

public class CadastroTeste {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Stub de método gerado automaticamente

// Cria o componente de formulário
GenericFieldDescriptor descriptor = XMLDescriptorFactory.
getFieldDescriptor(Usuario.class, “UsuarioForm.xml”, “UsuarioForm”);
final JBeanPanelpanel = new JBeanPanel(Usuario.class, descriptor);
// Cria o componente de tabela e adiciona uma ação no duplo click
TableFieldDescriptor tableDescriptor = XMLDescriptorFactory.
getTableFieldDescriptor(Usuario.class, “UsuarioTable.xml”, “UsuarioTable”);
final BeanTableModeltableModel = new BeanTableModel(tableDescriptor);
final JBeanTable table = new JBeanTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table);
table.addDoubleClickAction(new ApplicationAction(){
public void execute(){
Usuario usuario = tableModel.getBeanAt(table.getSelectedRow());
panel.setBean(usuario);

		}
		});
	
	// Cria botões em um panel para coloca-los
	
	JActButton botaoInsere = new JActButton("Insere", new ApplicationAction(){
		public void execute(){
			Usuario usuario = new Usuario();
			panel.populateBean(usuario);
			tableModel.addBean(usuario);
			panel.cleanForm();
			
		}
	}); 
	
	JActButton botaoLimpar = new JActButton("Limpar", new ApplicationAction(){
	public void execute(){
		panel.cleanForm();
	}
	});
	
	JPanel panelButton = new JPanel();
	panelButton.add(botaoInsere);
	panelButton.add(botaoLimpar);
	
	//Cria o Frame para exebição dos dados
	
	JFrame frame = new JFrame();
	frame.setSize(800,600);
	frame.setLocation(50, 50);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setLayout(new BorderLayout());
	frame.getContentPane().add(panel, BorderLayout.NORTH);
	frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
	frame.getContentPane().add(panelButton, BorderLayout.SOUTH);
	frame.setVisible(true);  

}

}

Poderia me dizer onde estou errando!?

Obrigado !!!

Provavelmente o erro está no XML, referenciando uma propriedade ou algum componente que não existe… Eu refatorei esta parte do SwingBean para gerar mensagens mais bem explicadas! Na próxima versão esta parte vai estar bem melhor!!!

Mande o XML e a classe Usuario para eu executar o seu código e ver o que está acontecendo de errado…

[quote=dud_ebc]Oi Eduardo eu estou utilizando o swingBean em um sistema, e estou gostando
bastante mas, to com problemas no comboBox gerados pela comboModelClass, que na IDE do Eclipse funciona corretamente mas no arquivo jar do sistema na aparece os valores do combo, vc sabe qual seria o problema [/quote]

Já aconteceu este problema com uma outra pessoa… Verifique se as classes que você coloca no XML para o carregamento dos combos estão presentes no jar.

Olá!

Eu baixei o Swingbean 1.1 e fui fazer o exemplo da matéria da MundoJava enquanto lia. O Eclipse ficou reclamando de algumas classes que não existiam mais e de métodos inexistentes. Fui adaptando e no final consegui fazer o exemplo do matéria.

Também estou sentindo falta de um tutorial e uma documentação melhor para poder aprender a usar esse framework. Ele tem muito potencial de uso aqui na empresa que trabalho. Parabens pelo trabalho!

Eu consegui executar normalmente o seu jar e só precisei acrescentar o classpath no manifest. Ficou assim:

Manifest-Version: 1.0
Main-Class: view.CadastroPessoa
Class-Path: swingbean.jar forms-1.0.5.jar jcalendar.jar validation-1.0.jar

Eu rodei e os combos fncionaram perfeitamente!

Guerra,

Antes de mais nada fantástico seu trabalho. PARABENS !!!

Gostaria de usar o RCP do Eclipse, teria alguma forma de integrar o SwingBean com ele ? Alguma dica ?

Alguma possibilidade de usar o SWT/JFace no futuro ?

Aguardo,

[quote=elissandromendes]Guerra,

Antes de mais nada fantástico seu trabalho. PARABENS !!!

Gostaria de usar o RCP do Eclipse, teria alguma forma de integrar o SwingBean com ele ? Alguma dica ?

Alguma possibilidade de usar o SWT/JFace no futuro ?

Aguardo, [/quote]

Olá Elissandro!

Obrigado pelos elogios!

Por enquanto não existe nenhuma previsão de integração com SWT, porém não é nada que seja completamente incompatível. O grande problema é que os wrappers a a parte de componentes precisaria ser refeita para o SWT.

Atualmente a evolução do framework está apontando para a parte de binding dinâmico e a flexibilização das APIS. Porém, conseguindo desenvolvedores com experiência em SWT, nada impede a construção desta integração.

[]s