package gcom.gui.cadastro.cliente; import gcom.cadastro.cliente.ClienteEndereco; import gcom.gui.GcomAction; 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; import org.apache.struts.validator.DynaValidatorForm; /** * < <Descri��o da Classe>> * * @author Administrador */ public class RemoverAtualizarClienteColecaoEnderecoAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirAtualizarEndereco"); // obtendo uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); DynaValidatorForm clienteActionForm = (DynaValidatorForm) sessao .getAttribute("ClienteActionForm"); Collection colecaoEnderecos = (Collection) sessao .getAttribute("colecaoEnderecos"); if (colecaoEnderecos != null) { String[] codigoEnderecos = httpServletRequest .getParameterValues("enderecoRemoverSelecao"); Iterator iterator = colecaoEnderecos.iterator(); if( colecaoEnderecos.size() == 1 ){ sessao.removeAttribute("colecaoEnderecos"); } while (iterator.hasNext()) { ClienteEndereco clienteEndereco = (ClienteEndereco) iterator .next(); for (int i = 0; i < codigoEnderecos.length; i++) { if (GcomAction.obterTimestampIdObjeto(clienteEndereco) == (Long .parseLong(codigoEnderecos[i]))) { // Verifica se o endere�o removido era o principal para // adicionar o indicador de principal // para o primeiro da lista if (GcomAction.obterTimestampIdObjeto(clienteEndereco) == (((Long) clienteActionForm .get("enderecoCorrespondenciaSelecao")) .longValue()) && colecaoEnderecos.size() > 1) { Iterator iteratorTemp = colecaoEnderecos.iterator(); // Pega o primeiro da lista ClienteEndereco clienteEnderecoPrimeiroDaLista = (ClienteEndereco) iteratorTemp .next(); // Verifica se o primeiro da lista � o mesmo que // ser� removido if (GcomAction .obterTimestampIdObjeto(clienteEnderecoPrimeiroDaLista) == GcomAction .obterTimestampIdObjeto(clienteEndereco)) { // Seta como principal o segundo da lista clienteEnderecoPrimeiroDaLista = (ClienteEndereco) iteratorTemp .next(); } // Seta o indicador no form httpServletRequest .setAttribute( "enderecoCorrespondenciaSelecao", new Long( GcomAction .obterTimestampIdObjeto(clienteEnderecoPrimeiroDaLista))); } else if (GcomAction .obterTimestampIdObjeto(clienteEndereco) == (((Long) clienteActionForm .get("enderecoCorrespondenciaSelecao")) .longValue()) && colecaoEnderecos.size() > 0) { clienteActionForm.set( "enderecoCorrespondenciaSelecao", new Long(0)); // Seta o indicador no form httpServletRequest.setAttribute( "enderecoCorrespondenciaSelecao", new Long(0)); } iterator.remove(); } } } } return retorno; } }