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