package org.jboss.seam.pdf.ui; import javax.faces.context.FacesContext; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.Plot; import org.jfree.chart.plot.XYPlot; import org.jfree.data.general.Dataset; import org.jfree.data.xy.DefaultXYDataset; import org.jfree.data.xy.XYDataset; public class UITimeSeriesChart extends UIChart { private String domainAxisLabel; private String domainAxisPaint; private Boolean domainGridlinesVisible; private String domainGridlinePaint; private String domainGridlineStroke; private String rangeAxisLabel; private String rangeAxisPaint; private Boolean rangeGridlinesVisible; private String rangeGridlinePaint; private String rangeGridlineStroke; public String getDomainAxisLabel() { return (String) valueBinding("domainAxisLabel", domainAxisLabel); } public void setDomainAxisLabel(String categoryAxisLabel) { this.domainAxisLabel = categoryAxisLabel; } public String getRangeAxisLabel() { return (String) valueBinding("rangeAxisLabel", rangeAxisLabel); } public void setRangeAxisLabel(String valueAxisLabel) { this.rangeAxisLabel = valueAxisLabel; } public String getDomainGridlinePaint() { return (String) valueBinding("domainGridlinePaint", domainGridlinePaint); } public void setDomainGridlinePaint(String domainGridlinePaint) { this.domainGridlinePaint = domainGridlinePaint; } public String getDomainGridlineStroke() { return (String) valueBinding("domainGridlineStroke", domainGridlineStroke); } public void setDomainGridlineStroke(String domainGridlineStroke) { this.domainGridlineStroke = domainGridlineStroke; } public Boolean getDomainGridlinesVisible() { return (Boolean) valueBinding("domainGridlinesVisible", domainGridlinesVisible); } public void setDomainGridlinesVisible(Boolean domainGridlinesVisible) { this.domainGridlinesVisible = domainGridlinesVisible; } public String getRangeGridlinePaint() { return (String) valueBinding("rangeGridlinePaint", rangeGridlinePaint); } public void setRangeGridlinePaint(String rangeGridlinePaint) { this.rangeGridlinePaint = rangeGridlinePaint; } public String getRangeGridlineStroke() { return (String) valueBinding("rangeGridlineStroke", rangeGridlineStroke); } public void setRangeGridlineStroke(String rangeGridlineStroke) { this.rangeGridlineStroke = rangeGridlineStroke; } public Boolean getRangeGridlinesVisible() { return (Boolean) valueBinding("rangeGridlinesVisible", rangeGridlinesVisible); } public void setRangeGridlinesVisible(Boolean rangeGridlinesVisible) { this.rangeGridlinesVisible = rangeGridlinesVisible; } public String getDomainAxisPaint() { return (String) valueBinding("domainAxisPaint", domainAxisPaint); } public void setDomainAxisPaint(String domainAxisPaint) { this.domainAxisPaint = domainAxisPaint; } public String getRangeAxisPaint() { return (String) valueBinding("rangeAxisPaint", rangeAxisPaint); } public void setRangeAxisPaint(String rangeAxisPaint) { this.rangeAxisPaint = rangeAxisPaint; } @Override public void restoreState(FacesContext context, Object state) { Object[] values = (Object[]) state; super.restoreState(context, values[0]); //orientation = (String) values[1]; //legend = (Boolean) values[2]; //is3D = (Boolean) values[3]; // titleBackgroundPaint = (String) values[5]; // titlePaint = (String) values[6]; // legendBackgroundPaint = (String) values[7]; // legendItemPaint = (String) values[8]; // legendOutlinePaint = (String) values[9]; domainAxisLabel = (String) values[10]; domainAxisPaint = (String) values[11]; domainGridlinesVisible = (Boolean) values[12]; domainGridlinePaint = (String) values[13]; domainGridlineStroke = (String) values[14]; rangeAxisLabel = (String) values[15]; rangeAxisPaint = (String) values[16]; rangeGridlinesVisible = (Boolean) values[17]; rangeGridlinePaint = (String) values[18]; rangeGridlineStroke = (String) values[19]; //domainLabelPosition = (String) values[20]; } @Override public Object saveState(FacesContext context) { Object[] values = new Object[21]; values[0] = super.saveState(context); //values[1] = orientation; //values[2] = legend; //values[3] = is3D; //values[4] = title; // values[5] = titleBackgroundPaint; // values[6] = titlePaint; // values[7] = legendBackgroundPaint; // values[8] = legendItemPaint; // values[9] = legendOutlinePaint; values[10] = domainAxisLabel; values[11] = domainAxisPaint; values[12] = domainGridlinesVisible; values[13] = domainGridlinePaint; values[14] = domainGridlineStroke; values[15] = rangeAxisLabel; values[16] = rangeAxisPaint; values[17] = rangeGridlinesVisible; values[18] = rangeGridlinePaint; values[19] = rangeGridlineStroke; //values[20] = domainLabelPosition; return values; } @Override public JFreeChart createChart(FacesContext context) { return ChartFactory.createTimeSeriesChart(getTitle(), getDomainAxisLabel(), getRangeAxisLabel(), (XYDataset) getDataset(), true, false, false); } @Override public void configurePlot(Plot plot) { super.configurePlot(plot); if (plot instanceof XYPlot) { configureXYPlot((XYPlot) plot); } } public void configureXYPlot(XYPlot plot) { if (getDomainGridlinesVisible() != null) { plot.setDomainGridlinesVisible(getDomainGridlinesVisible()); } if (findColor(getDomainGridlinePaint()) != null) { plot.setDomainGridlinePaint(findColor(getDomainGridlinePaint())); } if (findStroke(getDomainGridlineStroke()) != null) { plot.setDomainGridlineStroke(findStroke(getDomainGridlineStroke())); } if (findColor(getDomainAxisPaint()) != null) { plot.getDomainAxis().setLabelPaint(findColor(getDomainAxisPaint())); } if (getRangeGridlinesVisible() != null) { plot.setRangeGridlinesVisible(getRangeGridlinesVisible()); } if (findColor(getRangeGridlinePaint()) != null) { plot.setRangeGridlinePaint(findColor(getRangeGridlinePaint())); } if (findStroke(getRangeGridlineStroke()) != null) { plot.setRangeGridlineStroke(findStroke(getRangeGridlineStroke())); } if (findColor(getRangeAxisPaint()) != null) { plot.getRangeAxis().setLabelPaint(findColor(getRangeAxisPaint())); } } @Override public Dataset createDataset() { return new DefaultXYDataset(); } }