View Javadoc

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 }