Framework Click

60 respostas
R

Olá,

Eu já comentei algumas vezes no fórum sobre o framework Click:

http://click.sourceforge.net
http://www.avoka.com:8080/click-examples/home.htm

Eu fiz um pequeno vídeo para demonstrar um pouco do Click:

http://sourceforge.net/project/showfiles.php?group_id=98634&package_id=202055&release_id=443838

O vídeo demostra como fazer uma simples tela CRUD em poucos minutos.

Reparem como é simples, eu pouco tempo uma tela é construída, com validação, sem nenhuma configuração, pouco código. Simplesmente animal.

O sistema de eventos do click o torna extremamente produtivo, e trabalhando com componentes, podemos reutilizar muito mais o código, inclusive o da view. Reparem que o código da página crud é genérico e poderia ser movido para uma classe abstrata que faz tudo…

O mais interessante do click é sua simplicidade.

O click logo vai lançar a versao 1.0 final, embora o projeto já vem sendo usado desde 2003. E também está entrando para a Apache, como sub-projeto do Velocity.

Para os críticos, lembrando que é possível continuar usando MVC normalmente. E também é possível desenhar a tela manualmente, embora o Click oferece umas 5 maneiras de customzar um form por exemplo.

Sobre o WW, se eu fosse vcs parava de usar, eles estao com problemas sérios de performance. Nao da de usar em aplicações onde o tempo de resposta é um diferencial. No forum do WW muita gente já reclamou, inclusive eu quebrei o pau lá uma vez. Eles dizem que estão a par da situação e vão corrigir para o SAF 2. Mas depois de conhecer o Click, nao tem mais volta :slight_smile:

60 Respostas

L

Porrada esse framework !.
Bastante interessante.

A

Testei e aprovo. Muito bom o Framework.
Você é o desenvolvedor?

R

ajaxinaction:
Testei e aprovo. Muito bom o Framework.
Você é o desenvolvedor?

Eu contribuo um pouco, mas não sou commiter.

J

"JSP’s combined with the miss application of the MVC pattern have been holding back J2EE web development for many years. "

“If you have done traditional GUI programming with Swing, VB or Delphi you will know that there is something very wrong with J2EE web development.”

Quando eu falo isso levo 1 estrelinha… :frowning:

ehehehe, o cara botou o “miss” pra tentar não arrumar tanta encrenca, mas isso aí já serve pra alimentar troll

M

Também achei interessante.
[]'s
mindu

L

Muito bom mesmo.
Curti o demo.
:]

D

Ricardo,

Parabens pelo video, ficou muito legal mesmo…
Quais os plugins que estão instalados nesse eclipse ? ( Esse que conecta ao banco de gera as classes não consegui encontrar)

Um Abraço,
Dennis

R

O do banco é o easysql: http://easysql.sourceforge.net.

Para gerar as classes eu usei um build do ant que usa o hibernate tools.

M

Ricardo,
Para usar a classe ClickFactory do exemplo do vídeo, devo adicionar qual jar ?
Adicionei as lib que vem no zip, porém não encontrei a classe, apesar que vi outras formas de se criar um form, table …

valeu.

R

aquela classe é minha, eu vou disponibilizar em 2 semanas qunando lançar a nova versão do plugin EclipseWork.

mas o que a formfactory faz é uma reflexão e montar os campos (textfield,numberfield,datefield) de acordo com os tipos dos atributos.

M

Ricardo,
O que seria esse EclipseWork ?

K

mindu:
Ricardo,
O que seria esse EclipseWork ?

Um Plugin do Eclipse que o Ricardo mantem.
http://eclipsework.sourceforge.net/

[]s

J

mindu:
Ricardo,
O que seria esse EclipseWork ?

http://www.google.com/search?q=EclipseWork :wink:

valeuz…

N

Muito bom, produtividade 10.

M

Ricardo,

Posso aproveitar o topico aqui e postar uma dúvida ?

Num Table, eu adicionei uma coluna do tipo: CheckBox, a idéia é ter a mesma funcionalidade do gmail, onde vc marca todos e depois exclui os que estão selecionados.

Como eu poderia estar fazendo com o Click ?

