chartDefinition.isThreeD() ? new NumberAxis3D( domainAxisLabel ) : new NumberAxis( domainAxisLabel );
domainAxis.setAutoRangeIncludesZero( chartDefinition.isDomainIncludesZero() );
domainAxis.setAutoRangeStickyZero( chartDefinition.isDomainStickyZero() );
ValueAxis rangeAxis = new NumberAxis( rangeAxisLabel );
AbstractXYItemRenderer renderer = null;
switch ( chartDefinition.getChartType() ) {
case LINE_CHART_TYPE:
renderer = chartDefinition.isThreeD() ? new XYLine3DRenderer() : new XYLineAndShapeRenderer( true, false );
( (XYLineAndShapeRenderer) renderer ).setShapesVisible( chartDefinition.isMarkersVisible() );
( (XYLineAndShapeRenderer) renderer ).setBaseShapesFilled( chartDefinition.isMarkersVisible() );
break;
case AREA_CHART_TYPE:
renderer = new XYAreaRenderer();
break;
case STEP_CHART_TYPE:
renderer = new XYStepRenderer();
break;
case STEP_AREA_CHART_TYPE:
renderer = new XYStepAreaRenderer();
break;
case DIFFERENCE_CHART_TYPE:
renderer = new XYDifferenceRenderer();
break;
case DOT_CHART_TYPE:
renderer = new XYDotRenderer();
( (XYDotRenderer) renderer ).setDotHeight( chartDefinition.getDotHeight() );
( (XYDotRenderer) renderer ).setDotWidth( chartDefinition.getDotWidth() );
break;
default:
// should log an error if invalid chart type passed in - at least return null for no renderer
return null;
}
if ( renderer != null && legend ) {
renderer.setLegendItemURLGenerator( new StandardXYSeriesLabelGenerator() );
}
if ( tooltips ) {
XYToolTipGenerator generator =
new StandardXYToolTipGenerator( chartDefinition.getTooltipContent(), new DecimalFormat( chartDefinition
.getTooltipXFormat() ), new DecimalFormat( chartDefinition.getTooltipYFormat() ) );
renderer.setToolTipGenerator( generator );
}
if ( urls ) {
renderer.setURLGenerator( new StandardXYURLGenerator() );
}
renderer.setStroke( JFreeChartEngine.getLineStyleStroke( chartDefinition.getLineStyle(), chartDefinition
.getLineWidth() ) );
XYPlot plot = new XYPlot( chartDefinition, domainAxis, rangeAxis, renderer );
JFreeChartEngine.updatePlot( plot, chartDefinition );