Prezados,
fiz uma modificação no módulo de painel do SGA, para adequá-lo às necessidades da instituição onde trabalho. Como esta modificação pode ser útil para outros e dentro do espírito do software livre, a compartilho.
Trata-se da inclusão, na parte de baixo do painel, de um histórico das últimas chamadas (aparecem cerca de três).
Tendo em vista o prazo que tinha (1 dia), que me dava pouco tempo para testes, procurei intervir o mínimo possível no código fonte original. A mudança, portanto, é básica e pode ser bastante melhorada. O que foi feito:
- alteração na forma de determinar o fator multiplicador, tomando a altura da tela como referência, em vez da largura;
- adição de um novo label para guardar o histórico de chamadas;
- mudança nas relações de tamanho, "espremendo" os elementos do painel, de forma a liberar espaço para o label de histórico.
Esclareço que a fiz a mudança para atender a necessidades específicas da instituição a qual pertenço e, seguindo os termos da Licença Pública Geral GNU, a fiz na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes. Ela acompanha o código fonte do SGA.
Para aplicar a mudança, deve-se:
- fazer uma cópia do código fonte a ser alterado - o do módulo painel do SGA Livre;
- aplicar as mudanças indicadas pela saída do comando diff, transcrita abaixo;
- compilar o código alterado, gerando a versão modificada do arquivo executável painel.jar.
Abaixo, a saída do comando diff aplicado ao arquivo Web.java, do módulo painel. Minha versão é identificada por local/sgalivre-painel-colab enquanto a versão oficial é identificada por oficial/trunk/painel :
$ diff local/sgalivre-painel-colab/src/br/gov/dataprev/userinterface/Web.java oficial/trunk/painel/src/br/gov/dataprev/userinterface/Web.java
79d78
< private JLabel lHistorico = new JLabel();
193c192
< this.setMultiplicador(height);
---
> this.setMultiplicador(width);
255c254
< this.lServ.setBounds(15, 10, width, 120);
---
> this.lServ.setBounds(15, 10, width, 130);
269c268
< degradeBack.setBounds(0, (int) ((double) 130 * this.multiplicador), width, (int) ((double) 250 * this.multiplicador));
---
> degradeBack.setBounds(0, (int) ((double) 140 * this.multiplicador), width, (int) ((double) 260 * this.multiplicador));
275c274
< linha1.setBounds(0, (int) ((double) 127 * this.multiplicador), width, 4);
---
> linha1.setBounds(0, (int) ((double) 137 * this.multiplicador), width, 4);
279c278
< linha2.setBounds(0, (int) ((double) 380 * this.multiplicador), width, 4);
---
> linha2.setBounds(0, (int) ((double) 400 * this.multiplicador), width, 4);
283c282
< this.lMesa.setBounds(2, (int) ((double) 400 * this.multiplicador), (int) ((double) 800 * this.multiplicador), (int) ((double) 150 * this.multiplicador));
---
> this.lMesa.setBounds(2, (int) ((double) 458 * this.multiplicador), (int) ((double) 1024 * this.multiplicador), (int) ((double) 180 * this.multiplicador));
289c288
< tamNum = 100 * this.multiplicador;
---
> tamNum = 150 * this.multiplicador;
302c301
< tamLetra = (int) (54 * this.multiplicador);
---
> tamLetra = (int) (74 * this.multiplicador);
304c303
< this.lNumMesa.setBounds(this.vl, (int) ((double) 400 * this.multiplicador), (int) ((double) 800 * this.multiplicador), (int) ((double) 150 * this.multiplicador));
---
> this.lNumMesa.setBounds(this.vl, (int) ((double) 438 * this.multiplicador), (int) ((double) 1024 * this.multiplicador), (int) ((double) 180 * this.multiplicador));
306,312d304
<
< // Histórico de chamados.
< lHistorico = new JLabel("??");
< lHistorico.setBounds(2, (int)(520 * multiplicador), (int)(800 * multiplicador), (int)(120 * multiplicador));
< lHistorico.setFont(new Font(Web.FONT_NAME, Font.BOLD, (int)(50 * multiplicador)));
< this.painel.add(lHistorico);
<
428,442d419
< // Guardar senha anterior no histórico.
< String history = lHistorico.getText();
< if (_numeroGuiche.equals("000")) { // nenhuma senha chamada ainda.
< lHistorico.setText("..");
< } else if (history.equals("..")) { // primeira senha chamada.
< lHistorico.setText("");
< } else { // senhas subsequentes chamadas.
< history = lSenha.getText() + "(" + lNumMesa.getText() + ")_" + lHistorico.getText();
< if (history.length() > 23) history = history.substring(0, history.substring(0, 23).lastIndexOf(')') + 1) + "-";
< lHistorico.setText(history);
< }
<
< LOG.fine("Exibindo senha: " + _msgEspecial + " " + _senha + " - " + _guiche + " " + _numeroGuiche);
< LOG.fine("Histórico: " + lHistorico.getText());
<
561d537
< lHistorico.setForeground(confLayout.getCorSenha());
594c570
< private void setMultiplicador(double medida)
---
> private void setMultiplicador(double width)
596c572
< this.multiplicador = medida / 600.0;
---
> this.multiplicador = width / 800.0;
Espero que seja útil.
Autor: Jonas de Araújo Luz Jr.

7373 comentários
Mas, infelizmente, não posso ajudá-lo - ainda não trabalhei com vídeos em Java. Abraço.
java.sun.com/javase/downloads/index.jsp No meu caso, configurei os módulos do projeto em uma IDE - o Eclipse (http://eclipse.org), mas você pode recompilar o código só com o JDK. Estando em src, faça: # javac br\gov\dataprev\exec\Painel.java Sobre o diff, ele compara dois arquivos texto linha a linha, mas, pra facilitar, enviei-lhe o arquivo Web.java modificado por email. Boa sorte.
cybermanaus@hotmail.com
arinaldo@detran.to.gov.br
deveria ficar com a cor da senha (amarelo), mas fica com a cor preto. Altero na configuração do layout e volta a ficar amarelo, gravo e tudo ok. Mas quando desligo o painel e volto a ligar volta tudo ás configurações originais. Que poderá ser?AttIgor
Randerson Carvalho
Esse histórico de chamadas será muito útil aqui na Prefeitura de Mauá....parabéns Thyago e Jonas!!!
diegoslv2907@gmail.com
Gostaria que alguem pudesse me enviar codigo ou o arquivo Web.java já modificado para meu email
manuel.ferreira.ba@gmail.com
obrigado