A coluna com o checbox foi adicionada, criei um atributo ‘active’ no VO e o table carrega normalmente, mas não sei como recuperar os registros selecionados.

veja o exemplo de teste:

http://www.canaljava.com.br/paste/show/135

obrigado,

R

Já olhou o FormTable ? No seu codigo use o FormTable ao inves de Form que fica mais simples.

http://www.avoka.com:8080/click-examples/table/form-table.htm
http://www.avoka.com:8080/click-examples/source-viewer.htm?filename=WEB-INF/classes/net/sf/click/examples/page/table/FormTablePage.java

O legal são os javadocs do Click, o cara tem uma puta paciencia, ele coloca o html de exemplo certinho no javadoc (quase um tutorial) :slight_smile:
http://click.sourceforge.net/docs/extras-api/net/sf/click/extras/control/FormTable.html

Quando vc recuperar a lista da tabela, todos os Fields (neste caso seus CheckBoxes) serão retornados…

Vc pode recuperar a lista de fields assim:
List fields = tableForm.getForm().getFieldList();

O

Muito fera mesmo ! :smiley:

J

Not Found

The requested URL /click/WhyClick.zip was not found on this server.

:cry:

M

Ricardo,
Vi sobre o FormTable, é exatamente o que eu procuro, porém não consegui adaptar para o que eu preciso.
Principalmente pq eu não entendi o que ele faz nesse ponto:

getDataContext().commitChanges();

No meu caso, alterei para FormTable, adicionei o botão de submit:

formTable.getForm().add(new Submit("ok", "   OK   "));

A tabela carrega normalmente com os checkbox.

No método onPost, quando tento recuperar os valores selecionados, não estou tendo sucesso.

Fiz o que vc sugeriu:

public void onPost() {
		 List fields = formTable.getForm().getFieldList();
		 Iterator it = fields.iterator();
		 while(it.hasNext()){
			System.out.println(" &gt " + it.next()); 
		 }
	}

Mas está retornando algo como:

&gt <input type="hidden" name="form_name" id="formTable_form_form_name" value="formTable_form"/>

Estou apanhando feio :cry:

R

O getDataContext().commitChanges(); é só um exemplo, integração com o Cayenne.

Se vc fizer assim, vai retornar a lista de objetos já alterados:

List list = formTable.getRowList();
M

Ricardo,
Muito obrigado, funcionou !

valeu mesmo …
[]'s

M

Olá Pessoal…

Alguém poderia me dar uma força aqui, estou meio perdido com o IDE do Eclipse
Oque eu preciso instalar para começar a desenvolver utilizando o Click?

Partindo do princípio que tenho o Eclipse instalado sem plugin algum por enquanto…
Ele não tem opção para criar Web projetos servelet… tenho que instalar o plugin para Jboss? ou para Tomcat?? Ou ambos ou nenhum… ou tenho que instalar o WTP (Web tools project)

Efim oque eu teria que instalar no Eclipse para utilizar o Click e aumentar a produtividade?

Obrigado

M

Aqui estou utilizando eclipse + webtools.
Plugin tem o:
ClickIDE http://www.sunvolt.com/confluence/display/CLKT/ClickIDE
EclipseWork http://www.guj.com.br/posts/list/39895.java

[]'s

R

macfly2500:
Olá Pessoal…

Alguém poderia me dar uma força aqui, estou meio perdido com o IDE do Eclipse
Oque eu preciso instalar para começar a desenvolver utilizando o Click?


Bom, com tantas dúvidas eu sugiro vc estudar o básico. Tipo Servlets+JSP, e um servlet container como o Tomcat.

Tem artigos aqui no guj sobre isto.

E sobre a produtividade, o Click é produtivo justamente porque é simples e simples de customizar, não pelo fato de ter ferramentas. As vezes as ferramentas só escondem a complexidade da coisa.

abraço

R

Este vídeo mostra um pouco do EclipseWork, e como gerar uma aplicação CRUD com Click, lendo as tabelas do banco de dados.

http://www.guj.com.br/posts/list/40171.java

R

Olá,

Muita gente tem me perguntado como faz para customizar o html gerado pelo click, uma vez que aquele $form chama o toString() no objeto Form que por sua vez renderiza todos os campos.

