/******************************************************************************* * Copyright 2015 xWic group (http://www.xwic.de) * * Licensed under the Apache License, Version 2.0 (the "License"). * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *******************************************************************************/ package de.jwic.ecolib.samples.controls; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import de.jwic.base.ControlContainer; import de.jwic.base.IControlContainer; import de.jwic.controls.ListBoxControl; import de.jwic.ecolib.controls.chart.ChartControl; import de.jwic.events.ElementSelectedEvent; import de.jwic.events.ElementSelectedListener; /* import demo.AreaChartDemo1; import demo.BarChart3DDemo1; import demo.HistogramDemo1; import demo.MeterChartDemo1; import demo.MultipleAxisDemo1; import demo.ParetoChartDemo1; import demo.PieChart3DDemo3; import demo.TimeSeriesDemo8; import demo.XYAreaChartDemo2; */ /* Created on Sep 14, 2006 * @author jbornema */ public class ChartDemo extends ControlContainer { private ListBoxControl demoType; private ChartControl chart; private ListBoxControl lbWidth; private ListBoxControl lbHeight; /** * @param container */ public ChartDemo(IControlContainer container) { this(container, null); } /** * @param container * @param name */ public ChartDemo(IControlContainer container, String name) { super(container, name); createCharts(); } /** * Create demo JFreeCharts */ protected void createCharts() { // please check http://www.jfree.org/jfreechart how to use JFreeChart ! ! ! chart = new ChartControl(this, "chart"); chart.setWidth(400); chart.setHeight(300); demoType = new ListBoxControl(this, "lbType"); demoType.setChangeNotification(true); demoType.addElement("- None -", "NONE"); demoType.addElement("Pie Chart 3D", "PIE3"); demoType.addElement("Bar Chart 3D", "BAR3"); demoType.addElement("Histogram", "Histogram"); demoType.addElement("Area Chart", "Area"); demoType.addElement("XY Area Chart", "XYArea"); demoType.addElement("Time Series", "TimeSeries"); demoType.addElement("Multiple Axis", "MultipleAxis"); demoType.addElement("Pareto Chart", "Pareto"); demoType.addElement("Meter Chart", "Meter"); demoType.addElementSelectedListener(new ElementSelectedListener() { public void elementSelected(de.jwic.events.ElementSelectedEvent event) { changeChartType((String)event.getElement()); }; }); demoType.setSelectedKey("PIE3"); // will trigger the event and call changeChartType(..); lbWidth = new ListBoxControl(this, "lbWidth"); lbWidth.addElement("0 - Unspecified", "0"); for (int i = 50; i < 601; i += 50) { lbWidth.addElement(Integer.toString(i) + "px", Integer.toString(i)); } lbWidth.setSelectedKey(Integer.toString(chart.getWidth())); lbWidth.setChangeNotification(true); lbWidth.addElementSelectedListener(new ElementSelectedListener() { public void elementSelected(ElementSelectedEvent event) { chart.setWidth(Integer.parseInt((String)event.getElement())); }; }); lbHeight = new ListBoxControl(this, "lbHeight"); lbHeight.addElement("0 - Unspecified", "0"); for (int i = 50; i < 601; i += 50) { lbHeight.addElement(Integer.toString(i) + "px", Integer.toString(i)); } lbHeight.setSelectedKey(Integer.toString(chart.getHeight())); lbHeight.setChangeNotification(true); lbHeight.addElementSelectedListener(new ElementSelectedListener() { public void elementSelected(ElementSelectedEvent event) { chart.setHeight(Integer.parseInt((String)event.getElement())); }; }); /* * Release the chart data on serialization and recreate it when the session is * reloaded */ // getSessionContext().addSessionListener(new SessionAdapter() { // public void beforeSerialization(SessionEvent event) { // chart.setChart(null); // release chart // } // public void afterDeserialization(SessionEvent event) { // changeChartType(demoType.getSelectedKey()); // } // }); } protected void changeChartType(String type) { JFreeChart jfreechart = null; /* if (type.equals("PIE3")) { jfreechart = ((ChartPanel)PieChart3DDemo3.createDemoPanel()).getChart(); } else if (type.equals("BAR3")) { jfreechart = ((ChartPanel)BarChart3DDemo1.createDemoPanel()).getChart(); } else if (type.equals("Histogram")) { jfreechart = ((ChartPanel)HistogramDemo1.createDemoPanel()).getChart(); } else if (type.equals("Area")) { jfreechart = ((ChartPanel)AreaChartDemo1.createDemoPanel()).getChart(); } else if (type.equals("XYArea")) { jfreechart = ((ChartPanel)XYAreaChartDemo2.createDemoPanel()).getChart(); } else if (type.equals("TimeSeries")) { jfreechart = ((ChartPanel)TimeSeriesDemo8.createDemoPanel()).getChart(); } else if (type.equals("MultipleAxis")) { jfreechart = ((ChartPanel)MultipleAxisDemo1.createDemoPanel()).getChart(); } else if (type.equals("Pareto")) { jfreechart = ((ChartPanel)ParetoChartDemo1.createDemoPanel()).getChart(); } else if (type.equals("Meter")) { jfreechart = ((ChartPanel)MeterChartDemo1.createDemoPanel()).getChart(); } */ chart.setChart(jfreechart); } }