View Javadoc

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.ArrayList;
19  import java.util.HashSet;
20  import java.util.Iterator;
21  import java.util.List;
22  import java.util.Set;
23  
24  import javax.servlet.http.HttpServletRequest;
25  
26  import comum.database.Dao;
27  import comum.util.Pagina;
28  
29  import ecar.dao.RegDemandaDao;
30  import ecar.exception.ECARException;
31  import ecar.pojo.EntidadeEnt;
32  import ecar.pojo.RegDemandaRegd;
33  
34  /**
35   * @author garten
36   *
37   */
38  public class PopUpRegDemanda implements PopUpPesquisa {
39      
40  
41      // array de nomes de campos em que pode pesquisar
42      private String[] pesquisarEm;
43      
44      // declare o seu pojo e o Dao aqui
45      private RegDemandaRegd pojo;
46      private RegDemandaDao dao;
47      
48      private List objetosIgnorados;
49      
50      private Set gruposAcesso = null;
51  
52      public PopUpRegDemanda(){
53          pojo = new RegDemandaRegd();
54          dao = new RegDemandaDao(null);
55          this.setPesquisarEm(new String[] {"Descrição", "Sigla", "Entidade", "Usuário"});
56      }
57      
58      /**
59       * Devolve para o template jsp o Dao.<br>
60       * 
61       * @author N/C
62       * @since N/C
63       * @version N/C
64       * @return Dao
65       * @see ecar.popup.PopUpPesquisa#getDao()
66       */
67      public Dao getDao() {
68          return dao;
69      }
70      
71      /**
72       * Retorna String "Demanda".<br>
73       * 
74       * @author N/C
75       * @since N/C
76       * @version N/C
77       * @return String
78       */
79      public String getTitulo(){
80          return "Demanda";
81      }
82  
83      /**
84       * Recebe o argumento de pesquisa do template jsp e seta nos respectivos campos.<br>
85       * String arg - a string do argumento d pesquisa.<br>
86       * String[] pesquisarEm um array de string com os nomes dos campos que devem ser pesquisados.<br>
87       * 
88       * @author N/C
89       * @since N/C
90       * @version N/C
91       * @param HttpServletRequest request
92       * @throws ECARException
93       */
94      public void setArgPesquisa(HttpServletRequest request) throws ECARException{
95      	String arg = Pagina.getParam(request, "hidArg");
96          String[] pesquisarEm = request.getParameterValues("hidPesquisarEm");
97          
98          if(request.getSession().getAttribute("objetosIgnorados") != null)
99          	objetosIgnorados = new ArrayList((List)request.getSession().getAttribute("objetosIgnorados"));
100         
101         if (request.getSession().getAttribute("gruposAcesso") != null){
102         	
103         	gruposAcesso = (Set) request.getSession().getAttribute("gruposAcesso");
104         }
105         
106         if (pesquisarEm != null) {
107         	EntidadeEnt entidade = null;
108 	        for (int i = 0; i < pesquisarEm.length; i++) {
109 	            if ("0".equals(pesquisarEm[i])) {
110 	                pojo.setDescricaoRegd(arg);
111 	            } else if ("1".equals(pesquisarEm[i])) {
112 	            	entidade = new EntidadeEnt();
113 	            	entidade.setSiglaEnt(arg);
114 	            } else if ("2".equals(pesquisarEm[i])) {
115 	            	if (entidade == null) {
116 	            		entidade = new EntidadeEnt();
117 	            	}
118 	            	entidade.setNomeEnt(arg);
119 	            } else if ("3".equals(pesquisarEm[i]))
120 	                pojo.setNomeSolicitanteRegd(arg);
121 	        }
122 	        if (entidade != null) {
123 	        	pojo.setEntidadeDemandaEntds(new HashSet());
124 	        	pojo.getEntidadeDemandaEntds().add(entidade);
125 	        }
126         }
127     }
128 
129     /**
130      * Metodo que efetua pesquisa de demandas.<br>
131      *  
132      * @author N/C
133      * @since N/C
134      * @version N/C
135      * @return List
136      * @throws ECARException
137      */
138     public List pesquisar() throws ECARException {
139         List demandas = dao.pesquisarPopUpRegDemanda(pojo, gruposAcesso);
140         if(demandas != null){
141         	Iterator it = demandas.iterator();
142         	while(it.hasNext()){
143         		RegDemandaRegd d = (RegDemandaRegd) it.next();
144         		if((objetosIgnorados != null && objetosIgnorados.contains(d)) || !"S".equals(d.getIndAtivoRegd()))
145         			it.remove();
146         	}
147         }
148         return demandas;
149     }
150     
151     /**
152      * Devolve para o template o codigo do radio button.<br>
153      * 
154      * @author N/C
155      * @since N/C
156      * @version N/C
157      * @return String
158      */
159     public String getCodigo() {
160         return pojo.getCodRegd().toString();
161     }
162     
163     /**
164      * Devolve para o template a descricao.<br>
165      * 
166      * @author N/C
167      * @since N/C
168      * @version N/C
169      * @return String
170      */
171     public String getDescricao() {
172         return pojo.getDescricaoRegd();
173     }
174     
175     /**
176      * Recebe um objeto do template.<br>
177      * 
178      * @author N/C
179      * @since N/C
180      * @version N/C
181      * @param Object o
182      */
183     public void setPojo(Object o) {
184         pojo = (RegDemandaRegd) o;
185     }
186 
187     /**
188      * Retorna para o template um array com os nomes para montar os checkbox.<br>
189      * 
190      * @author N/C
191      * @since N/C
192      * @version N/C
193      * @return String[] - (Returns the pesquisarEm)
194      */
195     public String[] getPesquisarEm() {
196         return pesquisarEm;
197     }
198 
199     /**
200      * Atribui internamente um array com os campos possiveis para a pesquisa.<br>
201      * 
202      * @author N/C
203      * @since N/C
204      * @version N/C
205      * @param String[] pesquisarEm (The pesquisarEm to set)
206      */
207     private void setPesquisarEm(String[] pesquisarEm) {
208         this.pesquisarEm = pesquisarEm;
209     }
210 }