package gcom.gui.faturamento; import gcom.gui.GcomAction; import gcom.micromedicao.Rota; 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; public class RemoverSelecaoRotaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { String forward = httpServletRequest.getParameter("forward"); //Seta o retorno ActionForward retorno = actionMapping .findForward(forward); //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); //Formul�rio de pesquisa DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm; if (forward.equalsIgnoreCase("exibirSelecionarRota") && sessao.getAttribute("colecaoRotasSelecionadasUsuario") != null) { // Cole��o retornada pela pesquisa Collection colecaoRotasSelecionadasUsuario = (Collection) sessao .getAttribute("colecaoRotasSelecionadasUsuario"); // Cole��o que ir� ser gerada a partir da sele��o efetuada pelo // usu�rio if (pesquisarActionForm.get("idRotaSelecao") != null) { Iterator colecaoRotasSelecionadasUsuarioIterator; Rota rotaInserir; int indexArray = 0; Integer rotaID; // Rotas selecionadas pelo usu�rio para serem removidas da // sess�o String[] rotasSelecionadas = (String[]) pesquisarActionForm .get("idRotaSelecao"); while (rotasSelecionadas.length > indexArray) { rotaID = new Integer(rotasSelecionadas[indexArray]); colecaoRotasSelecionadasUsuarioIterator = colecaoRotasSelecionadasUsuario .iterator(); while (colecaoRotasSelecionadasUsuarioIterator.hasNext()) { rotaInserir = (Rota) colecaoRotasSelecionadasUsuarioIterator .next(); if (rotaInserir.getId().equals(rotaID)) { colecaoRotasSelecionadasUsuario.remove(rotaInserir); break; } } indexArray++; } } } else if (forward.equalsIgnoreCase("exibirFiltrarRotaComandoAtividade") && sessao.getAttribute("colecaoRotasSelecionadas") != null){ //Cole��o retornada pela pesquisa Collection colecaoRotasSelecionadasUsuario = (Collection) sessao .getAttribute("colecaoRotasSelecionadas"); // Cole��o que ir� ser gerada a partir da sele��o efetuada pelo // usu�rio if (pesquisarActionForm.get("idRotaSelecao") != null) { Iterator colecaoRotasSelecionadasUsuarioIterator; Rota rotaInserir; int indexArray = 0; Integer rotaID; // Rotas selecionadas pelo usu�rio para serem removidas da // sess�o String[] rotasSelecionadas = (String[]) pesquisarActionForm .get("idRotaSelecao"); while (rotasSelecionadas.length > indexArray) { rotaID = new Integer(rotasSelecionadas[indexArray]); colecaoRotasSelecionadasUsuarioIterator = colecaoRotasSelecionadasUsuario .iterator(); while (colecaoRotasSelecionadasUsuarioIterator.hasNext()) { rotaInserir = (Rota) colecaoRotasSelecionadasUsuarioIterator .next(); if (rotaInserir.getId().equals(rotaID)) { colecaoRotasSelecionadasUsuario.remove(rotaInserir); break; } } indexArray++; } } } //devolve o mapeamento de retorno return retorno; } }