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