1 /*
2 * Created on 14/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.CriterioDao;
26 import ecar.exception.ECARException;
27 import ecar.pojo.CriterioCri;
28
29 /**
30 * @author garten
31 */
32 public class PopUpCriterio implements PopUpPesquisa {
33
34
35 // array de nomes de campos em que pode pesquisar
36 private String[] pesquisarEm;
37
38 // declare o seu pojo e o Dao aqui
39 private CriterioCri pojo;
40 private CriterioDao dao;
41
42 public PopUpCriterio(){
43 pojo = new CriterioCri();
44 dao = new CriterioDao(null);
45 this.setPesquisarEm(new String[] {"Nome"});
46 }
47
48 /**
49 * Devolve para o template jsp o Dao. <br>
50 *
51 * @author N/C
52 * @since N/C
53 * @version N/C
54 * @return Dao
55 * @see ecar.popup.PopUpPesquisa#getDao()
56 */
57 public Dao getDao() {
58 return dao;
59 }
60
61 /**
62 * Retorna String "Critérios".<br>
63 *
64 * @author N/C
65 * @since N/C
66 * @version N/C
67 * @return String
68 */
69 public String getTitulo(){
70 return "Critérios";
71 }
72
73 /**
74 * Recebe o argumento de pesquisa do template jsp e seta nos respectivos campos.<br>
75 * String arg - a string do argumento d pesquisa<br>
76 * String[] pesquisarEm - um array de string com os nomes dos campos que devem ser pesquisados<br>
77 *
78 * @author N/C
79 * @since N/C
80 * @version N/C
81 * @param HttpServletRequest request
82 * @throws ECARException
83 */
84 public void setArgPesquisa(HttpServletRequest request) throws ECARException{
85 String arg = Pagina.getParam(request, "hidArg");
86 String[] pesquisarEm = request.getParameterValues("hidPesquisarEm");
87
88 if (pesquisarEm != null)
89 for (int i = 0; i < pesquisarEm.length; i++) {
90 if ("0".equals(pesquisarEm[i]))
91 pojo.setDescricaoCri(arg);
92 }
93 }
94
95 /**
96 * Retorna List de pojos pesquisados.<br>
97 *
98 * @author N/C
99 * @since N/C
100 * @version N/C
101 * @return List
102 * @throws ECARException
103 */
104 public List pesquisar() throws ECARException {
105 pojo.setIndAtivoCri("S");
106 return dao.pesquisar(pojo, new String[] {"descricaoCri", "asc"});
107 }
108
109 /**
110 * Devolve para o template o codigo do radio button.<br>
111 *
112 * @author N/C
113 * @since N/C
114 * @version N/C
115 * @return String
116 */
117 public String getCodigo() {
118 return pojo.getCodCri().toString();
119 }
120
121 /**
122 * Devolve para o template a descricao.<br>
123 *
124 * @author N/C
125 * @since N/C
126 * @version N/C
127 * @return String
128 */
129 public String getDescricao() {
130 return pojo.getDescricaoCri();
131 }
132
133 /**
134 * Recebe um objeto do template.<br>
135 * @author N/C
136 * @since N/C
137 * @version N/C
138 * @param Object o
139 */
140 public void setPojo(Object o) {
141 pojo = (CriterioCri) o;
142 }
143
144 /**
145 * Retorna para o template um array com os nomes para montar os checkbox.<br>
146 *
147 * @author N/C
148 * @since N/C
149 * @version N/C
150 * @return String[] - (Returns the pesquisarEm.)
151 */
152 public String[] getPesquisarEm() {
153 return pesquisarEm;
154 }
155
156 /**
157 * Atribui internamente um array com os campos possiveis para a pesquisa.<br>
158 *
159 * @author N/C
160 * @since N/C
161 * @version N/C
162 * @param String[] pesquisarEm - (The pesquisarEm to set)
163 */
164 private void setPesquisarEm(String[] pesquisarEm) {
165 this.pesquisarEm = pesquisarEm;
166 }
167 }