No FAQ existem 5 maneiras;
http://click.sourceforge.net/docs/faq.html#html-control

1 - Customizando o css. É possível customizar muita coisa no control.css para a Form e Tabelas

2 - A form tem várias opções para customizar o layout:
http://click.sourceforge.net/docs/click-api/net/sf/click/control/Form.html#auto-layout

3 - Pode-se fazer uma subclasse de Form e Table e sobrescrever o toString()

4 - Usar uma macro do velocity
http://click.sourceforge.net/docs/click-api/net/sf/click/control/Form.html#velocity-macros

5 - Se nada adiantar, faça tudo no braço:
http://click.sourceforge.net/docs/click-api/net/sf/click/control/Form.html#manual-layout

Então por exemplo: $form.fields.nome imprime o textfield nome. E $form.fields.salvar imprime o botão Salvar.

M

Ricardo, muito legal os exemplos.

Teria algo para customizar o Table/FormTable ?

Uma dúvida, preciso criar um javascript para marcar/desmarcar todos os checkbox do FormTable, para permitir múltiplas exclusão por exemplo, qual seria a melhor maneira de fazer isso ?

Outra dúvida, no FormTable possui um imagem com um link, usei o Decorator para adicionar a imagem com link, agora preciso quando clicar no link da imagem, abrir uma nova janela (popup) somente com essa imagem, teria alguma idéia de como poderia estar fazendo ?

obrigado pela atenção.

R

O vídeo creio que não está mais acessível…

R

O consumo de transferência de banda do site passou do limite do meu plano na locaweb :wink:

Vou colocar no sourceforge depois.

R

Tem que sobrescrever o toString da classe, tá querendo mamão com acúcar demais :slight_smile:

Vc pode ter dois atributos to tipo CheckBox nesta sua Table customizada. No toString, vc adiciona uma linha antes das outras, tipo um header. E chama o toString() destes checkboxes… é uma idéia.

Um decorator pode fazer isto, basta retornar uma String com o código javascript.

R

Olá, coloquei no sourceforge:
http://sourceforge.net/project/showfiles.php?group_id=98634&package_id=202055&release_id=443838

C

Show de bola este framework.

Nota 10. Estou baixando ja.

Tem como usar o Tiles nele?

R

Tiles é acoplado ao Struts. Vc pode tentar o Sitemesh da Opensymphony que é muito melhor.

Mas o Click já tem suporte nativo para layouts.

http://click.sourceforge.net/docs/best-practices.html#templating

http://click.sourceforge.net/docs/pages.html#page-templating

C

ricardolecheta:
Tiles é acoplado ao Struts. Vc pode tentar o Sitemesh da Opensymphony que é muito melhor.

Mas o Click já tem suporte nativo para layouts.

http://click.sourceforge.net/docs/best-practices.html#templating

http://click.sourceforge.net/docs/pages.html#page-templating

obrigado ricardo
:wink:

Vou usar o suporte nativo entao.

D

Uma coisa legal q gostaria que tivesse no Click (talvez tenha e q eu nao vi ainda) é um melhor tratamento de eventos javascript nos componentes HTML… como por exemplo o onKeyDown e o onMouseMove sem q tivesse a necessidade de fazer um component.setAttribute() passando o nome da função javascript q depois vai ter q ser escrita no template…

é claro q da pra fazer esses métodos no componente… mas a programação da função javascript ainda teria q estar no template… pq acho q escrever o corpo da função JS no setAttribute fica meio porco…

a mesma coisa vale pra eventos de esconder um componente… ou ter um listener para teclado… essas coisas…
O Click é um framework excelente… mas falta algumas coisas pra ficar realmente produtivo…

eu nao sei o q eu acho melhor… Se prefiro um framework bem clean, porém é quase certo q todas as features serão usadas, e no caso de se precisar mais é só estende-lo… Ou se prefiro um framework parrudo q no final das contas não iremos usar nem 30% dos recursos em determinados projetos e q fica mais complexo…
Acho q fico com a primeira opção! :smiley: …Mas pra quem prefere a segunda opção eu recomendaria o GWT… Mas na minha opinião, o Click é mais produtivo (para coisas mais simples) e é bem estensível…

abraços!

