diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java index 54dae2a76..9f97ba065 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/esquemaoperacional/EditarConexionController.java @@ -105,6 +105,8 @@ public class EditarConexionController extends MyGenericForwardComposer { private Label lblConexaoFixa4; private List lsRutas; + private List conexoesRemovidas; + private List conexoesConfRemovidas; public ConexionCtrl getConexionCtrl() { return conexionCtrl; @@ -119,6 +121,8 @@ public class EditarConexionController extends MyGenericForwardComposer { super.doAfterCompose(comp); lsRutas = rutaService.obtenerTodos(); + conexoesRemovidas = new ArrayList(); + conexoesConfRemovidas = new ArrayList(); conexionesList = (MyListbox) Executions.getCurrent().getArg().get("conexionesList"); @@ -635,42 +639,53 @@ public class EditarConexionController extends MyGenericForwardComposer { } public void onClick$btnRemoverConexao(Event ev) throws Exception { - int resp = Messagebox.show( - Labels.getLabel("editarConexionController.MSG.borrarConexionPergunta"), - Labels.getLabel("editarConexionController.window.title"), - Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + Conexion conexao = (Conexion) conexionesEditarList.getSelected(); + if (conexao != null) { + int resp = Messagebox.show( + Labels.getLabel("editarConexionController.MSG.borrarConexionPergunta"), + Labels.getLabel("editarConexionController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); - if (resp == Messagebox.YES) { - Conexion conexionDeletar = (Conexion) conexionesEditarList.getSelected(); + if (resp == Messagebox.YES) { - if (conexionDeletar != null) { - // procurando conexions do mesmo grupo e setando acitvo false - List removerLista = new ArrayList(); - for (int i = 0; i < lsConexiones.size(); i++) { - Conexion conexion = lsConexiones.get(i); - if (conexion.getNumgrupo().equals(conexionDeletar.getNumgrupo())) { - conexionService.borrar(conexion); + removerConexoes(conexao.getNumgrupo()); - removerLista.add(i); - } - } + ConexionConf conexionConfRemovida = getConexaoConf(conexao.getNumgrupo()); + conexoesConfRemovidas.add(conexionConfRemovida); + lsConexionesConf.remove(conexionConfRemovida); - // removendo da lista - if (conexionCtrl != null) { - lsConexiones = conexionService.buscarPorConexionCtrl(conexionCtrl.getConexionctrlId()); - conexionesEditarList.setData(lsConexiones); - } else { - lsConexiones = new ArrayList(); - conexionesEditarList.setData(lsConexiones); - } - } else { - Messagebox.show(Labels.getLabel("editarConexionController.MSG.selecionarConexion"), - Labels.getLabel("editarConexionController.window.title"), - Messagebox.OK, Messagebox.INFORMATION); + } + + } else { + Messagebox.show(Labels.getLabel("editarConexionController.MSG.selecionarConexion"), + Labels.getLabel("editarConexionController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } + } + + private void removerConexoes(Integer numgrupo) { + List conexiones = new ArrayList(); + conexiones.addAll(lsConexiones); + + for (Conexion conexion : conexiones) { + if (conexion.getNumgrupo() == numgrupo) { + conexoesRemovidas.add(conexion); + + lsConexiones.remove(conexion); + conexionesEditarList.removeItem(conexion); } } } + private ConexionConf getConexaoConf(Integer numgrupo) { + for (ConexionConf conexionConf : lsConexionesConf) { + if (conexionConf.getGrupo() == numgrupo) { + return conexionConf; + } + } + return null; + } + public void onClick$btnSalvar(Event ev) throws Exception { Parada origem = null; Parada destino = null; @@ -734,6 +749,8 @@ public class EditarConexionController extends MyGenericForwardComposer { } } + apagarConexoesRemovidas(); + Messagebox.show(Labels.getLabel("editarConexionController.MSG.suscribirOK"), Labels.getLabel("editarConexionController.window.title"), Messagebox.OK, Messagebox.INFORMATION); @@ -741,6 +758,18 @@ public class EditarConexionController extends MyGenericForwardComposer { closeWindow(); } + private void apagarConexoesRemovidas() { + for (ConexionConf conexionConf : conexoesConfRemovidas) { + if (conexionConf != null) { + conexionConfService.borrar(conexionConf); + } + } + conexionService.borrar(conexoesRemovidas); + + conexoesRemovidas.clear(); + conexoesConfRemovidas.clear(); + } + public void onClick$btnApagar(Event ev) throws Exception { int resp = Messagebox.show( Labels.getLabel("editarConexionController.MSG.borrarConexionCtrlPergunta"),