Towel release 1.2

Só pra constar, o artigo de como usar o CalendarView éstá pronto.

@priuli
Vou usar LGPL então.

Fala Marky!
Eu já tinha postado algo aqui: http://www.guj.com.br/posts/quote/15/1198744.java

O ideal é podermos ter algo a menos para se preocupar.
Imagine uma JTable assim:
Nome tempo1 tempo2 média
Cesar Cielo 20,91 20,89 20,90
Frederick Bousquet 20,94 21,30 21,12
Nathan Adrian 21,55 21,49 21,52

Imagine que ao vc preencher o campo 2, vc quer automaticamente gerar a média FORMATADA do outro lado, seja um double ou um BigDecimal.O problema é:Vc tem que pegar o valor, formatar para a célula, pegar do conteúdo digitado, fazer os cálculos/processamento, pegar o resultado e formatar de novo para a exibição na célula posterior.
Se o programador pudesse passar o tipo de formatação que ele quer a um CellFormatter para exibição e não se preocupar mais com isso a não ser recuperar e trabalhar com esses valores para um dado processamento, seria um trabalho a menos muito interessante.Talvez o Vini possa ter alguma idéia bacana sobre isso.
Já o DataGrid, poderia vir como uma especialização/aprimoramento do SelectTable, permitindo uma paginação/navegação eventual por componentes do BD, pesquisa por datas…

Há, algo que eu tinha esquecido, permitir um setFont no SelectTable, pq em alguns looks and feel(eu uso o Liquid), as letras ficam sem destaques.Se eu puder ao menos deixá-las bold, isso já ajuda para os usuários “cegos”.

No mais, muito bom o projeto.Vou testar algumas das novas features. :thumbup:

@Ironlynx

Ah é, agora lembrei disso do CellRenderer.

Vou pensar em uma solução legal pra isso.

Valeu pela dica.

Talvez eu faça isso para o proximo release, junto com um super refactoring que farei no JTableView com as AggregateFunction para ficarem mais redimensionaveis.

Não consegui achar onde vc postou a API, por isso posto aqui:
Uma das coisas chatas com o JCalendar, é não possuir um método clear ou reset para restaurar o estado inicial quando necessário(sem ter que reinstanciar o objeto).Se não tiver, seria interessante de por um. :slight_smile:

Anotado :wink:

E como assim não achou a API?

fala grande Marky !!

Uma duvida bem rapida, eu uso sua lib já faz um tempinho , desde quando tinha outro nome :smiley: !

Agora encontrei um problema com jcombobox , eu tenho uma tela que as vezes eu tenho que atualizar o compo, mas quando eu faço isso o combo é não mostras os item dentro do combo.
Bom uma solução que achei para isso foi tentar um removel all items, mas isso leva a outro problema, uma exception

java.lang.RuntimeException: Cannot use this method with a non-Mutable data model.

aqui um trecho do codigo que uso para atualizar :

role.exec(); //executa query no banco        
combo.setData(role.getRoles());  // retorna o o result para dentro do ObjectComboBoxModel      
jComboBox1.setModel(combo);       
repaint();

alguma dica !!!?

valeu
abraços !

nada como tomar uma água !!!
acabei de ver que não precisa setar o model novamente !!
apenas carregar o model novamente !!

ou seja o fica é somente isso :

 role.exec();        
 combo.setData(role.getRoles());       
 //jComboBox1.setModel(combo);       
 repaint();

valeu !!!

ps : isso apenas comprova como é util o towel !!! :smiley:

Daniel

[quote=dbadaniel]nada como tomar uma água !!!
acabei de ver que não precisa setar o model novamente !!
apenas carregar o model novamente !!

[/quote]

Essa é a idéia mesmo, se precisar mudar todos os dados é só usar o setData.

Sempre tentando ser mais util e mais pratico :wink:

Devia ter sido mais claro.Não achei os docs, a documentação da API.

Devia ter sido mais claro.Não achei os docs, a documentação da API.
[/quote]

Verdade, preciso de um dominio e logo disponibilizarei os docs.

Olha o Combo novamente !!!

Marky esse é outro codigo, mas deveria funcionar igual … não achei está errado:

cod carregando o combo ( ok )

consultainss = Lookup.getDefault().lookup(ConsINSS.class);
        comboconsulta = new ObjectComboBoxModel<ConsultasINSS>();
        comboconsulta.setFormatter(new ComboINSS()); // isso é apenas para forma o display do combo.
        consultainss.exec();
        comboconsulta.setData(consultainss.getList());
        jComboBox6.setModel(comboconsulta);

add um novo registro

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       NovaConsulta dialog = new NovaConsulta(); 
        
       DialogDescriptor d = new DialogDescriptor(dialog, "Novo Login", true, DialogDescriptor.OK_CANCEL_OPTION,
       DialogDescriptor.OK_OPTION, null);          
        d.setValid(false);
        dialog.setDialogDescriptor(d);
        DialogDisplayer.getDefault().notify(d);         
       
        if(!dialog.getDesc().isEmpty()){
            ConsultasINSS novo = new ConsultasINSS();
            novo.setDescricao(dialog.getDesc());
            int idx = comboconsulta.getSize()-1;
            novo.setConsulta(consultainss.getList().get(idx).getConsulta()+1);
            novo.setData(DateUtil.sysdate());
            consultainss.save(novo);
            consultainss.commit();
            consultainss.exec();
            comboconsulta.setData(consultainss.getList());
            comboconsulta.setSelectedObject(novo);            
            repaint();
        }    
    }   

mas quando eu faço esse add , o combo fica em branco.

o que será que pode estar errado ?!

Voce já debugou esse código e viu se getList retorna uma List populada?

Só para constar, voce nao precisa usar o setData uma vez que o combo esteja preenchido.

Use o add com o novo objeto que precisa ser adicionado.

Sim eu fiz um debug da aplicação, o list do hibernate vem ok e quando eu dou o setData o array do objeto ObjectComboBoxModel também fica ok.

Agora uma coisa estranha que aconteceu , foi que ao dar o add, o combo também fica em branco.

Hmm… vou criar um exemplo pequeno para ver se consigo reproduzir esse erro.

marky, o mais estranho é que eu tenho outra tela que usa isso também e não está acontecendo isso.

Hoje eu fiz um upgrade para versão 1.2, mas sem sucesso.

até tirei o formatter para ver se tinha alguma diferença, porém acontece do mesmo jeito…

bom se precisar de alguma informação a mais , estou a disposição !

abcs

Marky, Bom dia !!

Olha depois e revisar tudo e ter certeza que não tinha nada muito diferente de uma tela que funciona para essa sem funcionar eu apaguei dei um clear geral do projeto, apaguei alguns jars na mão e mandei gerar tudo novamente.

Eis que tudo funciona agora !!

Mesmo assim muito grato pelo atenção e disponibilidade !

abraços
Daniel

Nossa, ainda bem que agora funciona.

Pode contar comigo se tiver duvidas :wink:

Salve galera do projeto Towel estou usando a lib que por sinal é uma mão na roda, parabéns.
Estou com um detalhe que não consegui resolver, quando utilizo o tablefilter em um jtable nos frames que usam windows lookandfeel as bordas do tableheader somem, alguem já viu isso? nada que impeça a utilização somente questão de estética mesmo.

Também tive uns probleminhas com uso de L&F no Towell(uso o liquid), no meu caso, ao usar a selecttable, meus labels ficam sem negrito, e eu não consigo deixá-los em negrito.Mas não dei muita bola pq não prejudica o uso geral do sistema.

[quote=callgas]Salve galera do projeto Towel estou usando a lib que por sinal é uma mão na roda, parabéns.
Estou com um detalhe que não consegui resolver, quando utilizo o tablefilter em um jtable nos frames que usam windows lookandfeel as bordas do tableheader somem, alguem já viu isso? nada que impeça a utilização somente questão de estética mesmo.[/quote]
Também aconteceu comigo. Aqui uso o Substance e pra poder usar tive que comentar as linhas 186 e 187 do TableHeaderPopup se não me engano para usar com o Substance porque ocorria um erro e nem chegava a exibir a view que continha a JTable.