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 }