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