Ir para o conteúdo

 Voltar a SGA LIVRE De...
Tela cheia

Colaboração: Histórico de chamadas no painel.

8 de Dezembro de 2009, 12:17 , por Desconhecido - | 5 Pessoas seguindo este artigo.
Visualizado 314 vezes

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:

  1. fazer uma cópia do código fonte a ser alterado - o do módulo painel do SGA Livre;
  2. aplicar as mudanças indicadas pela saída do comando diff, transcrita abaixo;
  3. 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

  • 0e1da84ac097133807a14f0fe07bea92?only path=false&size=50&d=404William Avelino(usuário não autenticado)
    3 de Fevereiro de 2012, 12:18

     

    Olá prof. Jonas, 

    estou tentando modificar a parte de mostrar a senha no painel, no php já esta ok, o banco também já aceita 2 digitos, porém no painel só mostra uma sigla, exemplo:

    Sigla: AM - Ambulatório

    Senha: AM001

    no painel mostra A0001

    Aguardo retorno. 

     

     

    • Cf0a8641979344dbca557475d7584d34?only path=false&size=50&d=404Fernando Freitas Costa(usuário não autenticado)
      8 de Março de 2012, 16:55

       

      Olá William...

      Aqui onde trabalho precisei fazer esta mesma alteração que você e depois de muito trabalho consegui fazer funcionar. Bom, como vc disse que no php já está ok, pressuponho que só falta você modificar seu controlador e seu painel. Bem, vamos lá...

      Modificando o controlador de paineis:

      Abra o arquivo ProcessadorSenhas.java que se encontra no pacote br.gov.dataprev.controladorpainel:

      Procure pela variável sig_serv e altere seu tipo de char para String.
      Altere a linha: sig_serv = rset.getString("sig_senha").charAt(0); para: sig_serv = rset.getString("sig_senha");
      Salve as mudanças

      Agora abra neste mesmo pacote o arquivo GerenciadorPaineis.java e vá até o método despacharSenha(int idUnidade...)

      Modifique o tipo do parâmetro sig-serv de char para String.
      Salve as mudanças.

      Agora no pacote br.gov.dataprev.controladorpainel.enviados abra o arquivo SenhaMsg.java:

      Altere o tipo da constante _codServ de char para String.
      Altere o tipo do parametro codServ de char para String.
      No método writeDataTo(ByteBuffer buf), substitua a linha buf.put((byte) _codServ); por:  ServerMsg.writeString(buf, _codServ);
      Salve as alterações.

      Exporte o novo arquivo controladorpaineis.jar e substitua o original. (Por questão de segurança, faça um backup do antigo, caso seja necessário voltá-lo.).

      Reinicie seu controlador de paineis.

      Agora o controlador de paineis ja está enviando sua sigla com mais de um caracter para o painel, porém seu painel ainda não é capaz de fazer esta leitura, por isso, vamos modificar o painel:

      Modificando o painel.

      Abra o arquivo UDPListener que se encontra no pacote br.gov.dataprev.userinterface:

      Vá até o método leMessageSenha(...) e modifique a linha: char charServico = (char) UDPListener.leByte(buf); para String strServico = UDPListener.leString(buf);
      Salve as mudanças.

      No mesmo pacote, abra o arquivo Web.java

      Vá até o construtor SenhaPainel(...) e modifique o tipo do parâmetro charServico de char para String.
      Salve as mudanças.

      Exporte o novo arquivo painel.jar e substitua o original. (Por questão de segurança, faça um backup do antigo, caso seja necessário voltá-lo.).

      Reinicie o painel.

       

      Pronto, o SGA Livre já é capaz de exibir dois ou mais caracteres no painel de senhas...

      Espero que seja útil.

  • 01896f4d0beee9fd09708d298ff8a3a6?only path=false&size=50&d=404Fábio Hordi(usuário não autenticado)
    28 de Março de 2012, 15:51

     

    Boa tarde.. Será que poderiam me enviar os fontes e também o código já compilado (painel.jar) para eu testar aqui? Estou colocando o sistema para funcionar no Ganha Tempo em Cuiabá e preciso dessas alterações..

     

    Se possível, tanto a das 3 últimas senhas chamadas(principal), assim como para ter duas letras no início da senha..

     

    Meu email é radeschi@gmail.com

    Se alguém quiser, depois posso disponibilizar um link para ficar mais fácil o download. 

     

    Maicon Radeschi 

  • 2316060d8b5d98a864c6880538bc3648?only path=false&size=50&d=404Cristiano Alves(usuário não autenticado)
    7 de Maio de 2012, 9:31

     

    Se possível poderia me enviar o painel modificado?

    cristianoalves@hotmail.com

    Obrigado e parabéns pela modificação. 

  • F96ff7c757e330e2082e5ed8f7c2e969?only path=false&size=50&d=404Carlos César Oliveira(usuário não autenticado)
    25 de Setembro de 2012, 16:36

     

    Gostaria que alguém me enviasse o arquivo painel.jar modificado com o histórico. Aproveitando, queria tirar uma dúvida, estou querendo utilizar uma maquina para 4 painéis, pois ele tem placa de vídeo que suporta 4 monitores. Porém só consigo abrir um arquivo painel.jar, posso faço para alterar isso, gostaria de abrir 4 painel.jar e distribuir nesses monitores. Desde já agradeço

    carloscoaf@gmail.com

  • 2dd0537f55bb1b377afac614b1bb88ad?only path=false&size=50&d=404Cristiano Mota(usuário não autenticado)
    11 de Outubro de 2012, 15:05

     

    Se alguém já fez esta alteração, gostaria me enviasse o arquivo painel.jar modificado com o histórico. Desde já agradeço pela contribuição!

  • 227d9d668a3c1fdc927d6beadb598877?only path=false&size=50&d=404Adriano Lacerda(usuário não autenticado)
    18 de Outubro de 2012, 15:26

     

    Alguem pode me enviar o painel.jar e  os fontes ? como vc importou no eclipse ? 

    tentei importar aqui e deu problema.

    adrianolacerda@hotmail.com

  • 7c1aa782c1031c6c155143a74a7eed22?only path=false&size=50&d=404Pedro Junior(usuário não autenticado)
    28 de Novembro de 2012, 0:53

     

    Jonas, parabéns cara com certeza essa sua colaboração será bastante usada!

     
    Pedro R. Junior
    Analista de Sistemas/Defensoria Pública de Sergipe 

  • 5fe3c004f3873ef979ad7f4fb4531470?only path=false&size=50&d=404Marcelo Simon(usuário não autenticado)
    2 de Julho de 2013, 12:04

     

    Parabéns jonas, também preciso do histórico de chamadas para adaptar para a empresa. Queria saber se tem como você me enviar o arquivo modificado pois, estou com dificuldades em adequar essa funcionalidade. Abraço!

    e-mail: marcelotecho@yahoo.com.br 

  • 538fd334775ffafe5d1a184e07f85a00?only path=false&size=50&d=404Karlos Ney Mamoru de Figueiredo(usuário não autenticado)
    3 de Fevereiro de 2014, 10:36

     

    Bom dia.

    Alguem poderia me enviar o painel com o historico de senhas?

     e-mail: karlosfigueiredo@detran.mt.gov.br

    Obrigado,

    Karlos.

  • 750a3244d21b35a55178427f439aea24?only path=false&size=50&d=404José Junior(usuário não autenticado)
    4 de Setembro de 2014, 18:56

     

    Parabéns Jonas poderia me enviar .jar compilado e aonde baixo o código modificado? Pode me enviar por email branux@gmail.com. Obrigado

    • 1e417dfbea691bc51c490af35dfcd00a?only path=false&size=50&d=404Adilson Oliveira Cruz(usuário não autenticado)
      5 de Novembro de 2014, 10:00

       

       Pessoal,

       O Jackson Yanno criou uma versão do painel com histórico de senhas com base na contribuição do Jonas de Araújo Luz Jr. Parabéns pros dois pela contribuição!

       Adicionei o executável na seção de downloads da comunidade e incluí o código como uma Branch no SVN.

       Abraço,

       Adilson

Encontro da comunidade SGA Livre no FISL11

13 de Julho de 2010, 15:41, por Desconhecido

Prezados,



Em uma semana, SGA Livre ultrapassa mil usuários

10 de Novembro de 2009, 19:19, por Desconhecido

Em apenas uma semana de funcionamento, a comunidade do Sistema de Gerenciamento do Atendimento (SGA Livre) do Portal Software Público atingiu a marca de mil usuários. O lançamento e a disponibilização do software livre foi feito no último dia 22, durante a 6ª Conferência Latino-Americana de Software Livre (Latinoware 2009), que ocorreu em Foz do Iguaçu (PR).



Nova versão da aplicação Web 1.0.2

4 de Novembro de 2009, 17:05, por Desconhecido

Disponível nova versão da aplicação web (1.0.2). Corrige uma falha na impressão da senha, no módulo de Triagem.



Nova versão da aplicação Web 1.0.1

29 de Outubro de 2009, 12:56, por Desconhecido

Disponível nova versão da aplicação Web do SGA LIVRE, que corrige: