Postagens

Criando um arquivo para download

Tutorial de como criar um arquivo de texto e fazer o download no navegador com JSF. Vou criar um arquivo do tipo csv. Após ser criado o arquivo será feito o download do mesmo. Aqui preparo o arquivo o caminho (path), informo o tipo de arquivo (mais opções de tipo de arquivo aqui ), crio o arquivo e mando pra download. Observe que o nome do arquivo é arquivo_ + a data de hoje. O tipo de arquivo é texto (text/plain). O método exportaCSV() public  void  exportaCSV ()  throws  DaoException  {    FacesContext ctx = FacesContext.getCurrentInstance () ;   String  file = Utils.pathArquivo ( "arquivo_"  +  new  SimpleDateFormat ( "dd-MM-yyyy" ) .format ( new  Date ())  +  ".csv" ) ;    String mimeType =  "text/plain" ;    createFile () ;    Utils.downloadFile ( mimeType, ctx, file ) ; } O método pathArquivo da clas...

Exibindo mensagens de requisições ajax

Precisei disso em um formulário onde o usuário seleciona uma operadora de celular e em seguida informa uma data em que a requisição foi feita. O problema é que o usuário poderia esquecer de selecionar a operadora. A operadora deveria ser selecionada a partir de um combo <h:selectOneMenu  Nesse caso criei um evento do tipo blur, onde ao perder o foco do campo de data, verificaria se a operadora foi selecionada. Caso o usuário esqueça a mensagem é exibida. O combo da operadora 1   <h:selectOneMenu id= "envioOperadora"  value= "#{consultaBean.terminal.idContrato.idOperadora}"   2        label= "Operadora"  converter= "operadoraConverter"  styleClass= "envioOperadora"  3        immediate= "true"  valueChangeListener= "#{consultaBean.setOperadoraContrato}" > 4        <f:selectItems value= "#{terminalBean.listaOperadoras}"  5   ...

Como executar o valueChangeListener a cada mudança de item

No meu caso, o combo exibe uma lista de operadoras de telefone. Ao selecionar eu precisava que fosse executado o valueChangeListener para marcar qual operadora foi selecionada. Segue a dica. Basta colocar o immediate= "true" e incluir a linha <f:ajax event= "change" />  <h:selectOneMenu id= "envioOperadora"  value= "#{consultaBean.terminal.idContrato.idOperadora}"        label= "Operadora"  converter= "operadoraConverter"  styleClass= "envioOperadora"       immediate= "true"  valueChangeListener= "#{consultaBean.setOperadoraContrato}" >      <f:selectItems value= "#{terminalBean.listaOperadoras}"         var= "op"  itemLabel= "#{op.descricao}"  itemValue= "#{op}"  />      <f:ajax event= "change" />  </h:selectOneMenu> No bean eu ma...

Como controlar horário de acesso à internet no linux

Um jeitinho de parar o serviço de internet sem ter que instalar programas de terceiros. Primeiro crie um script. Aqui eu chamei de timeControl: vi /diretorio/timeControl #!/bin/bash HOUR=$(date '+%k') MIN=$(date '+%M') if [ $HOUR -gt 22 ]; then if [ $MIN -gt 33 ]; then ifconfig eth0 down fi fi Salve e feche o arquivo. Observe que eu deixei a hora limite para 22:33 Faça o arquivo ser executável: chmod +x /diretorio/timeControl Acesse o crontab como root e acrescente a seguinte linha: 0-59/5 22 * * * /diretorio/timeControl Salve e feche o arquivo. Aqui diz que após as 22 horas, de 5 em 5 minutos o sistema vai executar o script timeControl todos os dias! Uma beleza! Funciona direitinho! []'s.

Luta dos profissionais de TI por melhores condições em Brasília

Imagem
Finalmente parece que o pessoal de TI do DF resolveu se movimentar. Ontem teve uma assembléia com os profissionais, sem a presença do sindicato (apesar que tinha olheiros deles lá) e foi definido que para a negociação desse ano o SINDPD-DF não nos representa mais! Foi montado a COMISSÃO DE NEGOCIAÇÃO, que será a responsável por negociar direto com o SINDSEI, sem a presença do SINDPD. Tinha cerca de 250/300 pessoas no local. Foi colhido assinatura de todos pra apresentar hoje na Delegacia do trabalho e Ministério Público. Foi decidido manter os 7% de reajuste de salário, o cancelamento do repasse de 1% da folha de pagamento pra EFTI e o repasse desses 1% no ticket alimentação. Acredito que este é um dos passos mais importantes nas conquistas de melhorias profissionais para a categoria. Abaixo segue algumas fotos da assembléia de ontem.

Como colocar um radio box em um data table.

Imagem
Esse recurso é do Myfaces Tomahawk. É necessário tê-lo instalado na aplicação. No bean: public  void  processRowSelection ( ValueChangeEvent event ) {       selectedRowIndex =  ( Long )  event.getNewValue () ;          for  ( Cidade c : listaCidade ) {       if  ( selectedRowIndex == c.getIdCidade ()) {       // aqui vc faz o que quiser (exclui, altera, edita etc.)       break ;     } no jsp: <t:dataTable var= "city"  id= "listaCidades"    headerClass= "titleDataTable"  rowClasses= "rowDataTable, rowDataTable2"    value= "#{selectCity.cidade}"  preserveDataModel= "false" ...

Popup em JSF sem Javascript

Tutorial de como fazer um popup sem escrever código javascript na página. Vou explicar 2 meios de criar popup. Um atualizando o javascript dinamicamente e outro com myfaces. Nesse tutorial, a lógica é criar um arquivo de script dinâmico, que vou chamar de dynamicScript.js. Vou incluir o método do popup nele dinamicamente e chamar o popup. Primeiro, através de um jsp vou chamar um action no bean que é quem vai criar o método javascript pra incluir na página. Eu poderia ter incluído o método direto na hora de abrir a página, mas preferi assim. 1   <h:commandButton value= "testaPopup"  action= "#{terminalBean.geraPopup}"  /> Agora o método geraPopup. Observe que na minha estrutura, o arquivo dynamicScript.js está dentro da pasta pages/script. As duas barras invertidas se dão por conta do meu ambiente de desenvolvimento, windows. 01   public  String geraPopup () { 02        03       ...