/** 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.chart.utils; import org.dom4j.Document; import org.dom4j.Node; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ScatterRangeMarker { Double xRangeValueLow; Double xRangeValueHigh; Double yRangeValueLow; Double yRangeValueHigh; XYMarker xMarker=new XYMarker(); XYMarker yMarker=new XYMarker(); private static Logger logger = LoggerFactory.getLogger(ScatterRangeMarker.class); public void fillScatterRangeRankConfigurations(String type, Document thisDocument){ logger.debug("Recording and Filling te range and marker configurations"); // Search if there is info to fill Node xRangeNode=thisDocument.selectSingleNode("//"+type.toUpperCase()+"/PARAMETER[@name='x_range']"); if(xRangeNode!=null){ String valueLowS=xRangeNode.valueOf("@value_low"); try{ Double lowD=Double.valueOf(valueLowS); xRangeValueLow=lowD; } catch (Exception e) { xRangeValueLow=0.0; } String valueHighS=xRangeNode.valueOf("@value_high"); try{ Double highD=Double.valueOf(valueHighS); xRangeValueHigh=highD; } catch (Exception e) { xRangeValueHigh=0.0; } } Node yRangeNode=thisDocument.selectSingleNode("//"+type.toUpperCase()+"/PARAMETER[@name='y_range']"); if(yRangeNode!=null){ String valueLowS=yRangeNode.valueOf("@value_low"); try{ Double lowD=Double.valueOf(valueLowS); yRangeValueLow=lowD; } catch (Exception e) { yRangeValueLow=0.0; } String valueHighS=yRangeNode.valueOf("@value_high"); try{ Double highD=Double.valueOf(valueHighS); yRangeValueHigh=highD; } catch (Exception e) { yRangeValueHigh=0.0; } } Node xMarkerNode=thisDocument.selectSingleNode("//"+type.toUpperCase()+"/PARAMETER[@name='x_marker']"); xMarker.fillMarkerConfigurations(xMarkerNode); Node yMarkerNode=thisDocument.selectSingleNode("//"+type.toUpperCase()+"/PARAMETER[@name='y_marker']"); yMarker.fillMarkerConfigurations(yMarkerNode); } public String toXML(){ String toReturn=""; if(xRangeValueLow!=null || xRangeValueHigh!=null){ toReturn+="<PARAMETER name=\"x_range\" "; if(xRangeValueLow!=null){ toReturn+="value_low=\""+xRangeValueLow.toString()+"\" "; } if(xRangeValueHigh!=null){ toReturn+="value_high=\""+xRangeValueHigh.toString()+"\" "; } toReturn+=" />\n"; } if(yRangeValueLow!=null || yRangeValueHigh!=null){ toReturn+="<PARAMETER name='y_range' "; if(yRangeValueLow!=null){ toReturn+="value_low='"+yRangeValueLow.toString()+"' "; } if(yRangeValueHigh!=null){ toReturn+="value_high='"+yRangeValueHigh.toString()+"' "; } toReturn+=" />\n"; } if(xMarker!=null){ toReturn+=xMarker.toXML("x_marker"); } if(yMarker!=null){ toReturn+=yMarker.toXML("y_marker"); } return toReturn; } public Double getXRangeValueLow() { return xRangeValueLow; } public void setXRangeValueLow(Double rangeValueLow) { xRangeValueLow = rangeValueLow; } public Double getXRangeValueHigh() { return xRangeValueHigh; } public void setXRangeValueHigh(Double rangeValueHigh) { xRangeValueHigh = rangeValueHigh; } public Double getYRangeValueLow() { return yRangeValueLow; } public void setYRangeValueLow(Double rangeValueLow) { yRangeValueLow = rangeValueLow; } public Double getYRangeValueHigh() { return yRangeValueHigh; } public void setYRangeValueHigh(Double rangeValueHigh) { yRangeValueHigh = rangeValueHigh; } public XYMarker getXMarker() { return xMarker; } public void setXMarker(XYMarker marker) { xMarker = marker; } public XYMarker getYMarker() { return yMarker; } public void setYMarker(XYMarker marker) { yMarker = marker; } }