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