R

Daniel,

conforme vc mesmo relatou, um framework simples muitas vezes precisa ser extendido.

tem um frase do autor do Click que é assim: “The design philosophy behind Click is best summarized in the Swedish word lagom which translates to not too little or too much, but optimal.”

O motivo para nao existir features como estas, é que o click tem um design para aplicações comercias de verdade, e algumas viadagens tipo features que servem para marketing e bla bla bla nao existem. Se vc for aplicar o Click em sua empresa, vc vai customizá-lo de acordo com suas necessidades, o que é algo bem simples. Se customizar os layouts fica show de bola, por exemplo se vc faz sempre aplicações para um mesmo cliente, isto será extremamento útil.

Lembre-se, quanto mais features, mais difícil de entender o framework, e também é necessário mais documentação.

discordo.

Me de um exemplo sobre quando ele não é produtivo?

A

Concordo inteiramente com o Ricadro, aliás esse foi um dos motivos para que eu escolhesse o click, simples mas de fácil customização.
Criar novos componentes, ou customizar os existentes é fácil.

Em relação a escrever o JS no template, eu particularmente prefiro dessa forma. Crio um .js e apenas importo ele através de getHtmlImports. Ou seja as funções não ficam nem no componente nem no template, ficam em um arquivo js separado, além de deixar tanto o template como o código do componente mais clean, estas funcçoes não precisam ser carregadas a cada nova página pois ficam no cache do browser.

D

ricardolecheta:

discordo.

Me de um exemplo sobre quando ele não é produtivo?

como eu disse… o Click é mais produtivo… mas pq eu disse q é para coisas mais simples? pq simplesmente vc tem a necessidade de implementar mtos eventos javascript nos componentes, incluindo listeners… coisa que no GWT ja está implementado…
mas o Click é mto produtivo SIM! e como eu disse tb, adoro o fato dele ser clean e nós termos que estende-lo para fazer qualquer tipo de componente! (ainda mais por ser mto simples de crirar novos componentes) :smiley:
apenas comentei q o GTW seria mais produtivo para coisas maiores (justamente pq esses tipos de coisas já estão implementadas)

abraços!

P

Estava lendo a documentação do click… muito fácil de usar!

Li um livro de struts para iniciar e apanhei um monte pra entender…

Esse click é mais intuitivo, mais fácil…

Gostei muito…

Parabéns!

P

Ola Ricardo,

Você poderia mostrar qual o ambiente que você usou (Plugins do Eclipse) para desenvolver o video?

De alguma forma, listar os plug-ins ? Gostaria muito de saber :slight_smile:
Inclusive se possível os para Hibernate que gerou todos os hbm pra você…

[EDITADO]Você está usando o Click com jetty certo? onde consigo informações para configurar o mesmo com jetty? [EDITADO] - Esse foi resolvido.

Obrigado desde já,

A

Hibernate tools
http://www.hibernate.org/255.html

Eclipsework para geração de código baseado em templates do velocity
(Um plugin que o ricardo desenvolve)
http://eclipsework.sourceforge.net/

P

apo:
Hibernate tools
http://www.hibernate.org/255.html

Eclipsework para geração de código baseado em templates do velocity
(Um plugin que o ricardo desenvolve)
http://eclipsework.sourceforge.net/

Legal!! muito obrigado :slight_smile:

ele usou WTP para xml?

e para o banco de dados? sqlexplorer ou easysql ?

Muito obrigado pela resposta! :slight_smile:

A

O EasySql junto com o Eclipsework para gerar os wizards…

