Novo Projeto! Sugestões

Thinlet é da hora… mas precisa ver com uns cara que manja mais para ver se vale a pena, pois ele é mais produtivo, no entanto não é tão robusto quanto swing!

Para lidar com clientes exigentes, eu usaria swing, até por que provavelmente surgirão novos requisitos, e eles poder pedir pra vc colorir tabelinhas, arrastar alguma coisa… Para prevenir estes problemas, opte por swing! Swing assim como o Thinlet são ótimas soluções. Esse passo que swing tem performance ruim é balela. Não é uma performance igual c++, vb e etc… mas não é o swing quem deixa o sistema lento, e sim se vc esolher uma péssima arquitetura pro seu sistema e se seu banco for aquela gambiarra!

Swing no projeto… eu faria isso!

Thiago: você usou a frase certa “usuários exigentes” e o pior é que nossos clientes são super mal-acostumados com a arquitetura delphi aí já viu neh… vão querer ver pisca-pisca na tela inteira… É difícil mudar a cultura das pessoas e o pior “dos meus gerentes”… Estou tendendo mais pro swing mesmo. Podemos discutir o modelo de implementação que você propôs?

Daniel: É incrível a agilidade que se tem ao desenvolver usando thinlet porém como disse acima imagina se o diacho do meu gerente ou cliente inventa de por luzes neon na barra de rolagem? hehe
Estive vendo a parte do componente Table e ele usa ama filosofia bem parecida com uma table html neh… mas como faria por exemplo pra mandar o meu modelo preencher essa tabela se ela é declarativa?

Você não rpecisa de dois controllers, precisa é de várias itnerfaces para sua camada de negócios.

Aí é que tá! o Thinlet peca neste quesito. Pq Thinlet não é nada OO. Ele nmão tem esquemas de model.

O certo seria você criar um esquema seu (eu fiz um ThinletUtils em http://java.danieldestro.com.br/codes/FutManager.zip) ou então usar algo pronto, como o Genesis (genesis.dev.java.net).

Daniel, não consegui baixar seu exemplo :frowning:
tá dando que o arquivo não existe…

Arrumei o link.

Num dá dando não… continua não encontrando o arquivo! faz o seguinte: manda no meu e-mail: r.valdomiro@terra.com.br

Thank´s

Acredite, o caminho está correto!

Consegui!
Valew Daniel…

Uma dúvida:
Dá para criar interfaces thinlet via API como o Swing ?

Até onde estudei não :!:
Elas são criadas à partir de estruturas xml, você usará swing apenas para fazer o parse deles :!:

Dá sim:

Object o = Thinlet.create("textfield"); add( o );

Dá uma lida nos artigos publicados na Java Magazine (21 e 22).

Olá!

Eu andei brincando com thinlet nestes últimos dias. Peguei os exemplos do Daniel Destro mais o artigo que ele escreveu para a revista java magazine e mandei ver.

Deu até pra fazer bastante coisa… o material que usei de referência ajudou muito mesmo, mas infelizmente não curti muito o thinlet.

Não gostei porque eu tinha que ficar decorando o nome dos componentes que eu colocava no arquivo xml para colocar então no código fonte. Daí fui obrigado a parar e começar a usar Swing mesmo.

Não tiro o mérito do thinlet, muito menos da galera que desenvolve soluções com ele, mas particularmente, achei meio embaçado trabalho desta maneira. Fazer as telas é rapidinho, mas fazer com que uma tela chame outra, ou seja, fazer com que elas se interajam para mim deu uma dor de cabeça e tanto!

Por isso, por enquanto eu sou mais swing, mesmo que tenha que atender requisitos simples que poderiam ser atendidos usando Thinlet!

Como mexi pouco, preciso dar uma olhada nesse ThinletUtils que o Daniel criou, e até mesmo no Genesis, para ver como a galera tá fazendo para usar o Thinlet. Talvez com estas soluções a coisa se torne mais simples

Seria legal se se criassem uma ferramenta para montar a tela igual ao ThinG mais ou menos, onde vc faria toda a tela lá, e depois essa ferramenta gerasse para você o código java, com todas as iterações entres os panels, botões e etc… deixando livro para o programador a implementação dos eventos… Quando criarem isso ai o bicho pega!!!

Abraços!
Thiago

Eu sei que já tem gente fazendo plugin do Thinlet para o NetBeans.

E sobre decorar o nome dos componentes do XML, eu não entendí direito. Se for os nomes das tags, é o mesmo que saber HTML. E sobre os nomes de cada componente na tela, para mim, é o mesmo que saber o nome dos objetos declarados no código. Não é?

[quote=danieldestro]Eu sei que já tem gente fazendo plugin do Thinlet para o NetBeans.

E sobre decorar o nome dos componentes do XML, eu não entendí direito. Se for os nomes das tags, é o mesmo que saber HTML. E sobre os nomes de cada componente na tela, para mim, é o mesmo que saber o nome dos objetos declarados no código. Não é?[/quote]

Olá Daniel!

Por exemplo… se no swing vc cria um JButton button = new JButton(); com a ajuda co eclipse ou um outro IDE de sua preferência, é só vc dar um ctrl + space e aparece uma listinha para vc visualizar rapidinho…

Mas no caso do thinlet, eu concordo que é como vc declarar nome de variáveis, mas o chato é que dá muito trabalho fazer isso aqui

Object o = meuForm.find("minhaTab");

no exemplo acima, “minhaTab” é uma string com o mesmo nome do componente no arquivo xml , que seria um componente tabbedPane, onde o atributo name possui o nome “minhaTab”…

Enquanto eu brincava, eu tinha que toda hora ficar alternando entre o código java, e o código xml.

Um problema deste tipo de abordagem, na minha opinião, seria o fato de que quando usamos thinlet, quando utilizarmos o nome de um componente errado, teremos uma exceção durante o runtime da aplicação, enquanto no caso do swing a exceção (ou erro) já será acusado na compilação.

Esse é o principal fator pelo qual mesmo para aplicações simples eu prefira Swing, apesar de thinlet ser mais interessante!!

Abraços!
Thiago

Bem Thiago, recomendo que você use o genesis então. Você (provavelmente) não vai precisar criar nenhum componente na mão nem tampouco programar da forma como você explicou.

A idéia básica do genesis para UI é que você desenvolva a maior parte do seu código em classes não ligadas ao framework gráfico e sim em POJOs.

E imagina se o diacho do seu gerente inventar de usar o google. :wink:

Srs,

Pergunta técnica, não sei se ajuda…

E o JFace? Não é usado mais? Só funciona com o SWT?

JFace eh uma lib de utilitarios e componentes mais bacaninhas em cima da SWT. Se usa bastante, claro, em aplicacoes SWT :slight_smile: