@Override public void actionPerformed(ActionEvent e) { try { boolean status = false; final String nombreCapa = e.getActionCommand(); for (Layer l : getAllLayers()) { if (l.name.indexOf(nombreCapa) == 0) { l.visible = !l.visible; status = l.visible; updateMarkers(); } } // vehiculos_visibles // personas_visibles // incidencias_visibles String capa_incidences = Internacionalization.getString("Incidences.incidences"); String capa_vehiculos = Internacionalization.getString("Resources.resources.vehicles"); String capa_people = Internacionalization.getString("Resources.resources.people"); Usuario u = UsuarioConsultas.find(Authentication.getUsuario().getNombreUsuario()); if (u != null) { if (nombreCapa.equalsIgnoreCase(capa_incidences)) u.setIncidenciasVisibles(status); else if (nombreCapa.equalsIgnoreCase(capa_vehiculos)) u.setVehiculosVisibles(status); else if (nombreCapa.equalsIgnoreCase(capa_people)) u.setPersonasVisibles(status); UsuarioAdmin.saveOrUpdate(u); } } catch (Throwable t) { log.error("Error actualizando el estado de la capa", t); } }
@Transactional( propagation = Propagation.REQUIRES_NEW, readOnly = false, rollbackFor = Throwable.class) public boolean saveOrUpdate(Incidencia p) { if (p == null) return false; Incidencia entity = null; try { Session currentSession = getSession(); if (p.getId() != null && this.get(p.getId()) != null) entity = get(p.getId()); if (entity == null) entity = p; else { if (p.getCategoria() != null) try { entity.setCategoria( (CategoriaIncidencia) super.getSession().get(CategoriaIncidencia.class, p.getCategoria().getId())); } catch (Throwable t) { log.error("Categoria desconocida", t); } else entity.setCategoria(null); if (p.getCreador() != null) entity.setCreador(UsuarioConsultas.find(p.getCreador().getNombreUsuario())); else entity.setCreador(null); entity.setDescripcion(p.getDescripcion()); if (p.getEstado() != null) try { entity.setEstado( (EstadoIncidencia) super.getSession().get(EstadoIncidencia.class, p.getEstado().getId())); } catch (Throwable t) { log.error("Estado desconocido", t); } else entity.setEstado(null); entity.setFechaCierre(p.getFechaCierre()); entity.setFechaCreacion(p.getFechaCreacion()); entity.setGeometria(p.getGeometria()); entity.setPrioridad(p.getPrioridad()); entity.setTitulo(p.getTitulo()); } currentSession.saveOrUpdate(entity); } catch (Throwable t) { log.error("Error al guardar una incidencia: " + p, t); return false; } return true; }