Quanto aos outros plugins não sei qual ele utilizou :(, mas vc pode utilizar oque for melhor para o seu caso.

[]'s

B

Ricardo,

Foi você quem fez o vídeo?
Se sim, queria saber qual a ferramenta que você utilizou?
Estou precisando de um programa desses para poder criar uma apresentação.

Obrigado!

R

ScreenCam

A

Ricardo,

Tenho que ter alguma lib em especial instalada para utilizar as funções do Eclipsework?
Ao tentar utilizar a função $utils.javaName(), $utils.getJavaName() ele diz que não encontrou o método capitalize em org.eclipse.eclipsework… core.util…

Estou utilizando a versão 0.9 com eclipse 3.2 a lib commons-lang-2.1.jar está no diretório lib do plugin, não sei pq não está achando…

Outra coisa, para utilizar o recurso de variáveis estaticas onde coloco as libs para que ele encontre depois no momento utilizar?

R

Este: $utils.javaName(), $utils.getJavaName() ainda não está na ultima release do sourceforge eu acho. Preciso verificar. A ultima versão que eu tenho também adicionei o suporte a templates com Freemarker, mas ainda não fiz uma release.

Nas variaveis estáticas, está com problemas para utilizar classes externas em jars, ou no seu projeto. No Eclipse 3.1.x o modo de encontrar uma classe no classpath está diferente. Mas antes funcionava somente adicionando um jar no Build Path do seu projeto, e declarando a classe lá nas preferências. Por exemplo $teste -> pacote.ClassTeste…

Vou verificar isto para a próxima release.

F

To baixando o Click aqui!
Me pareceu muito bom!
Só uma dúvida, alguém já precisou usá-lo integrado com ajax ou dwr ?

R

Fabrício Cozer Martins:
To baixando o Click aqui!
Me pareceu muito bom!
Só uma dúvida, alguém já precisou usá-lo integrado com ajax ou dwr ?

Fabrício,

Vc pode usar ajax/dwr, prototype, dojo, em qualquer framework web que utilize servlets/jsp.

Eu fiz alguns componentes ajax com prototype para ficar bem transparente.

F

Legal demais!!
Acabei vendo aqui depois!
Estou cansado hoje, mas amanhã continuo olhando mais o click!!!
Mas pelo que eu vi! Me pareceu muito mais simples e fácil que muitos existentes por aí!
Vamos clickar!!! :smiley:

M

Ricardo,

Posso utilizar o Click sem Hibernate?

O eclipseWork gera (ou só gera) para Hibernate?

Prefiro fazer eu mesmo minhas classes de persistências.

Sds,

M

parece ser muito bom e magico esse click… =)

oq vc pode me dizer dele em relação ao grails, vantagens , desvantagens… etc…

M

Já estou a 3 semanas tentando configurar um ambiente de desenvolvimento Web com o eclipse, hibernate, easySQL, eclipseWork, WTP, Velocity, framework Click, etc, mas não estou conseguindo. Com certeza me falta mais conhecimento.

Gostaria de saber se alguém pode me ajudar, pois já procurei na net mas não consegui configurar.

Outra saida, mais ignorante, é alguém me indicar onde encontro este ambiente pronto, tipo um all-in-one. Já encontrei um mas não atende.

Desde já agradeço.

E

Ricardo, vc poderia nos orientar sobre como fazer uma integração do Click com o EXT JS ?

No caso estive pensando em criar alguns componentes estendidos, por exemplo XButton, XCheckBox, etc… porém estou pensando por onde começar, gostaria de escolher o modelo mais apropriado para essa integração e que não deturpe a estrutura e essência do Click.

Att.
Edson.

M

Caramba!!!
Que negócio INSANO!!!
Nossa senhora, nunca vi nada tão poderoso. Estou chocado :lol:

Cara, se eu conseguisse aprender/mexer com tudo isso ai resolveria o projeto que eu tenho que entregar na faculdade em não mais do que 20 minutos hahaha, meu prazo é 2 meses.

Lendo a documentação no site do Click eu consigo fazer metade do que você fez? :lol: Já tá ótimo.

A lista de ferramentas seria:

Eclipse IDE
Click
eclipsework
easysql
Hibernate
Velocity

É isso?

Puta brutal seu trabalho cara.
Muito obrigado ai
Abraço

P

Galera, qual a opinião de voces sobre a atual versão do Click?

Grato!

M

Como chama esse objeto que ele clica no icone de um calendário e preenche com a data escolhida? Qual a classe?

T

Esse Famework não existe mais???

F

Oi tamires, bem vinda ao forum.

Acredito que ainda esteja sendo bastante utilizado, dá uma olhada neste site: http://click.apache.org/

flws

I

Link do video ta off =(

Criado 14 de agosto de 2006
Ultima resposta 31 de ago. de 2006
Respostas 60
Participantes 28