package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.ClienteImovelEconomia; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.imovel.ImovelEconomia; import gcom.gui.GcomAction; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Action que remove a o objeto selecionado de cliente imovel economia que est� * sem o imovel economia * * @author S�vio Luiz * @created 20 de Maio de 2004 */ public class RemoverEconomiaPopupAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //obtendo uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); //Obt�m o action form EconomiaPopupActionForm economiaPopupActionForm = (EconomiaPopupActionForm) actionForm; ActionForward retorno = null; //verifica se o bot�o do form � diferente de vazio if (economiaPopupActionForm.getBotaoAdicionar() != null && !economiaPopupActionForm.getBotaoAdicionar().equals("")) { //verifica se o bot�o tem o valor atualizar //se tiver volta para o popup atualizar if (economiaPopupActionForm.getBotaoAdicionar().equals("atualizar") || economiaPopupActionForm.getBotaoAdicionar().equals("ATUALIZAR")) { retorno = actionMapping.findForward("atualizarEconomiaPopup"); } //verifica se o bot�o tem o valor inserir //se tiver volta para o popup inserir if (economiaPopupActionForm.getBotaoAdicionar().equals("inserir") || economiaPopupActionForm.getBotaoAdicionar().equals("INSERIR")) { retorno = actionMapping.findForward("inserirEconomiaPopup"); } } // Fachada fachada = Fachada.getInstancia(); //Cria variaveis Collection colecaoClientesImoveisEconomia = (Collection) sessao .getAttribute("colecaoClientesImoveisEconomia"); Collection colecaoClientesImoveisEconomiaRemovidas = null; if (sessao.getAttribute("colecaoClientesImoveisEconomiaRemovidas")!= null){ colecaoClientesImoveisEconomiaRemovidas = (Collection) sessao.getAttribute("colecaoClientesImoveisEconomiaRemovidas"); }else{ colecaoClientesImoveisEconomiaRemovidas = new ArrayList(); } //Cria variaveis ImovelEconomia imovelEconomia = (ImovelEconomia) sessao .getAttribute("imovelEconomia"); //atribui os valores q vem pelo request as variaveis String[] clientesImoveis = economiaPopupActionForm .getIdRegistrosRemocao(); //instancia cliente ClienteImovelEconomia clienteImovelEconomia = null; Collection colecaoClientesImoveisEconomiaFimRelacao = new ArrayList(); if (imovelEconomia != null && !imovelEconomia.equals("")) { Collection clienteImovelEconomias = (Collection) imovelEconomia .getClienteImovelEconomias(); Iterator clienteImovelEconomiaIterator = clienteImovelEconomias .iterator(); while (clienteImovelEconomiaIterator.hasNext()) { clienteImovelEconomia = (ClienteImovelEconomia) clienteImovelEconomiaIterator .next(); for (int i = 0; i < clientesImoveis.length; i++) { if (clienteImovelEconomia.getUltimaAlteracao().getTime() == Long .parseLong(clientesImoveis[i])) { if (clienteImovelEconomia.getId() != null && !clienteImovelEconomia.getId().equals("")) { //caso seja um cliente im�vel economia da base // ent�o vai para o //exibirManterFimRelacaoClienteImovel para colocar // o motivo do fim da rela��o retorno = actionMapping .findForward("exibirManterFimRelacaoClienteImovel"); colecaoClientesImoveisEconomiaFimRelacao .add(clienteImovelEconomia); if (clienteImovelEconomia.getClienteRelacaoTipo() .getId().shortValue() == ClienteRelacaoTipo.USUARIO .shortValue()) { economiaPopupActionForm .setIdClienteImovelUsuario(null); } colecaoClientesImoveisEconomiaRemovidas.add(clienteImovelEconomia); //clienteImovelEconomiaIterator.remove(); sessao.setAttribute("colecaoClientesImoveisEconomiaFimRelacao", colecaoClientesImoveisEconomiaFimRelacao); sessao.setAttribute("colecaoClientesImoveisEconomiaRemovidas",colecaoClientesImoveisEconomiaRemovidas); } else { clienteImovelEconomiaIterator.remove(); if (clienteImovelEconomia.getClienteRelacaoTipo() .getId().shortValue() == ClienteRelacaoTipo.USUARIO .shortValue()) { economiaPopupActionForm .setIdClienteImovelUsuario(null); } } } } } sessao.setAttribute("imovelEconomia", imovelEconomia); } if (colecaoClientesImoveisEconomia != null && !colecaoClientesImoveisEconomia.equals("")) { Iterator clienteImovelEconomiaIterator = colecaoClientesImoveisEconomia .iterator(); while (clienteImovelEconomiaIterator.hasNext()) { clienteImovelEconomia = (ClienteImovelEconomia) clienteImovelEconomiaIterator .next(); for (int i = 0; i < clientesImoveis.length; i++) { if (clienteImovelEconomia.getUltimaAlteracao().getTime() == Long .parseLong(clientesImoveis[i])) { clienteImovelEconomiaIterator.remove(); if (clienteImovelEconomia.getClienteRelacaoTipo() .getId().shortValue() == ClienteRelacaoTipo.USUARIO .shortValue()) { economiaPopupActionForm .setIdClienteImovelUsuario(null); } } } } } if (!colecaoClientesImoveisEconomia.isEmpty()){ economiaPopupActionForm.setColecaoCliente("SIM"); } else { economiaPopupActionForm.setColecaoCliente(null); } return retorno; } }