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.ArrayList;
19 import java.util.Iterator;
20 import java.util.List;
21 import java.util.Set;
22
23 import javax.servlet.http.HttpServletRequest;
24
25 import comum.database.Dao;
26 import comum.util.Pagina;
27
28 import ecar.dao.LocalItemDao;
29 import ecar.exception.ECARException;
30 import ecar.pojo.ItemEstrutLocalIettl;
31 import ecar.pojo.LocalGrupoLgp;
32 import ecar.pojo.LocalItemLit;
33
34 /**
35 * @author evandro
36 *
37 */
38 public class PopUpLocalItem implements PopUpPesquisa {
39
40
41 private String[] pesquisarEm;
42 private List locais;
43
44
45 // declare o seu pojo e o Dao aqui
46 private LocalItemLit localItem;
47 private LocalItemDao localItemDao;
48
49 public PopUpLocalItem(){
50 localItem = new LocalItemLit();
51 localItemDao = new LocalItemDao(null);
52 this.setPesquisarEm(new String[] {"Nome"});
53 }
54
55 /**
56 * Devolve para o template jsp o Dao.<br>
57 *
58 * @author N/C
59 * @since N/C
60 * @version N/C
61 * @return Dao
62 * @see ecar.popup.PopUpPesquisa#getDao()
63 */
64 public Dao getDao() {
65 return localItemDao;
66 }
67
68 /**
69 * Recebe o argumento de pesquisa do template jsp e seta nos respectivos campos.<br>
70 * String arg - a string do argumento d pesquisa.<br>
71 * String[] pesquisarEm - um array de string com os nomes dos campos que devem ser pesquisados.<br>
72 *
73 * @author N/C
74 * @since N/C
75 * @version N/C
76 * @param HttpServletRequest request
77 * @throws ECARException
78 */
79 public void setArgPesquisa(HttpServletRequest request) throws ECARException{
80 String arg = Pagina.getParam(request, "hidArg");
81 String[] pesquisarEm = request.getParameterValues("hidPesquisarEm");
82 String codLgp = Pagina.getParamStr(request, "codLgp");
83
84 localItem.setLocalGrupoLgp((LocalGrupoLgp) new Dao().buscar(LocalGrupoLgp.class, Long.valueOf(codLgp)));
85 if (pesquisarEm != null)
86 for (int i = 0; i < pesquisarEm.length; i++) {
87 if ("0".equals(pesquisarEm[i]))
88 localItem.setIdentificacaoLit(arg);
89
90 }
91
92 if(request.getSession().getAttribute("listaLocaisItem") != null)
93 locais = new ArrayList((Set)request.getSession().getAttribute("listaLocaisItem"));
94 }
95
96 /**
97 * Retorna List com locais do item pesquisado.<br>
98 *
99 * @author N/C
100 * @since N/C
101 * @version N/C
102 * @return List
103 * @throws ECARException
104 */
105 public List pesquisar() throws ECARException {
106 localItem.setIndAtivoLit("S");
107 List retorno = localItemDao.pesquisar(localItem, new String[]{"identificacaoLit", "asc"});
108 //return localItemDao.pesquisar(localItem, new String[] {"identificacaoLit", "asc"});
109 if(locais != null && locais.size() > 0){
110 Iterator itLocais = locais.iterator();
111 while(itLocais.hasNext()){
112 ItemEstrutLocalIettl itemLocal = (ItemEstrutLocalIettl) itLocais.next();
113
114 Iterator itLocaisPesquisados = retorno.iterator();
115 while(itLocaisPesquisados.hasNext()){
116 LocalItemLit local = (LocalItemLit) itLocaisPesquisados.next();
117 if(local.equals(itemLocal.getLocalItemLit())){
118 itLocaisPesquisados.remove();
119 }
120 }
121 }
122 }
123 return retorno;
124 }
125
126 /**
127 * Devolve para o template o codigo do radio button.<br>
128 *
129 * @author N/C
130 * @since N/C
131 * @version N/C
132 * @return String
133 */
134 public String getCodigo() {
135 return localItem.getCodLit().toString();
136 }
137
138 /**
139 * Devolve para o template a descricao.<br>
140 *
141 * @author N/C
142 * @since N/C
143 * @version N/C
144 * @return String
145 */
146 public String getDescricao() {
147 return localItem.getIdentificacaoLit();
148 }
149
150 /**
151 * Recebe um objeto do template.<br>
152 *
153 * @author N/C
154 * @since N/C
155 * @version N/C
156 * @param Object o
157 */
158 public void setPojo(Object o) {
159 localItem = (LocalItemLit) o;
160 }
161
162 /**
163 * Retorna para o template um array com os nomes para montar os checkbox.<br>
164 *
165 * @author N/C
166 * @since N/C
167 * @version N/C
168 * @return String[] - (Returns the pesquisarEm)
169 */
170 public String[] getPesquisarEm() {
171 return pesquisarEm;
172 }
173
174 /**
175 * Atribui internamente um array com os campos possiveis para a pesquisa.<br>
176 *
177 * @author N/C
178 * @since N/C
179 * @version N/C
180 * @param String[] pesquisarEm - (The pesquisarEm to set)
181 */
182 private void setPesquisarEm(String[] pesquisarEm) {
183 this.pesquisarEm = pesquisarEm;
184 }
185
186 /**
187 * Retorna String "Localização".<br>
188 *
189 * @author N/C
190 * @since N/C
191 * @version N/C
192 * @return String
193 */
194 public String getTitulo() {
195 return "Localização";
196 }
197 }