1 /*
2 * Created on 17/12/2004
3 *
4 * Classe que implementa a interface PopUpPesquisa que é utilizada pelo template jsp
5 * popup_pesquisa.jsp
6 *
7 * O template instancia essa classe utilizando os métodos definidos na interface.
8 * Assim o template pode ser usado para pesquisar e navegar em várias classes sem
9 * precisar escrever um jsp específico para cada um.
10 * Basta criar uma classe que implementa a interface PopUpPesquisa e passá-la como
11 * parâmatro no momento de chamar a tela de pesquisa
12 *
13 * A tela de pesquisa sempre retorna um código e uma descrição do que foi selecionado.
14 *
15 */
16 package ecar.popup;
17
18 import java.util.List;
19
20 import javax.servlet.http.HttpServletRequest;
21
22 import comum.database.Dao;
23 import comum.util.Pagina;
24
25 import ecar.dao.EntidadeDao;
26 import ecar.exception.ECARException;
27 import ecar.pojo.EntidadeEnt;
28
29 /**
30 * @author evandro
31 *
32 */
33 public class PopUpEntidade implements PopUpPesquisa {
34
35
36 private String[] pesquisarEm;
37
38
39 // declare o seu pojo e o Dao aqui
40 private EntidadeEnt entidade;
41 private EntidadeDao entidadeDao;
42
43 /**
44 * @author N/C
45 * @since N/C
46 * @version N/C
47 */
48 public PopUpEntidade(){
49 entidade = new EntidadeEnt();
50 entidadeDao = new EntidadeDao(null);
51 this.setPesquisarEm(new String[] {"Nome"});
52 }
53
54 /**
55 * Devolve para o template jsp o Dao.<br>
56 *
57 * @author N/C
58 * @since N/C
59 * @version N/C
60 * @return Dao
61 * @see ecar.popup.PopUpPesquisa#getDao()
62 */
63 public Dao getDao() {
64 return entidadeDao;
65 }
66
67 /**
68 * Recebe o argumento de pesquisa do template jsp e seta nos respectivos campos.<br>
69 * String arg - a string do argumento d pesquisa.<br>
70 * String[] pesquisarEm - um array de string com os nomes dos campos que devem ser pesquisados.<br>
71 *
72 * @author N/C
73 * @since N/C
74 * @version N/C
75 * @param HttpServletRequest request
76 * @throws ECARException
77 */
78 public void setArgPesquisa(HttpServletRequest request) throws ECARException{
79 String arg = Pagina.getParam(request, "hidArg");
80 String[] pesquisarEm = request.getParameterValues("hidPesquisarEm");
81
82 if (pesquisarEm != null)
83 for (int i = 0; i < pesquisarEm.length; i++) {
84 if ("0".equals(pesquisarEm[i]))
85 entidade.setNomeEnt(arg);
86
87 }
88 }
89
90 /**
91 * Retorna List com entidades pesquisadas.<br>
92 *
93 * @author N/C
94 * @since N/C
95 * @version N/C
96 * @return List
97 * @throws ECARException
98 */
99 public List pesquisar() throws ECARException {
100 entidade.setIndAtivoEnt("S");
101 return entidadeDao.pesquisar(entidade, new String[] {"nomeEnt", "asc"});
102 }
103
104 /**
105 * Devolve para o template o codigo do radio button.<br>
106 *
107 * @author N/C
108 * @since N/C
109 * @version N/C
110 * @return String
111 */
112 public String getCodigo() {
113 return entidade.getCodEnt().toString();
114 }
115
116 /**
117 * Devolve para o template a descricao.<br>
118 *
119 * @author N/C
120 * @since N/C
121 * @version N/C
122 * @return String
123 */
124 public String getDescricao() {
125 return entidade.getNomeEnt();
126 }
127
128 /**
129 * Recebe um objeto do template.<br>
130 *
131 * @author N/C
132 * @since N/C
133 * @version N/C
134 * @param Object o
135 */
136 public void setPojo(Object o) {
137 entidade = (EntidadeEnt) o;
138 }
139
140 /**
141 * Retorna para o template um array com os nomes para montar os checkbox.<br>
142 *
143 * @author N/C
144 * @since N/C
145 * @version N/C
146 * @return String[] - (Returns the pesquisarEm)
147 */
148 public String[] getPesquisarEm() {
149 return pesquisarEm;
150 }
151
152 /**
153 * Atribui internamente um array com os campos possiveis para a pesquisa.<br>
154 *
155 * @author N/C
156 * @since N/C
157 * @version N/C
158 * @param String[] pesquisarEm - (The pesquisarEm to set)
159 */
160 private void setPesquisarEm(String[] pesquisarEm) {
161 this.pesquisarEm = pesquisarEm;
162 }
163
164 /**
165 * Retorna String "Entidade".<br>
166 *
167 * @author N/C
168 * @since N/C
169 * @version N/C
170 * @return String
171 */
172 public String getTitulo() {
173 return "Entidade";
174 }
175 }