ApiHelper.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.web.ctrlstat.servlet.apc.api;
- import java.text.MessageFormat;
- import java.util.ArrayList;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import org.apache.commons.lang.StringEscapeUtils;
- import org.apache.commons.lang.StringUtils;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import org.openspcoop2.core.commons.Filtri;
- import org.openspcoop2.core.commons.ISearch;
- import org.openspcoop2.core.commons.Liste;
- import org.openspcoop2.core.commons.SearchUtils;
- import org.openspcoop2.core.config.CanaleConfigurazione;
- import org.openspcoop2.core.config.CanaliConfigurazione;
- import org.openspcoop2.core.config.constants.StatoFunzionalita;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.GruppiAccordo;
- import org.openspcoop2.core.registry.GruppoAccordo;
- import org.openspcoop2.core.registry.PortType;
- import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
- import org.openspcoop2.core.registry.beans.GruppoSintetico;
- import org.openspcoop2.core.registry.driver.BeanUtilities;
- import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
- import org.openspcoop2.message.constants.ServiceBinding;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.protocol.manifest.constants.InterfaceType;
- import org.openspcoop2.protocol.sdk.IProtocolFactory;
- import org.openspcoop2.protocol.sdk.ProtocolException;
- import org.openspcoop2.protocol.sdk.constants.ArchiveType;
- import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
- import org.openspcoop2.protocol.sdk.properties.ConsoleConfiguration;
- import org.openspcoop2.protocol.sdk.properties.IConsoleDynamicConfiguration;
- import org.openspcoop2.protocol.sdk.registry.IConfigIntegrationReader;
- import org.openspcoop2.protocol.sdk.registry.IRegistryReader;
- import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
- import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
- import org.openspcoop2.web.ctrlstat.costanti.InUsoType;
- import org.openspcoop2.web.ctrlstat.driver.DriverControlStationException;
- import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneHelper;
- import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneUtilities;
- import org.openspcoop2.web.ctrlstat.servlet.archivi.ArchiviCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.archivi.ExporterUtils;
- import org.openspcoop2.web.ctrlstat.servlet.protocol_properties.ProtocolPropertiesCostanti;
- import org.openspcoop2.web.lib.mvc.AreaBottoni;
- import org.openspcoop2.web.lib.mvc.CheckboxStatusType;
- import org.openspcoop2.web.lib.mvc.Costanti;
- import org.openspcoop2.web.lib.mvc.DataElement;
- import org.openspcoop2.web.lib.mvc.DataElementImage;
- import org.openspcoop2.web.lib.mvc.DataElementType;
- import org.openspcoop2.web.lib.mvc.ForwardParams;
- import org.openspcoop2.web.lib.mvc.GeneralData;
- import org.openspcoop2.web.lib.mvc.PageData;
- import org.openspcoop2.web.lib.mvc.Parameter;
- import org.openspcoop2.web.lib.mvc.ServletUtils;
- import org.openspcoop2.web.lib.mvc.TargetType;
- import org.openspcoop2.web.lib.mvc.TipoOperazione;
- /**
- * ApiHelper
- *
- * @author Giuliano Pintori (pintori@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class ApiHelper extends AccordiServizioParteComuneHelper {
- public ApiHelper(HttpServletRequest request, PageData pd, HttpSession session) throws Exception {
- super(request, pd, session);
- }
- public void prepareApiList(List<AccordoServizioParteComuneSintetico> lista, ISearch ricerca, String tipoAccordo) throws DriverControlStationException {
- try {
- if(lista==null) {
- throw new DriverControlStationException("Param lista is null");
- }
-
- ServletUtils.addListElementIntoSession(this.request, this.session, ApiCostanti.OBJECT_NAME_APC_API,
- new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO, tipoAccordo));
-
- ServletUtils.setObjectIntoSession(this.request, this.session, Boolean.valueOf(true), ApiCostanti.SESSION_ATTRIBUTE_VISTA_APC_API);
-
- this.pd.setCustomListViewName(ApiCostanti.APC_API_NOME_VISTA_CUSTOM_LISTA_API);
-
- boolean showProtocolli = this.core.countProtocolli(this.request, this.session)>1;
- boolean showServiceBinding = true;
- boolean showResources = true;
- boolean showServices = true;
- if( !showProtocolli ) {
- List<String> l = this.core.getProtocolli(this.request, this.session);
- if(!l.isEmpty()) {
- IProtocolFactory<?> p = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(l.get(0));
- if(p.getManifest().getBinding().getRest()==null) {
- showResources=false;
- }
- if(p.getManifest().getBinding().getSoap()==null) {
- showServices=false;
- }
- if( (!showResources) || (!showServices) ) {
- showServiceBinding = false;
- }
- }
- }
-
- int idLista = Liste.ACCORDI;
- int limit = ricerca.getPageSize(idLista);
- int offset = ricerca.getIndexIniziale(idLista);
- String search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
-
- String filterProtocol = addFilterProtocol(ricerca, idLista, true);
-
- String protocolloS = filterProtocol;
- if(protocolloS==null) {
- // significa che e' stato selezionato un protocollo nel menu in alto a destra
- List<String> protocolli = this.core.getProtocolli(this.request, this.session);
- if(protocolli!=null && protocolli.size()==1) {
- protocolloS = protocolli.get(0);
- }
- }
- // filtri MODIPA da visualizzare solo se non e' stato selezionato un protocollo in alto a dx (opzione pilota da file di proprieta')
- // oppure e' selezionato MODIPA
- // oppure non e' stato selezionato un protocollo in alto e nessun protocollo nei filtri (opzione pilota da file di proprieta')
- // oppure MODIPA nei filtri
- boolean profiloModipaSelezionato = false;
- // solo se il protocollo modipa e' caricato faccio la verifica
- if(this.core.getProtocolli().contains(CostantiControlStation.DEFAULT_VALUE_PARAMETRO_PROTOCOLLO_MODIPA)) {
- List<String> profiloModipaSelezionatoOpzioniAccettate = new ArrayList<>();
- profiloModipaSelezionatoOpzioniAccettate.add(CostantiControlStation.DEFAULT_VALUE_PARAMETRO_PROTOCOLLO_MODIPA);
- if(this.core.isModipaFiltroRicercaProfiloQualsiasiVisualizzaDatiModi()) {
- profiloModipaSelezionatoOpzioniAccettate.add(CostantiControlStation.DEFAULT_VALUE_PARAMETRO_PROTOCOLLO_QUALSIASI);
- }
- if( (filterProtocol!=null && profiloModipaSelezionatoOpzioniAccettate.contains(filterProtocol))
- ||
- (filterProtocol==null && protocolloS!=null && profiloModipaSelezionatoOpzioniAccettate.contains(protocolloS))
- ) {
- profiloModipaSelezionato = true;
- }
- }
-
- String filterTipoAccordo = null;
- if(showServiceBinding) {
- filterTipoAccordo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_SERVICE_BINDING);
- boolean postBackServiceBinding = profiloModipaSelezionato; // serve per pilotare la label sulla sicurezza messaggio
- this.addFilterServiceBinding(filterTipoAccordo,postBackServiceBinding,false);
- }
-
- String filterGruppo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_GRUPPO);
- addFilterGruppo(filterProtocol, filterGruppo, false);
-
- CanaliConfigurazione canali = this.confCore.getCanaliConfigurazione(false);
- if(canali!=null && StatoFunzionalita.ABILITATO.equals(canali.getStato())) {
- String filterCanale = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CANALE);
- addFilterCanale(canali, filterCanale, false);
- }
-
- if(this.isShowGestioneWorkflowStatoDocumenti() &&
- this.core.isGestioneWorkflowStatoDocumentiVisualizzaStatoLista()) {
- String filterStatoAccordo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_STATO_ACCORDO);
- this.addFilterStatoAccordo(filterStatoAccordo,false);
- }
-
-
- // **** filtro modi ****
-
- if(profiloModipaSelezionato) {
- this.addFilterSubtitle(CostantiControlStation.NAME_SUBTITLE_FILTRI_MODIPA, CostantiControlStation.LABEL_SUBTITLE_FILTRI_MODIPA, false);
-
- // filtro sicurezza canale
- this.addFilterModISicurezzaCanale(ricerca, idLista);
-
- // filtro sicurezza messaggio
- this.addFilterModISicurezzaMessaggio(ricerca, idLista, filterTipoAccordo);
-
- // filtro sorgente token
- this.addFilterModIGenerazioneToken(ricerca, idLista);
-
- // filtro digest richiesta
- this.addFilterModIDigestRichiesta(ricerca, idLista);
-
- // filtro ifo utente
- this.addFilterModIInfoUtente(ricerca, idLista);
-
- // imposto apertura sezione
- this.impostaAperturaSubtitle(CostantiControlStation.NAME_SUBTITLE_FILTRI_MODIPA);
- }
-
- // **** fine filtro modi ****
-
-
- this.pd.setIndex(offset);
- this.pd.setPageSize(limit);
- this.pd.setNumEntries(ricerca.getNumEntries(idLista));
- String termine = AccordiServizioParteComuneUtilities.getTerminologiaAccordoServizio(tipoAccordo);
-
- // setto la barra del titolo
- this.pd.setSearchLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_NOME);
- if (search.equals("")) {
- this.pd.setSearchDescription("");
- ServletUtils.setPageDataTitle(this.pd,
- new Parameter(termine, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_LIST));
- }
- else{
- ServletUtils.setPageDataTitle(this.pd,
- new Parameter(termine, AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_LIST),
- new Parameter(Costanti.PAGE_DATA_TITLE_LABEL_RISULTATI_RICERCA, null));
- }
- // controllo eventuali risultati ricerca
- if (!search.equals("")) {
- ServletUtils.enabledPageDataSearch(this.pd, termine, search);
- }
-
- List<String> labelLst = new ArrayList<>();
- labelLst.add("");//AccordiServizioParteComuneCostanti.LABEL_APC_STATO); // colonna stato
- labelLst.add(termine);
-
- String [] labels = labelLst.toArray(new String[labelLst.size()]);
- this.pd.setLabels(labels);
- // preparo i dati
- List<List<DataElement>> dati = new ArrayList<>();
-
- // colleziono i tags registrati
- List<String> tagsDisponibili = this.gruppiCore.getAllGruppiOrdinatiPerDataRegistrazione();
-
- // configurazione dei canali
- CanaliConfigurazione gestioneCanali = this.confCore.getCanaliConfigurazione(false);
- boolean gestioneCanaliEnabled = gestioneCanali != null && org.openspcoop2.core.config.constants.StatoFunzionalita.ABILITATO.equals(gestioneCanali.getStato());
- List<CanaleConfigurazione> canaleList = gestioneCanali != null ? gestioneCanali.getCanaleList() : new ArrayList<>();
- CanaleConfigurazione canaleConfigurazioneDefault = null;
- if(gestioneCanaliEnabled) {
- canaleConfigurazioneDefault = getCanaleDefault(canaleList);
- }
- for (int i = 0; i < lista.size(); i++) {
- List<DataElement> e = new ArrayList<>();
- AccordoServizioParteComuneSintetico accordoServizio = lista.get(i);
-
- Parameter pIdAccordo = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID, accordoServizio.getId()+"");
- Parameter pNomeAccordo = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_NOME, accordoServizio.getNome());
- Parameter pTipoAccordo = AccordiServizioParteComuneUtilities.getParametroAccordoServizio(tipoAccordo);
-
- ServiceBinding serviceBinding = this.apcCore.toMessageServiceBinding(accordoServizio.getServiceBinding());
-
- String protocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(accordoServizio.getSoggettoReferente().getTipo());
-
- // SCHEMA Assegnazione dati -> DataElement:
- // Data Element 1. colonna 1, riga superiore: Titolo Api
- // Data Element 2. colonna 1, riga inferiore: Metadati Api
-
- // Titolo API
- DataElement de = new DataElement();
- de.setType(DataElementType.TITLE);
- de.setUrl(ApiCostanti.SERVLET_NAME_APC_API_CHANGE, pIdAccordo, pNomeAccordo , pTipoAccordo);
- IDAccordo idAccordo = this.idAccordoFactory.getIDAccordoFromAccordo(accordoServizio);
- String labelAccordo = getLabelIdAccordo(protocollo, idAccordo);
- de.setValue(labelAccordo);
- de.setIdToRemove("" + accordoServizio.getId());
- e.add(de);
-
- // Metadati Servizio
- de = new DataElement();
- String labelServiceBinding = null;
- switch (serviceBinding) {
- case REST:
- labelServiceBinding= CostantiControlStation.LABEL_PARAMETRO_SERVICE_BINDING_REST;
- break;
- case SOAP:
- default:
- labelServiceBinding= CostantiControlStation.LABEL_PARAMETRO_SERVICE_BINDING_SOAP;
- break;
- }
- InterfaceType interfaceType = this.apcCore.formatoSpecifica2InterfaceType(accordoServizio.getFormatoSpecifica());
- labelServiceBinding = labelServiceBinding + " " + this.getLabelWSDLFromFormatoSpecifica(interfaceType);
-
- if(gestioneCanaliEnabled) {
- String labelCanale = accordoServizio.getCanale();
- if(labelCanale == null) { // default
- labelCanale = canaleConfigurazioneDefault.getNome();
- }
-
- if(showProtocolli) {
- String labelProtocollo =this.getLabelProtocollo(protocollo);
- de.setValue(MessageFormat.format(ApiCostanti.MESSAGE_METADATI_APC_API_CON_CANALE_CON_PROFILO, labelServiceBinding, labelCanale, labelProtocollo));
- } else {
- de.setValue(MessageFormat.format(ApiCostanti.MESSAGE_METADATI_APC_API_LIST_CON_CANALE, labelServiceBinding, labelCanale));
- }
- } else {
- if(showProtocolli) {
- String labelProtocollo =this.getLabelProtocollo(protocollo);
- de.setValue(MessageFormat.format(ApiCostanti.MESSAGE_METADATI_APC_API_CON_PROFILO, labelServiceBinding, labelProtocollo));
- } else {
- de.setValue(MessageFormat.format(ApiCostanti.MESSAGE_METADATI_APC_API_LIST, labelServiceBinding));
- }
- }
-
- de.setType(DataElementType.SUBTITLE);
- e.add(de);
-
- de = new DataElement();
- de.setName(ApiCostanti.APC_API_PARAMETRO_STATO_SERVIZI);
- de.setType(DataElementType.CHECKBOX);
-
- // controllo stato dell'API
- ConsoleSearch searchForCount = new ConsoleSearch(true);
- switch (serviceBinding) {
- case REST:
- // caso REST: l'API e' abilitata se ha almeno una risorsa
-
- this.apcCore.accordiResourceList(accordoServizio.getId().intValue(), searchForCount);
- int numRisorse = searchForCount.getNumEntries(Liste.ACCORDI_API_RESOURCES);
-
- if(numRisorse > 0) {
- de.setStatusType(CheckboxStatusType.ABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_RISORSE_TUTTE_ABILITATE_TOOLTIP);
- } else {
- de.setStatusType(CheckboxStatusType.DISABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_RISORSE_TUTTE_DISABILITATE_TOOLTIP);
- }
- break;
- case SOAP:
- default:
- List<PortType> accordiPorttypeList = this.apcCore.accordiPorttypeList(accordoServizio.getId().intValue(), searchForCount);
- int numeroTotaleServizi = accordiPorttypeList.size();
- int numeroServiziAbilitati = 0;
-
- for (PortType portType : accordiPorttypeList) {
- if(portType.sizeAzioneList()>0) {
- numeroServiziAbilitati ++;
- }
- }
-
- if(numeroTotaleServizi == 0) {
- de.setStatusType(CheckboxStatusType.DISABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_TUTTI_DISABILITATI_TOOLTIP);
- }
- else if(numeroServiziAbilitati==0) {
- de.setStatusType(CheckboxStatusType.DISABILITATO);
- if(numeroTotaleServizi==1) {
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZIO_PARZIALMENTE_CONFIGURATO_DISABILITATI_TOOLTIP);
- }
- else {
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_TUTTI_SENZA_AZIONE_TOOLTIP);
- }
- }
- else if(numeroServiziAbilitati == numeroTotaleServizi) {
- de.setStatusType(CheckboxStatusType.ABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_TUTTI_ABILITATI_TOOLTIP);
- }
- else {
- de.setStatusType(CheckboxStatusType.WARNING_ONLY);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_PARZIALMENTE_ABILITATI_TOOLTIP);
- }
- break;
- }
-
- de.setWidthPx(16);
- e.add(de);
-
- // tags
- List<GruppoSintetico> gruppo = accordoServizio.getGruppo();
- if(gruppo != null && !gruppo.isEmpty()) {
- for (int j = 0; j < gruppo.size(); j++) {
- GruppoSintetico gruppoSintetico = gruppo.get(j);
- de = new DataElement();
- de.setName(ApiCostanti.PARAMETRO_APC_API_GESTIONE_GRUPPO + "_" + j);
- de.setType(DataElementType.BUTTON);
- de.setLabel(gruppoSintetico.getNome());
-
- int indexOf = tagsDisponibili.indexOf(gruppoSintetico.getNome());
- if(indexOf == -1)
- indexOf = 0;
-
- indexOf = indexOf % CostantiControlStation.NUMERO_GRUPPI_CSS;
-
- de.setStyleClass("label-info-"+indexOf);
-
- e.add(de);
- }
- }
-
- // In Uso Button
- this.addInUsoButton(e, labelAccordo, accordoServizio.getId()+"", InUsoType.ACCORDO_SERVIZIO_PARTE_COMUNE);
-
- // se e' abilitata l'opzione reset cache per elemento, visualizzo il comando nell'elenco dei comandi disponibili nella lista
- if(this.core.isElenchiVisualizzaComandoResetCacheSingoloElemento()){
-
- List<Parameter> listaParametriChange = new ArrayList<>();
- listaParametriChange.add(pIdAccordo);
- listaParametriChange.add(pNomeAccordo);
- listaParametriChange.add(pTipoAccordo);
-
- this.addComandoResetCacheButton(e, labelAccordo, ApiCostanti.SERVLET_NAME_APC_API_CHANGE, listaParametriChange);
- }
- // Proprieta Button
- if(this.existsProprietaOggetto(accordoServizio.getProprietaOggetto(), accordoServizio.getDescrizione())) {
- this.addProprietaOggettoButton(e, labelAccordo, accordoServizio.getId()+"", InUsoType.ACCORDO_SERVIZIO_PARTE_COMUNE);
- }
-
- // aggiungo entry
- dati.add(e);
- }
- this.pd.setDati(dati);
- this.pd.setAddButton(true);
- // preparo bottoni
- if(lista!=null && !lista.isEmpty() &&
- this.core.isShowPulsantiImportExport()) {
- ExporterUtils exporterUtils = new ExporterUtils(this.archiviCore);
- boolean exists = false;
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipoAccordo)){
- exists = exporterUtils.existsAtLeastOneExportMode(ArchiveType.ACCORDO_SERVIZIO_PARTE_COMUNE, this.request, this.session);
- }
- else{
- exists = exporterUtils.existsAtLeastOneExportMode(ArchiveType.ACCORDO_SERVIZIO_COMPOSTO, this.request, this.session);
- }
- if(exists){
- List<AreaBottoni> bottoni = new ArrayList<>();
- AreaBottoni ab = new AreaBottoni();
- List<DataElement> otherbott = new ArrayList<>();
- DataElement de = new DataElement();
- de.setValue(AccordiServizioParteComuneCostanti.LABEL_APC_ESPORTA_SELEZIONATI);
- if(AccordiServizioParteComuneCostanti.PARAMETRO_VALORE_APC_TIPO_ACCORDO_PARTE_COMUNE.equals(tipoAccordo)){
- de.setOnClick(AccordiServizioParteComuneCostanti.LABEL_APC_ESPORTA_SELEZIONATI_ONCLICK);
- }
- else{
- de.setOnClick(AccordiServizioParteComuneCostanti.LABEL_ASC_ESPORTA_SELEZIONATI_ONCLICK);
- }
- de.setDisabilitaAjaxStatus();
- otherbott.add(de);
- ab.setBottoni(otherbott);
- bottoni.add(ab);
- this.pd.setAreaBottoni(bottoni);
- }
- }
- } catch (Exception e) {
- this.logError("Exception: " + e.getMessage(), e);
- throw new DriverControlStationException(e);
- }
- }
- public void prepareApiChange(TipoOperazione tipoOp, AccordoServizioParteComune as) throws DriverControlStationException, DriverRegistroServiziException, ProtocolException, DriverConfigurazioneException, DriverConfigurazioneNotFound {
-
- String tipoAccordo = this.getParameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO);
- Parameter pTipoAccordo = AccordiServizioParteComuneUtilities.getParametroAccordoServizio(tipoAccordo);
-
- IDAccordo idAccordoOLD = this.idAccordoFactory.getIDAccordoFromValues(as.getNome(),BeanUtilities.getSoggettoReferenteID(as.getSoggettoReferente()),as.getVersione());
- String tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(as.getSoggettoReferente().getTipo());
- String labelASTitle = this.getLabelIdAccordo(tipoProtocollo, idAccordoOLD);
-
- ServletUtils.setObjectIntoSession(this.request, this.session, Boolean.valueOf(true), ApiCostanti.SESSION_ATTRIBUTE_VISTA_APC_API);
-
- // setto la barra del titolo
- List<Parameter> lstParm = new ArrayList<>();
- String termine = AccordiServizioParteComuneUtilities.getTerminologiaAccordoServizio(tipoAccordo);
- lstParm.add(new Parameter(termine, ApiCostanti.SERVLET_NAME_APC_API_LIST,pTipoAccordo));
- lstParm.add(new Parameter(labelASTitle, null));
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(this.pd, lstParm);
-
- // Preparo il menu
- this.makeMenu();
-
- List<List<DataElement>> datiPagina = new ArrayList<>();
- List<DataElement> dati = new ArrayList<>();
- datiPagina.add(dati);
- dati.add(ServletUtils.getDataElementForEditModeFinished());
-
- ServiceBinding serviceBinding = this.apcCore.toMessageServiceBinding(as.getServiceBinding());
-
- datiPagina = this.addApiToDati(datiPagina, tipoOp, as, tipoAccordo, tipoProtocollo, serviceBinding);
-
- this.pd.setDati(datiPagina);
- this.pd.disableEditMode();
- }
-
- public ActionForward prepareApiResetCache(ActionMapping mapping, GeneralData gd,
- TipoOperazione tipoOp, AccordoServizioParteComune as) throws Exception{
-
- String tipoAccordo = this.getParameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_ACCORDO);
- Parameter pTipoAccordo = AccordiServizioParteComuneUtilities.getParametroAccordoServizio(tipoAccordo);
-
- IDAccordo idAccordoOLD = this.idAccordoFactory.getIDAccordoFromValues(as.getNome(),BeanUtilities.getSoggettoReferenteID(as.getSoggettoReferente()),as.getVersione());
- String tipoProtocollo = this.soggettiCore.getProtocolloAssociatoTipoSoggetto(as.getSoggettoReferente().getTipo());
- String labelASTitle = this.getLabelIdAccordo(tipoProtocollo, idAccordoOLD);
-
- ServletUtils.setObjectIntoSession(this.request, this.session, Boolean.valueOf(true), ApiCostanti.SESSION_ATTRIBUTE_VISTA_APC_API);
-
- String userLogin = ServletUtils.getUserLoginFromSession(this.session);
-
- // setto la barra del titolo
- List<Parameter> lstParm = new ArrayList<>();
- String termine = AccordiServizioParteComuneUtilities.getTerminologiaAccordoServizio(tipoAccordo);
- lstParm.add(new Parameter(termine, ApiCostanti.SERVLET_NAME_APC_API_LIST,pTipoAccordo));
- lstParm.add(new Parameter(labelASTitle, null));
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(this.pd, lstParm);
-
- // Preparo il menu
- this.makeMenu();
-
- // Uso lo stessoAlias
- List<String> aliases = this.apcCore.getJmxPdDAliases();
- String alias = null;
- if(aliases!=null && !aliases.isEmpty()) {
- alias = aliases.get(0);
- }
- this.apcCore.invokeJmxMethodAllNodesAndSetResult(this.pd, this.apcCore.getJmxPdDConfigurazioneSistemaNomeRisorsaConfigurazionePdD(alias),
- this.apcCore.getJmxPdDConfigurazioneSistemaNomeMetodoRipulisciRiferimentiCacheApi(alias),
- MessageFormat.format(CostantiControlStation.LABEL_ELIMINATO_CACHE_SUCCESSO,labelASTitle),
- MessageFormat.format(CostantiControlStation.LABEL_ELIMINATO_CACHE_FALLITO_PREFIX,labelASTitle),
- as.getId());
-
- String resetElementoCacheS = this.getParameter(CostantiControlStation.PARAMETRO_ELIMINA_ELEMENTO_DALLA_CACHE);
- boolean resetElementoCache = ServletUtils.isCheckBoxEnabled(resetElementoCacheS);
-
- // reset delle cache richiesto dal link nella lista, torno alla lista
- if(resetElementoCache) {
- // preparo lista
- ConsoleSearch ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(this.request, this.session, ConsoleSearch.class);
-
- int idLista = Liste.ACCORDI;
-
- // poiche' esistono filtri che hanno necessita di postback salvo in sessione
- List<AccordoServizioParteComuneSintetico> lista = null;
- if(this.apcCore.isRegistroServiziLocale() &&
- !ServletUtils.isSearchDone(this)) {
- lista = ServletUtils.getRisultatiRicercaFromSession(this.request, this.session, idLista, AccordoServizioParteComuneSintetico.class);
- }
- ricerca = this.checkSearchParameters(idLista, ricerca);
-
- if(lista==null) {
- lista = AccordiServizioParteComuneUtilities.accordiList(this.apcCore, userLogin, ricerca, tipoAccordo);
- }
- if(!this.isPostBackFilterElement()) {
- ServletUtils.setRisultatiRicercaIntoSession(this.request, this.session, idLista, lista); // salvo poiche' esistono filtri che hanno necessita di postback
- }
-
- this.prepareApiList(lista, ricerca, tipoAccordo);
- // salvo l'oggetto ricerca nella sessione
- ServletUtils.setSearchObjectIntoSession(this.request, this.session, ricerca);
-
- ServletUtils.setGeneralAndPageDataIntoSession(this.request, this.session, gd, this.pd);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, ApiCostanti.OBJECT_NAME_APC_API, CostantiControlStation.TIPO_OPERAZIONE_RESET_CACHE_ELEMENTO);
- } else { // reset richiesto dal dettaglio, torno al dettaglio
- this.prepareApiChange(tipoOp, as);
- ServletUtils.setGeneralAndPageDataIntoSession(this.request, this.session, gd, this.pd);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, ApiCostanti.OBJECT_NAME_APC_API, ForwardParams.CHANGE());
- }
- }
- private List<List<DataElement>> addApiToDati(List<List<DataElement>> datiPagina, TipoOperazione tipoOp,
- AccordoServizioParteComune as, String tipoAccordo, String tipoProtocollo, ServiceBinding serviceBinding) throws DriverRegistroServiziException, DriverControlStationException, ProtocolException, DriverConfigurazioneException, DriverConfigurazioneNotFound {
-
- if(tipoOp!=null) {
- // nop
- }
-
- this.pd.setCustomListViewName(ApiCostanti.APC_API_NOME_VISTA_CUSTOM_FORM_API);
-
- Parameter pIdAccordo = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ID, as.getId()+"");
- Parameter pNomeAccordo = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_NOME, as.getNome());
- Parameter pTipoAccordo = AccordiServizioParteComuneUtilities.getParametroAccordoServizio(tipoAccordo);
-
- IDAccordo idAccordo = this.idAccordoFactory.getIDAccordoFromAccordo(as);
- String labelAccordo = getLabelIdAccordo(tipoProtocollo, idAccordo);
- boolean showProtocolli = this.core.countProtocolli(this.request, this.session)>1;
- // sezione 1 riepilogo
- // nome accordo + link edit
- // nome soggetto referente + link edit
- // tipo interfaccia + link wsdl change + link download
- List<DataElement> dati = datiPagina.get(0);
-
- List<Parameter> listParametersApi = new ArrayList<>();
- listParametersApi.add(new Parameter(ApiCostanti.PARAMETRO_APC_API_GESTIONE_PARZIALE, "")); // lasciare per primo
- listParametersApi.add(pIdAccordo);
- listParametersApi.add(pNomeAccordo);
- listParametersApi.add(pTipoAccordo);
-
- // In Uso Button
- this.addComandoInUsoButton(labelAccordo, as.getId()+"", InUsoType.ACCORDO_SERVIZIO_PARTE_COMUNE);
- // se e' abilitata l'opzione reset cache per elemento, visualizzo il comando nell'elenco dei comandi disponibili nella lista
- if(this.core.isElenchiVisualizzaComandoResetCacheSingoloElemento()){
- List<Parameter> listaParametriChange = new ArrayList<>();
- listaParametriChange.add(pIdAccordo);
- listaParametriChange.add(pNomeAccordo);
- listaParametriChange.add(pTipoAccordo);
-
- this.pd.addComandoResetCacheElementoButton(ApiCostanti.SERVLET_NAME_APC_API_CHANGE, listaParametriChange);
- }
-
- // Proprieta Button
- if(this.existsProprietaOggetto(as.getProprietaOggetto(), as.getDescrizione())) {
- this.addComandoProprietaOggettoButton(labelAccordo, as.getId()+"", InUsoType.ACCORDO_SERVIZIO_PARTE_COMUNE);
- }
-
- // Titolo API
- DataElement de = new DataElement();
- de.setType(DataElementType.CHECKBOX);
- de.setLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_NOME);
- de.setValue(getLabelIdAccordoSenzaReferente(tipoProtocollo, idAccordo));
- de.setStatusValue(getLabelIdAccordoSenzaReferente(tipoProtocollo, idAccordo));
-
- DataElementImage image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_INFORMAZIONI_GENERALI);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, ApiCostanti.APC_API_LABEL_APS_INFO_GENERALI));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- de.addImage(image);
-
- if(as.getDescrizione()==null || StringUtils.isEmpty(as.getDescrizione())) {
- image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_DESCRIZIONE);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_AGGIUNGI_DESCRIZIONE_TOOLTIP_CON_PARAMETRO, AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_DESCRIZIONE));
- image.setImage(ApiCostanti.APC_API_ICONA_AGGIUNGI_DESCRIZIONE);
- de.addImage(image);
- }
-
- ConsoleSearch searchForCount = new ConsoleSearch(true);
- switch (serviceBinding) {
- case REST:
- // caso REST: l'API e' abilitata se ha almeno una risorsa
-
- this.apcCore.accordiResourceList(as.getId().intValue(), searchForCount);
- int numRisorse = searchForCount.getNumEntries(Liste.ACCORDI_API_RESOURCES);
-
- if(numRisorse > 0) {
- de.setStatusType(CheckboxStatusType.ABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_RISORSE_TUTTE_ABILITATE_TOOLTIP);
- } else {
- de.setStatusType(CheckboxStatusType.DISABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_RISORSE_TUTTE_DISABILITATE_TOOLTIP);
- }
- break;
- case SOAP:
- default:
- List<PortType> accordiPorttypeList = this.apcCore.accordiPorttypeList(as.getId().intValue(), searchForCount);
- int numeroTotaleServizi = accordiPorttypeList.size();
- int numeroServiziAbilitati = 0;
-
- for (PortType portType : accordiPorttypeList) {
- if(portType.sizeAzioneList()>0) {
- numeroServiziAbilitati ++;
- }
- }
-
- if(numeroTotaleServizi == 0) {
- de.setStatusType(CheckboxStatusType.DISABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_TUTTI_DISABILITATI_TOOLTIP);
- }
- else if(numeroServiziAbilitati==0) {
- de.setStatusType(CheckboxStatusType.DISABILITATO);
- if(numeroTotaleServizi==1) {
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZIO_PARZIALMENTE_CONFIGURATO_DISABILITATI_TOOLTIP);
- }
- else {
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_TUTTI_SENZA_AZIONE_TOOLTIP);
- }
- }
- else if(numeroServiziAbilitati == numeroTotaleServizi) {
- de.setStatusType(CheckboxStatusType.ABILITATO);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_TUTTI_ABILITATI_TOOLTIP);
- }
- else {
- de.setStatusType(CheckboxStatusType.WARNING_ONLY);
- de.setStatusToolTip(ApiCostanti.APC_API_ICONA_STATO_SERVIZI_PARZIALMENTE_ABILITATI_TOOLTIP);
- }
- break;
- }
-
- dati.add(de);
-
-
- // soggetto referente
- ProtocolFactoryManager protocolFactoryManager = ProtocolFactoryManager.getInstance();
- IProtocolFactory<?> protocolFactory = protocolFactoryManager.getProtocolFactoryByName(tipoProtocollo);
- boolean supportatoSoggettoReferente = protocolFactory.createProtocolConfiguration().isSupportoSoggettoReferenteAccordiParteComune();
- if(supportatoSoggettoReferente) {
- de = new DataElement();
- de.setLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_REFERENTE);
- de.setValue(this.getLabelNomeSoggetto(tipoProtocollo,as.getSoggettoReferente().getTipo(),as.getSoggettoReferente().getNome()));
- de.setType(DataElementType.TEXT);
- image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_SOGGETTO_REFERENTE);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_REFERENTE));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- de.setImage(image);
- dati.add(de);
- }
-
- // ProtocolProperties
- IConsoleDynamicConfiguration consoleDynamicConfiguration = protocolFactory.createDynamicConfigurationConsole();
- IRegistryReader registryReader = this.apcCore.getRegistryReader(protocolFactory);
- IConfigIntegrationReader configRegistryReader = this.apcCore.getConfigIntegrationReader(protocolFactory);
- ConsoleConfiguration consoleConfiguration = ProtocolPropertiesCostanti.PARAMETRO_VALORE_PP_TIPO_ACCORDO_SERVIZIO_COMPOSTO.equals(tipoAccordo) ?
- consoleDynamicConfiguration.getDynamicConfigAccordoServizioComposto(ConsoleOperationType.CHANGE, this,
- registryReader, configRegistryReader, idAccordo)
- : consoleDynamicConfiguration.getDynamicConfigAccordoServizioParteComune(ConsoleOperationType.CHANGE, this,
- registryReader, configRegistryReader, idAccordo);
- boolean modificaDatiProfilo = false;
- if(consoleConfiguration!=null && consoleConfiguration.getConsoleItem()!=null && !consoleConfiguration.getConsoleItem().isEmpty()) {
- modificaDatiProfilo = true;
- }
- if(showProtocolli || modificaDatiProfilo) {
- de = new DataElement();
- String labelProtocollo =this.getLabelProtocollo(tipoProtocollo);
- de.setLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_PROTOCOLLO);
- de.setValue(labelProtocollo);
- de.setType(DataElementType.TEXT);
-
- if(modificaDatiProfilo) {
- image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_PROFILO);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_PROTOCOLLO));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- de.setImage(image);
- }
-
- dati.add(de);
- }
-
- // interfaccia
- de = new DataElement();
- de.setLabel(ApiCostanti.APC_API_LABEL_PARAMETRO_INTERFACCIA);
- de.setType(DataElementType.TEXT);
-
- String labelServiceBinding = null;
- String tipoWsdl = null;
- String tipologiaDocumentoScaricare = null;
- boolean download = false;
- switch (serviceBinding) {
- case REST:
- labelServiceBinding= CostantiControlStation.LABEL_PARAMETRO_SERVICE_BINDING_REST;
- tipoWsdl = AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_CONCETTUALE;
- tipologiaDocumentoScaricare = ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO_WSDL_CONCETTUALE;
- download = as.getByteWsdlConcettuale()!=null && as.getByteWsdlConcettuale().length>0;
- break;
- case SOAP:
- default:
- labelServiceBinding= CostantiControlStation.LABEL_PARAMETRO_SERVICE_BINDING_SOAP;
- tipoWsdl = AccordiServizioParteComuneCostanti.PARAMETRO_APC_WSDL_EROGATORE;
- tipologiaDocumentoScaricare = ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO_WSDL_LOGICO_EROGATORE;
- download = as.getByteWsdlLogicoErogatore()!=null && as.getByteWsdlLogicoErogatore().length>0;
- break;
- }
-
- InterfaceType interfaceType = this.apcCore.formatoSpecifica2InterfaceType(as.getFormatoSpecifica());
- String labelWsdlCon = this.getLabelWSDLFromFormatoSpecifica(interfaceType);
- StringBuilder sb = new StringBuilder();
- sb.append(labelServiceBinding).append(" ").append(labelWsdlCon);
- de.setValue(sb.toString());
-
- // lista icone a dx
- // wsdl change
- Parameter pNascondiSezioneDownload = new Parameter(ApiCostanti.PARAMETRO_APC_API_GESTIONE_PARZIALE, ApiCostanti.VALORE_PARAMETRO_APC_API_GESTIONE_PARZIALE_WSDL_CHANGE);
- Parameter pTipoWsdl = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_TIPO_WSDL, tipoWsdl);
- List<Parameter> listParametersApiWsdlChange = new ArrayList<>();
- listParametersApiWsdlChange.add(pIdAccordo);
- listParametersApiWsdlChange.add(pTipoAccordo);
- listParametersApiWsdlChange.add(pTipoWsdl);
- listParametersApiWsdlChange.add(pNascondiSezioneDownload);
- image = new DataElementImage();
- if(this.isModalitaStandard()) {
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_WSDL_CHANGE, listParametersApiWsdlChange.toArray(new Parameter[1]));
- }
- else {
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_GESTIONE_SPECIFICA_INTERFACCE);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- }
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, ApiCostanti.APC_API_LABEL_PARAMETRO_INTERFACCIA));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- image.setTarget(TargetType.SELF);
-
- de.addImage(image);
- // download
- if(download) {
- List<Parameter> listParametersApiWsdlDownload = new ArrayList<>();
- Parameter pIdAccordoDownload = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ALLEGATI_ID_ACCORDO, as.getId()+"");
- Parameter pTipoDocumentoDownload = new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO, tipologiaDocumentoScaricare);
- Parameter pTipoAccordoDownload = new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO, ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_ACCORDO_PARTE_COMUNE);
- listParametersApiWsdlDownload.add(pIdAccordoDownload);
- listParametersApiWsdlDownload.add(pTipoDocumentoDownload);
- listParametersApiWsdlDownload.add(pTipoAccordoDownload);
-
- image = new DataElementImage();
- image.setUrl(ArchiviCostanti.SERVLET_NAME_DOCUMENTI_EXPORT, listParametersApiWsdlDownload.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_DOWNLOAD_DOCUMENTO_INTERFACCIA_TOOLTIP_CON_PARAMETRO, ApiCostanti.APC_API_LABEL_PARAMETRO_INTERFACCIA));
- image.setImage(ApiCostanti.APC_API_ICONA_DOWNLOAD_DOCUMENTO_INTERFACCIA);
- image.setTarget(TargetType.SELF);
- image.setDisabilitaAjaxStatus();
-
- de.addImage(image);
- }
- // xsdSchemaCollction
- if(!this.isModalitaStandard()) {
- boolean asWithAllegati = this.asWithAllegatiXsd(as);
- if(asWithAllegati) {
- List<Parameter> listParametersApiWsdlDownload = new ArrayList<>();
- Parameter pIdAccordoDownload = new Parameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_ALLEGATI_ID_ACCORDO, as.getId()+"");
- Parameter pTipoDocumentoDownload = new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO, ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_ACCORDO_TIPO_DOCUMENTO_XSD_SCHEMA_COLLECTION);
- Parameter pTipoAccordoDownload = new Parameter(ArchiviCostanti.PARAMETRO_ARCHIVI_ALLEGATO_TIPO_ACCORDO, ArchiviCostanti.PARAMETRO_VALORE_ARCHIVI_ALLEGATO_TIPO_ACCORDO_PARTE_COMUNE);
- Parameter pApiGestioneParziale = new Parameter(ApiCostanti.PARAMETRO_APC_API_GESTIONE_PARZIALE, ApiCostanti.VALORE_PARAMETRO_APC_API_GESTIONE_SPECIFICA_INTERFACCE);
- listParametersApiWsdlDownload.add(pIdAccordoDownload);
- listParametersApiWsdlDownload.add(pTipoDocumentoDownload);
- listParametersApiWsdlDownload.add(pTipoAccordoDownload);
- listParametersApiWsdlDownload.add(pApiGestioneParziale);
-
- image = new DataElementImage();
- image.setUrl(ArchiviCostanti.SERVLET_NAME_DOCUMENTI_EXPORT, listParametersApiWsdlDownload.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_DOWNLOAD_DOCUMENTO_INTERFACCIA_TOOLTIP_CON_PARAMETRO,
- AccordiServizioParteComuneCostanti.LABEL_XSD_SCHEMA_COLLECTION));
- image.setImage(ApiCostanti.APC_API_ICONA_DOWNLOAD_DOCUMENTO_ARCHIVE);
- image.setTarget(TargetType.SELF);
- image.setDisabilitaAjaxStatus();
-
- de.addImage(image);
- }
- }
-
- dati.add(de);
-
-
- // Descrizione
- if(as.getDescrizione()!=null && StringUtils.isNotEmpty(as.getDescrizione())) {
- de = new DataElement();
- de.setType(DataElementType.TEXT);
- de.setLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_DESCRIZIONE);
- int length = 150;
- String descrizione = null;
- if(as.getDescrizione()!=null && as.getDescrizione().length()>length) {
- descrizione = as.getDescrizione().substring(0, (length-4)) + " ...";
- }
- else {
- descrizione = as.getDescrizione() ;
- }
- de.setValue(descrizione!=null ? StringEscapeUtils.escapeHtml(descrizione) : null);
- de.setToolTip(as.getDescrizione());
- de.setCopyToClipboard(as.getDescrizione());
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_DESCRIZIONE);
- de.setIcon(ApiCostanti.APC_API_ICONA_MODIFICA_API);
-
- image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_DESCRIZIONE);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_DESCRIZIONE));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- de.setImage(image);
-
- dati.add(de);
- }
-
-
- // Gruppi
- de = new DataElement();
- de.setType(DataElementType.BUTTON);
- de.setLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_GRUPPI);
- List<String> labelsGruppi = new ArrayList<>();
- List<String> valuesGruppi = new ArrayList<>();
-
- GruppiAccordo gruppi = as.getGruppi();
- if(gruppi != null) {
- // colleziono i tags registrati
- List<String> tagsDisponibili = this.gruppiCore.getAllGruppiOrdinatiPerDataRegistrazione();
-
- for (int i = 0; i < gruppi.sizeGruppoList(); i++) {
- GruppoAccordo gruppo = gruppi.getGruppo(i);
-
- int indexOf = tagsDisponibili.indexOf(gruppo.getNome());
- if(indexOf == -1)
- indexOf = 0;
-
- indexOf = indexOf % CostantiControlStation.NUMERO_GRUPPI_CSS;
-
- labelsGruppi.add(gruppo.getNome());
- valuesGruppi.add("label-info-"+indexOf);
- }
- }
-
- de.setLabels(labelsGruppi);
- de.setValues(valuesGruppi);
-
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_GRUPPI);
- de.setIcon(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_GRUPPI);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_GRUPPI));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- de.setImage(image);
-
- dati.add(de);
-
- // Canale
- CanaliConfigurazione gestioneCanali = this.confCore.getCanaliConfigurazione(false);
- boolean gestioneCanaliEnabled = gestioneCanali != null && org.openspcoop2.core.config.constants.StatoFunzionalita.ABILITATO.equals(gestioneCanali.getStato());
- if(gestioneCanaliEnabled) {
- List<CanaleConfigurazione> canaleList = gestioneCanali != null ? gestioneCanali.getCanaleList() : new ArrayList<>();
- de = new DataElement();
- de.setType(DataElementType.TEXT);
- de.setLabel(AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_CANALE);
- this.setStatoCanale(de, as.getCanale(), canaleList);
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_CANALE);
- de.setIcon(ApiCostanti.APC_API_ICONA_MODIFICA_API);
-
- image = new DataElementImage();
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_CANALE);
- image.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- image.setToolTip(MessageFormat.format(ApiCostanti.APC_API_ICONA_MODIFICA_API_TOOLTIP_CON_PARAMETRO, AccordiServizioParteComuneCostanti.LABEL_PARAMETRO_APC_CANALE));
- image.setImage(ApiCostanti.APC_API_ICONA_MODIFICA_API);
- de.setImage(image);
-
- dati.add(de);
- }
-
- // Proprieta Oggetto
- this.addProprietaOggetto(dati, as.getProprietaOggetto());
-
- // link
- // 1. risorse/servizi
- switch(serviceBinding) {
- case REST:
- de = new DataElement();
- de.setType(DataElementType.LINK);
- listParametersApi.get(0).setValue("");
- de.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_RESOURCES_LIST, listParametersApi.toArray(new Parameter[1]));
- de.setValue(ApiCostanti.APC_API_LABEL_GESTIONE_RISORSE);
- de.setIcon(ApiCostanti.APC_API_ICONA_GESTIONE_RISORSE);
- dati.add(de);
- break;
- case SOAP:
- default:
- // PortType
- de = new DataElement();
- de.setType(DataElementType.LINK);
- listParametersApi.get(0).setValue("");
- de.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_PORT_TYPES_LIST, listParametersApi.toArray(new Parameter[1]));
- de.setValue(ApiCostanti.APC_API_LABEL_GESTIONE_SERVIZI);
- de.setIcon(ApiCostanti.APC_API_ICONA_GESTIONE_SERVIZI);
- dati.add(de);
- break;
-
- }
- // 2. allegati
- de = new DataElement();
- de.setType(DataElementType.LINK);
- listParametersApi.get(0).setValue("");
- de.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_ALLEGATI_LIST, listParametersApi.toArray(new Parameter[1]));
- de.setValue(ApiCostanti.APC_API_LABEL_GESTIONE_ALLEGATI);
- de.setIcon(ApiCostanti.APC_API_ICONA_GESTIONE_ALLEGATI);
- dati.add(de);
-
- // 3. opzioni avanzate
- if(this.isModalitaAvanzata()) {
- de = new DataElement();
- de.setType(DataElementType.LINK);
- listParametersApi.get(0).setValue(ApiCostanti.VALORE_PARAMETRO_APC_API_OPZIONI_AVANZATE);
- de.setUrl(AccordiServizioParteComuneCostanti.SERVLET_NAME_APC_CHANGE, listParametersApi.toArray(new Parameter[1]));
- de.setValue(ApiCostanti.APC_API_LABEL_GESTIONE_OPZIONI_AVANZATE);
- de.setIcon(ApiCostanti.APC_API_ICONA_GESTIONE_OPZIONI_AVANZATE);
- dati.add(de);
- }
-
- de = new DataElement();
- de.setType(DataElementType.LINK);
- List<Parameter> listParametersNuovaVersione = new ArrayList<>();
- listParametersNuovaVersione.add(new Parameter(ApiCostanti.PARAMETRO_APC_API_NUOVA_VERSIONE, Costanti.CHECK_BOX_ENABLED_TRUE));
- listParametersNuovaVersione.add(pIdAccordo);
- listParametersNuovaVersione.add(pTipoAccordo);
- de.setUrl(ApiCostanti.SERVLET_NAME_APC_API_ADD, listParametersNuovaVersione.toArray(new Parameter[1]));
- de.setValue(ApiCostanti.APC_API_LABEL_NUOVA_VERSIONE_API);
- de.setIcon(ApiCostanti.APC_API_ICONA_NUOVA_VERSIONE_API);
- de.spostaLinkADestra();
- dati.add(de);
-
-
- return datiPagina;
- }
-
-
- }