/** SpagoBI, the Open Source Business Intelligence suite Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. **/ package it.eng.spagobi.studio.geo.editors.model.bo; import it.eng.spagobi.studio.geo.editors.model.geo.GEODocument; import it.eng.spagobi.studio.geo.editors.model.geo.KPI; import it.eng.spagobi.studio.geo.editors.model.geo.MapRenderer; import it.eng.spagobi.studio.geo.editors.model.geo.Measures; import java.util.Vector; public class KpiBO { public static void setNewMeasure(GEODocument geoDocument, KPI kpiToAdd){ MapRenderer mapRenderer = geoDocument.getMapRenderer(); Measures measures = mapRenderer.getMeasures(); if(measures == null){ measures = new Measures(); mapRenderer.setMeasures(measures); } Vector<KPI> kpis= measures.getKpi(); if(kpis == null){ kpis = new Vector<KPI>(); measures.setKpi(kpis); } boolean isKpiModified = false; for(int i=0; i<kpis.size(); i++){ KPI kpi = kpis.elementAt(i); String columnId = kpi.getColumnId(); if(kpiToAdd.getColumnId().equals(columnId)){ //va in modifica kpi = fillKPI(kpi, kpiToAdd); isKpiModified = true; } } if(!isKpiModified){ //aggiunge kpi kpis.add(kpiToAdd); } } private static KPI fillKPI(KPI kpi, KPI kpiToUse){ kpi.setAggFunct(kpiToUse.getAggFunct()); kpi.setColor(kpiToUse.getColor()); kpi.setColours(kpiToUse.getColours()); kpi.setColumnId(kpiToUse.getColumnId()); kpi.setDescription(kpiToUse.getDescription()); kpi.setTresholds(kpiToUse.getTresholds()); return kpi; } public static void deleteMeasure(GEODocument geoDocument, KPI kpiToDelete){ MapRenderer mapRenderer = geoDocument.getMapRenderer(); Measures measures = mapRenderer.getMeasures(); if(measures != null){ Vector<KPI> kpis= measures.getKpi(); if(kpis != null){ int kpisSize =kpis.size(); Vector<KPI> kpisToRemove = new Vector<KPI>(); for(int i=0; i< kpisSize; i++){ KPI kpi = kpis.elementAt(i); String columnId = kpi.getColumnId(); if(kpiToDelete.getColumnId().equals(columnId)){ //delete //kpis.remove(i); kpisToRemove.add(kpi); } } kpis.removeAll(kpisToRemove); } } } public static KPI getMeasureByColumnId(GEODocument geoDocument, String columnIdToSearch){ KPI kpiToReturn = null; MapRenderer mapRenderer = geoDocument.getMapRenderer(); Measures measures = mapRenderer.getMeasures(); if(measures != null){ Vector<KPI> kpis= measures.getKpi(); if(kpis != null){ int kpisSize =kpis.size(); for(int i=0; i< kpisSize; i++){ KPI kpi = kpis.elementAt(i); String columnId = kpi.getColumnId(); if(columnIdToSearch.equals(columnId)){ kpiToReturn = kpi; } } } } return kpiToReturn; } }