public AbstractShape createShape(String name) {
AbstractShape res = null;
if (name.equals(PLOT_STANDARD)) {
SourceXYDataset dst = new SourceXYDataset();
JFreeChart chart = ChartFactory.createTimeSeriesChart("", "", "", dst, true, true, false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new StandardPlotShape(chart);;
} else if (name.equals(AREA_CHART)) {
SourceXYDataset dst = new SourceXYDataset();
JFreeChart chart = ChartFactory.createXYAreaChart("", "", "", dst, PlotOrientation.VERTICAL, true, true, false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new AreaPlotShape(chart);;
} else if (name.equals(PLOT_CYCLIC)) {
SourceXYDataset dst = new SourceXYDataset();
JFreeChart chart = ChartFactory.createTimeSeriesChart("", "", "", dst, true, true, false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new CyclicPlotShape(chart);;
} else if (name.equals(PLOT_SCATTER)) {
SourceXYDataset dst = new SourceXYDataset();
JFreeChart chart = ChartFactory.createScatterPlot("", "", "", dst, PlotOrientation.VERTICAL, true, true, false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
XYPlot plot = chart.getXYPlot();
NumberAxis axis = new NumberAxis();
plot.setDomainAxis(axis);
axis.setAutoRange(true);
axis.setAutoRangeIncludesZero(false);
ValueAxis vaxis = plot.getRangeAxis();
axis.setAutoRange(true);
if (vaxis instanceof NumberAxis) {((NumberAxis)vaxis).setAutoRangeIncludesZero(false);}
res = new ScatterPlotShape(chart);;
} else if (name.equals(PLOT_PARAMETRIC)) {
SourceXYDataset dst = new SourceXYDataset();
JFreeChart chart = ChartFactory.createTimeSeriesChart("", "", "", dst, true, true, false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
XYPlot plot = chart.getXYPlot();
NumberAxis axis = new NumberAxis();
plot.setDomainAxis(axis);
axis.setAutoRange(true);
axis.setAutoRangeIncludesZero(false);
ValueAxis vaxis = plot.getRangeAxis();
axis.setAutoRange(true);
if (vaxis instanceof NumberAxis) {((NumberAxis)vaxis).setAutoRangeIncludesZero(false);}
res = new ParametricPlotShape(chart);
} else if (name.equals(METER)) {
SourceMeterDataset dst = new SourceMeterDataset();
DatasetDelegatedMeterPlot plot = new DatasetDelegatedMeterPlot(dst);
plot.setDialShape(DialShape.CIRCLE);
JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new MeterShape(chart);
} else if (name.equals(BAR_CHART)) {
SourceCategoryDataset dst = new SourceCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("","","",dst,PlotOrientation.VERTICAL,true,true,false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new BarChartShape(chart);
} else if (name.equals(BAR_CHAR_3D)) {
SourceCategoryDataset dst = new SourceCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart3D("","","",dst,PlotOrientation.VERTICAL,true,true,false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new BarChartShape(chart);
} else if (name.equals(BAR_CHART_STACKED)) {
SourceCategoryDataset dst = new SourceCategoryDataset();
JFreeChart chart = ChartFactory.createStackedBarChart("","","",dst,PlotOrientation.VERTICAL,true,true,false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new BarChartShape(chart);
} else if (name.equals(BAR_CHART_STACKED_3D)) {
SourceCategoryDataset dst = new SourceCategoryDataset();
JFreeChart chart = ChartFactory.createStackedBarChart3D("","","",dst,PlotOrientation.VERTICAL,true,true,false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new BarChartShape(chart);
} else if (name.equals(PIE_CHART)) {
SourcePieDataset dst = new SourcePieDataset();
JFreeChart chart = ChartFactory.createPieChart("",dst,true,true,false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new PieChartShape(chart);
} else if (name.equals(PIE_CHART_3D)) {
SourcePieDataset dst = new SourcePieDataset();
JFreeChart chart = ChartFactory.createPieChart3D("",dst,true,true,false);
chart.setAntiAlias(AbstractShape.ANTI_ALIASING);
res = new PieChartShape(chart);
}
return res;
}