Java tutorial
/** 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; } }