From 34dac94bff3f6f81730b0568e494f9b62283cfb3 Mon Sep 17 00:00:00 2001 From: Fabiano Sluzarski <fs09@inf.ufpr.br> Date: Fri, 4 Apr 2014 15:21:29 -0300 Subject: [PATCH] arrumado bug onde o formulario nao atualizava correta na volta da componente de multipla selecao --- .../web/OcorrenciaMunicipalController.java | 37 +++++++----- .../web/ProgramaController.java | 56 +++++++++---------- 2 files changed, 51 insertions(+), 42 deletions(-) diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java index 1383b82..305e6ed 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/OcorrenciaMunicipalController.java @@ -37,18 +37,31 @@ import br.ufpr.c3sl.estacaojuventude.enums.TipoStatus; public class OcorrenciaMunicipalController { OcorrenciaMunicipal ocorrenciaMunicipalGlobal; - private Set<OrgaoExecutor> copySetOrgaoExecutor(Set<OrgaoExecutor> old) { - Set<OrgaoExecutor> orgaosExecutoresNovo = new HashSet<OrgaoExecutor>(); - Set<OrgaoExecutor> orgaosExecutores = old; - - for (Iterator<OrgaoExecutor> o = orgaosExecutores.iterator(); o.hasNext();) - orgaosExecutoresNovo.add(OrgaoExecutor.findOrgaoExecutor(o.next().getId())); - - return orgaosExecutoresNovo; + private void refreshRelations() { + if (ocorrenciaMunicipalGlobal.getProgramaVinculado() != null) + ocorrenciaMunicipalGlobal.setProgramaVinculado(Programa.findPrograma(ocorrenciaMunicipalGlobal.getProgramaVinculado().getId())); + + if (ocorrenciaMunicipalGlobal.getMunicipio() != null) + ocorrenciaMunicipalGlobal.setMunicipio(Municipio.findMunicipio(ocorrenciaMunicipalGlobal.getMunicipio().getId())); + + if (ocorrenciaMunicipalGlobal.getOrgaosExecutores() != null) { + Set<OrgaoExecutor> orgaosExecutoresNovo = new HashSet<OrgaoExecutor>(); + Set<OrgaoExecutor> orgaosExecutores = ocorrenciaMunicipalGlobal.getOrgaosExecutores(); + for (Iterator<OrgaoExecutor> o = orgaosExecutores.iterator(); o.hasNext();) + orgaosExecutoresNovo.add(OrgaoExecutor.findOrgaoExecutor(o.next().getId())); + ocorrenciaMunicipalGlobal.setOrgaosExecutores(orgaosExecutoresNovo); + } + + if (ocorrenciaMunicipalGlobal.getId() != null) + ocorrenciaMunicipalGlobal.setLocalizacoes(OcorrenciaMunicipal.findOcorrenciaMunicipal(ocorrenciaMunicipalGlobal.getId()).getLocalizacoes()); + + if (ocorrenciaMunicipalGlobal.getUsuario() != null) + ocorrenciaMunicipalGlobal.setUsuario(Usuario.findUsuario(ocorrenciaMunicipalGlobal.getUsuario().getId())); } @RequestMapping(value = "/form/{id}", produces = "text/html") - public String addSelected(@PathVariable("id") Long id, Model uiModel, HttpServletRequest httpServletRequest) { + public String treatSelected(@PathVariable("id") Long id, Model uiModel, HttpServletRequest httpServletRequest) { + refreshRelations(); if (OrgaoExecutor.findOrgaoExecutor(id) != null) { if (ocorrenciaMunicipalGlobal.getOrgaosExecutores() == null) { Set<OrgaoExecutor> orgaosExecutores = new HashSet<OrgaoExecutor>(); @@ -57,7 +70,7 @@ public class OcorrenciaMunicipalController { ocorrenciaMunicipalGlobal.setOrgaosExecutores(orgaosExecutores); } else { - Set<OrgaoExecutor> orgaosExecutoresNovo = copySetOrgaoExecutor(ocorrenciaMunicipalGlobal.getOrgaosExecutores()); + Set<OrgaoExecutor> orgaosExecutoresNovo = ocorrenciaMunicipalGlobal.getOrgaosExecutores(); if (orgaosExecutoresNovo.contains(OrgaoExecutor.findOrgaoExecutor(id))) orgaosExecutoresNovo.remove(OrgaoExecutor.findOrgaoExecutor(id)); else @@ -65,10 +78,6 @@ public class OcorrenciaMunicipalController { ocorrenciaMunicipalGlobal.setOrgaosExecutores(orgaosExecutoresNovo); } } - if (ocorrenciaMunicipalGlobal.getOrgaosExecutores() != null) { - Set<OrgaoExecutor> orgaosExecutoresNovo = copySetOrgaoExecutor(ocorrenciaMunicipalGlobal.getOrgaosExecutores()); - ocorrenciaMunicipalGlobal.setOrgaosExecutores(orgaosExecutoresNovo); - } populateEditForm(uiModel, ocorrenciaMunicipalGlobal); if (ocorrenciaMunicipalGlobal.getId() == null) { ocorrenciaMunicipalGlobal = null; diff --git a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java index 5375155..6154c35 100644 --- a/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java +++ b/src/main/java/br/ufpr/c3sl/estacaojuventude/web/ProgramaController.java @@ -38,28 +38,36 @@ import br.ufpr.c3sl.estacaojuventude.enums.TipoTemporalidade; public class ProgramaController { private Programa programaGlobal; - private Set<Tematica> copySetTematica(Set<Tematica> old) { - Set<Tematica> tematicasNova = new HashSet<Tematica>(); - Set<Tematica> tematicas = old; - - for (Iterator<Tematica> t = tematicas.iterator(); t.hasNext();) - tematicasNova.add(Tematica.findTematica(t.next().getId())); + private void refreshRelations() { + if (programaGlobal.getProgramaVinculado() != null) + programaGlobal.setProgramaVinculado(Programa.findPrograma(programaGlobal.getProgramaVinculado().getId())); - return tematicasNova; - } - - private Set<OrgaoExecutor> copySetOrgaoExecutor(Set<OrgaoExecutor> old) { - Set<OrgaoExecutor> orgaosExecutoresNovo = new HashSet<OrgaoExecutor>(); - Set<OrgaoExecutor> orgaosExecutores = old; - - for (Iterator<OrgaoExecutor> o = orgaosExecutores.iterator(); o.hasNext();) - orgaosExecutoresNovo.add(OrgaoExecutor.findOrgaoExecutor(o.next().getId())); + if (programaGlobal.getTematicas() != null) { + Set<Tematica> tematicasNova = new HashSet<Tematica>(); + Set<Tematica> tematicas = programaGlobal.getTematicas(); + for (Iterator<Tematica> t = tematicas.iterator(); t.hasNext();) + tematicasNova.add(Tematica.findTematica(t.next().getId())); + programaGlobal.setTematicas(tematicasNova); + } + + if (programaGlobal.getOrgaosExecutores() != null) { + Set<OrgaoExecutor> orgaosExecutoresNovo = new HashSet<OrgaoExecutor>(); + Set<OrgaoExecutor> orgaosExecutores = programaGlobal.getOrgaosExecutores(); + for (Iterator<OrgaoExecutor> o = orgaosExecutores.iterator(); o.hasNext();) + orgaosExecutoresNovo.add(OrgaoExecutor.findOrgaoExecutor(o.next().getId())); + programaGlobal.setOrgaosExecutores(orgaosExecutoresNovo); + } - return orgaosExecutoresNovo; + if (programaGlobal.getId() != null) + programaGlobal.setOcorrencias(Programa.findPrograma(programaGlobal.getId()).getOcorrencias()); + + if (programaGlobal.getUsuario() != null) + programaGlobal.setUsuario(Usuario.findUsuario(programaGlobal.getUsuario().getId())); } @RequestMapping(value = "/form/{id}", produces = "text/html") - public String addSelected(@PathVariable("id") Long id, Model uiModel, HttpServletRequest httpServletRequest) { + public String treatSelected(@PathVariable("id") Long id, Model uiModel, HttpServletRequest httpServletRequest) { + refreshRelations(); if (Tematica.findTematica(id) != null) { if (programaGlobal.getTematicas() == null) { Set<Tematica> tematicas = new HashSet<Tematica>(); @@ -68,7 +76,7 @@ public class ProgramaController { programaGlobal.setTematicas(tematicas); } else { - Set<Tematica> tematicasNova = copySetTematica(programaGlobal.getTematicas()); + Set<Tematica> tematicasNova = programaGlobal.getTematicas(); if (tematicasNova.contains(Tematica.findTematica(id))) tematicasNova.remove(Tematica.findTematica(id)); else @@ -84,7 +92,7 @@ public class ProgramaController { programaGlobal.setOrgaosExecutores(orgaosExecutores); } else { - Set<OrgaoExecutor> orgaosExecutoresNovo = copySetOrgaoExecutor(programaGlobal.getOrgaosExecutores()); + Set<OrgaoExecutor> orgaosExecutoresNovo = programaGlobal.getOrgaosExecutores(); if (orgaosExecutoresNovo.contains(OrgaoExecutor.findOrgaoExecutor(id))) orgaosExecutoresNovo.remove(OrgaoExecutor.findOrgaoExecutor(id)); else @@ -92,14 +100,6 @@ public class ProgramaController { programaGlobal.setOrgaosExecutores(orgaosExecutoresNovo); } } - if (programaGlobal.getTematicas() != null) { - Set<Tematica> tematicasNova = copySetTematica(programaGlobal.getTematicas()); - programaGlobal.setTematicas(tematicasNova); - } - if (programaGlobal.getOrgaosExecutores() != null) { - Set<OrgaoExecutor> orgaosExecutoresNovo = copySetOrgaoExecutor(programaGlobal.getOrgaosExecutores()); - programaGlobal.setOrgaosExecutores(orgaosExecutoresNovo); - } populateEditForm(uiModel, programaGlobal); if (programaGlobal.getId() == null) { programaGlobal = null; @@ -112,7 +112,7 @@ public class ProgramaController { } @RequestMapping(value = "selecionar", method = {RequestMethod.POST, RequestMethod.PUT}, produces = "text/html") - public String createSelectForm(@Valid Programa programa, @RequestParam(value = "tipo", required = false) String type, @RequestParam(value = "op", required = false) Integer op, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) { + public String selectForm(@Valid Programa programa, @RequestParam(value = "tipo", required = false) String type, @RequestParam(value = "op", required = false) Integer op, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) { programaGlobal = programa; if (op == 0) { -- GitLab