/** * @see * es.pode.modificador.presentacion.configurar.cambios.navegarETB.NavegarETBController#prepararSeleccion(org.apache.struts.action.ActionMapping, * es.pode.modificador.presentacion.configurar.cambios.navegarETB.PrepararSeleccionForm, * javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public final void prepararSeleccion( ActionMapping mapping, es.pode.modificador.presentacion.configurar.cambios.navegarETB.PrepararSeleccionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { TaxonomiaVO taxonomia = new TaxonomiaVO(); taxonomia.setTaxonPath(null); taxonomia.setIdioma(this.getTesauroSession(request).getTaxonomia().getIdioma()); JerarquiaVO[] jerarquia = this.getTesauroSession(request).getTaxonomia().getJerarquia(); // Componemos un array de taxones con las rutas padres TaxonVO[] hijos = componerRutasDisponibles(jerarquia); taxonomia.setHijos(hijos); form.setTaxonomia(taxonomia); form.setIdiomaBuscadorBackingList( IdiomasBuscadorSingleton.getInstance().obtenerIdiomas(LdapUserDetailsUtils.getIdioma()), "idLocalizacion", "nombre"); }
/** * @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"); }