/** * @see * es.pode.modificador.presentacion.configurar.cambios.navegarETB.NavegarETBController#selectActionRutas(org.apache.struts.action.ActionMapping, * es.pode.modificador.presentacion.configurar.cambios.navegarETB.SelectActionRutasForm, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public final java.lang.String selectActionRutas( ActionMapping mapping, es.pode.modificador.presentacion.configurar.cambios.navegarETB.SelectActionRutasForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String result = null; String posicion = form.getPosicion(); String idTermino = form.getIdTermino(); String action = form.getAction(); if (logger.isDebugEnabled()) logger.debug("selectActionRutas con idTermino = " + idTermino + " : posicion = " + posicion); if (resources .getMessage( (Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE), "tesauro.seleccionar.ruta.padre.aceptar") .equals(action)) { // Modifico el objeto en sesion para que quede con la ruta padre elegida TaxonomiaVO taxonomia = this.getTesauroSession(request).getTaxonomia(); JerarquiaVO[] jerarquia = taxonomia.getJerarquia(); taxonomia.setJerarquia(null); int iPosicion = Integer.parseInt(posicion); TaxonVO[] taxonPath = jerarquia[iPosicion].getJerarquia(); taxonomia.setTaxonPath(taxonPath); this.getTesauroSession(request).setTaxonomia(taxonomia); result = "Aceptar"; } else { result = "Cancelar"; } return result; }
/** * @see * es.pode.modificador.presentacion.configurar.cambios.navegarETB.NavegarETBController#comprobarJerarquias(org.apache.struts.action.ActionMapping, * es.pode.modificador.presentacion.configurar.cambios.navegarETB.ComprobarJerarquiasForm, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public final java.lang.String comprobarJerarquias( ActionMapping mapping, es.pode.modificador.presentacion.configurar.cambios.navegarETB.ComprobarJerarquiasForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Comprobar si el nodo seleccionado tiene varias rutas padre String result = null; TaxonomiaVO taxonomia = this.getTesauroSession(request).getTaxonomia(); if (taxonomia != null && taxonomia.getJerarquia() != null && taxonomia.getJerarquia().length > 1) { // Varios padres disponibles result = "VariosPadres"; } else { result = "UnPadre"; } return result; }
/** * @see * es.pode.modificador.presentacion.configurar.cambios.navegarETB.NavegarETBController#navegarETB(org.apache.struts.action.ActionMapping, * es.pode.modificador.presentacion.configurar.cambios.navegarETB.NavegarETBForm, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public final void navegarETB( ActionMapping mapping, es.pode.modificador.presentacion.configurar.cambios.navegarETB.NavegarETBForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { /* * Se contemplan tres casos: * - idTermino != "0.0" y taxonomiaSession.taxonomia.jerarquia==null: Navegacion normal * - idTermino != "0.0" y taxonomiaSession.taxonomia.jerarquia!=null y taxonomiaSession.taxonomia.taxonPath == null: Seleccion de ruta padre * - idTermino == "0.0": preparar la seleccion de ruta padre */ String idTermino = form.getIdTermino(); TaxonomiaVO taxonomiaSession = this.getTesauroSession(request).getTaxonomia(); if (logger.isDebugEnabled()) logger.debug( "NavegarTesauro con parametros idTermino = " + idTermino + " y taxonomia (session) = " + taxonomiaSession); TaxonomiaVO taxonomia = null; if ("0.0".equals(idTermino)) { if (taxonomiaSession == null) throw new ValidatorException("Error de sesion: tesauroSession == null"); form.setIdTermino(null); taxonomia = new TaxonomiaVO(); taxonomia.setTaxonPath(null); TaxonVO[] rutasDisponibles = componerRutasDisponibles(taxonomiaSession.getJerarquia()); taxonomia.setHijos(rutasDisponibles); taxonomia.setIdioma(taxonomiaSession.getIdioma()); taxonomia.setNombreTaxonomia(taxonomiaSession.getNombreTaxonomia()); taxonomia.setTaxonomias(taxonomiaSession.getTaxonomias()); taxonomia.setJerarquia(taxonomiaSession.getJerarquia()); } else { if (taxonomiaSession != null && taxonomiaSession.getJerarquia() != null && taxonomiaSession.getTaxonPath() == null) { // Seleccion de ruta padre entre disponibles: idTermino es la posicion en el array de // jerarquia int posicion = Integer.parseInt(idTermino); if (logger.isDebugEnabled()) logger.debug("Elegida la ruta " + posicion + " de las rutas padres disponibles"); TaxonVO[] rutaElegida = taxonomiaSession.getJerarquia()[posicion].getJerarquia(); String idRecuperar = rutaElegida[rutaElegida.length - 1].getId(); taxonomia = this.getSrvHerramientaModificacion() .navegarTesauro(idRecuperar, null, LdapUserDetailsUtils.getIdioma()); taxonomia.setTaxonPath(rutaElegida); taxonomia.setJerarquia(null); } else { // Navegacion normal taxonomia = this.getSrvHerramientaModificacion() .navegarTesauro(idTermino, null, LdapUserDetailsUtils.getIdioma()); } } // Compruebo el codigo 0.0 en el el primer taxon de taxonPath. Si lo encuentro, lo sustituyo por // el mensaje i18n correspondiente. if (taxonomia.getTaxonPath() != null && taxonomia.getTaxonPath()[0].getValorTax().equals("0.0")) { taxonomia.getTaxonPath()[0].setValorTax( resources.getMessage( (Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE), "tesauros.varias.rutas")); } this.getTesauroSession(request).setTaxonomia(taxonomia); form.setTaxonomia(taxonomia); form.setIdTermino(form.getIdTermino()); form.setIdiomaBuscadorBackingList( IdiomasBuscadorSingleton.getInstance().obtenerIdiomas(LdapUserDetailsUtils.getIdioma()), "idLocalizacion", "nombre"); }