View Javadoc

1   /**
2    * Copyright 2008 WebPhotos
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  /*
17   * AcaoPopMenu.java
18   *
19   * Created on 29 de Maio de 2006, 15:48
20   *
21   * To change this template, choose Tools | Template Manager
22   * and open the template in the editor.
23   */
24  
25  package net.sf.webphotos.gui;
26  
27  import java.awt.event.ActionEvent;
28  import javax.swing.AbstractAction;
29  import net.sf.webphotos.gui.util.TableModelAlbum;
30  
31  /**
32   * Gera o menu de visualização dos dados do albúm.
33   * Faz uma busca no banco de dados, e ao inicializar o construtor atualiza o valor da variável sql, usada na busca ao banco.
34   * Com seu método de ação, implementa a atualização do modelo da tabela e apresenta os registros encontrados.
35   * @author guilherme
36   */
37  public class AcaoPopMenu extends AbstractAction {
38      String sql="select albumID as ID, categorias.nmcategoria as Categoria, nmalbum as Pauta, DATE_FORMAT(DtInsercao, '%d/%m/%y') as Data from albuns left join categorias using(categoriaID) ";
39  
40      /**
41       * Construtor da classe.
42       * Recebe uma String como parâmetro e testa se ela inicia com "SELECT", caso positivo, substitui a variável sql da classe pela recebida no construtor.
43       * Caso contrário, concatena o valor recebido à variável da classe.
44       * @param posSQL Query do sql ou continuação de uma query.
45       */
46      public AcaoPopMenu(String posSQL) {
47          if(posSQL.startsWith("select")) {
48              sql=posSQL;
49          } else {
50              sql+=posSQL;
51          }
52      }
53  
54      /**
55       * Esse método tem como objetivo construir o menu de visualização dos dados dos albúns.
56       * Armazena uma tabela com os albúns em uma variável chamada <I>tabela</I>, atualiza o modelo da tabela baseado na busca ao banco de dados.
57       * Por último apresenta o número de registros encontrados.
58       * Apresenta utilização apenas na classe AcaoPopMenuTest localizada nos pacotes de teste.
59       * @param e Evento da ação de construção do menu.
60       */
61      @Override
62      public void actionPerformed(ActionEvent e) {
63          PainelWebFotos.setCursorWait(true);
64  
65          TableModelAlbum.getModel().update(sql);
66          TableModelAlbum.getModel().fireTableStructureChanged();
67          TableModelAlbum.getModel().fireTableDataChanged();
68  
69          PainelWebFotos.apresentaNumReg();
70          PainelWebFotos.setCursorWait(false);
71      }
72  	
73  }
74  
75