⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ireportjfreechartfactory.java

📁 优秀的打印控件全源代码,类似水晶表的设计器!
💻 JAVA
字号:
/* * Created on 09/05/2004 * */package it.businesslogic.ireport.chart;import java.awt.Color;import java.awt.Image;import java.util.Hashtable;import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.Plot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.CategoryDataset;import org.jfree.data.DatasetUtilities;import org.jfree.data.PieDataset;import dori.jasper.engine.JRDataSource;/** * @author Egon * */public final class IReportJFreeChartFactory extends IReportAbstractChartFactory implements IReportChartTypeDescription {	public static final int CHART_TYPE_PIE 				= 1;	public static final int CHART_TYPE_BAR				= 2;	public static final int CHART_TYPE_PIE_3D			= 3;	public static final int CHART_TYPE_BAR_3D			= 4;	public static final int CHART_TYPE_LINE				= 5;/*	public static final int CHART_TYPE_STACKED_BAR		= 6;	public static final int CHART_TYPE_STACKED_BAR_3D	= 7;	public static final int CHART_TYPE_AREA				= 8;	public static final int CHART_TYPE_STACKED_AREA		= 9;	public static final int CHART_TYPE_MULTIPLE_PIE_3D	= 10;	public static final int CHART_TYPE_MULTIPLE_PIE 	= 11;	public static final int CHART_TYPE_GANTT			= 12;	public static final int CHART_TYPE_WATERFALL		= 13;	public static final int CHART_TYPE_POLAR			= 14;	public static final int CHART_TYPE_SCATTER_PLOT		= 15;	public static final int CHART_TYPE_XY_BAR			= 16;	public static final int CHART_TYPE_XY_AREA			= 17;	public static final int CHART_TYPE_STACKED_XY_AREA	= 18;	public static final int CHART_TYPE_XY_LINE			= 19;	public static final int CHART_TYPE_XY_STEP			= 20;	public static final int CHART_TYPE_XY_STEP_AREA		= 21;	public static final int CHART_TYPE_TIMESERIES		= 22;	public static final int CHART_TYPE_CANDLESTICK		= 23;	public static final int CHART_TYPE_HIGHLOW			= 24;	public static final int CHART_TYPE_SIGNAL			= 25;	public static final int CHART_TYPE_BUBBLE			= 26;	public static final int CHART_TYPE_HISTOGRAM		= 27;	public static final int CHART_TYPE_BOXANDWHISKER	= 28;	public static final int CHART_TYPE_WINDPLOT			= 29;	public static final int CHART_TYPE_WAFERMAP			= 30;*/	private static Number[][] generateDataset(IReportChartProperties chartProperties, Hashtable dataSources, int index) throws Exception {		return null;	}	private Plot generatePlot(		Plot plot,		IReportChartProperties chartProperties,		Hashtable dataSources, int index)		throws Exception {					JFreeChart chart = null;		int tipo = chartProperties.getType(index);		PlotOrientation plotOrientation = IReportChartProperties.CHART_TYPE_ORIENTATION_HORIZONTAL.equals(chartProperties.getChartTypeOrientation(index)) ? PlotOrientation.HORIZONTAL : PlotOrientation.VERTICAL;		String title = chartProperties.getTitle(index);		boolean legend = chartProperties.isLegendVisible(index);				String categoryAxisLabel = null;		String valueAxisLabel = null;		CategoryDataset categoryDataset = null;		PieDataset pieDataset = null;		Number[][] values = generateDataset(chartProperties, dataSources, index);				categoryDataset = DatasetUtilities.createCategoryDataset("Series ", "Category ", values);				if(!hasYAxis(index) && !hasZAxis(index)){			//use the first column			pieDataset = DatasetUtilities.createPieDatasetForColumn(categoryDataset,0);		}						switch(tipo){			case CHART_TYPE_BAR :			chart = ChartFactory.createBarChart( title, categoryAxisLabel, valueAxisLabel, categoryDataset, plotOrientation, legend, false, false);  			break;			case CHART_TYPE_BAR_3D :			chart = ChartFactory.createBarChart3D(title, categoryAxisLabel, valueAxisLabel, categoryDataset, plotOrientation, legend, false, false);  			break;			case CHART_TYPE_PIE :			chart = ChartFactory.createPieChart(title, pieDataset, legend, false, false);  			break;			case CHART_TYPE_PIE_3D :			chart = ChartFactory.createPieChart3D(title, pieDataset, legend, false, false);  			break;			case CHART_TYPE_LINE :			chart = ChartFactory.createLineChart(title, categoryAxisLabel, valueAxisLabel, categoryDataset, plotOrientation, legend, false, false);  			break;/*			case CHART_TYPE_AREA :			break;			case CHART_TYPE_STACKED_AREA :			break;			case CHART_TYPE_STACKED_BAR :			break;			case CHART_TYPE_STACKED_BAR_3D :			break;*/		} 				if(chart != null){			plot = chart.getPlot();		}				return plot;				}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportAbstractChartFactory#engineGenerateChartImage(it.businesslogic.ireport.chart.IReportChartProperties, java.util.Hashtable)	 */	protected Image engineGenerateChartImage(		IReportChartProperties chartProperties,		Hashtable datasources)		throws Exception 	{		int chartCount = chartProperties.getCount();			Plot plot = null;		for(int i = 1; i <= chartCount; i++){					plot = generatePlot(plot, chartProperties, datasources, i);				}		JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, false);		chart.setBackgroundPaint(Color.WHITE);		int chartWidth  = chartProperties.getWidth();		int chartHeight = chartProperties.getHeight();		return chart.createBufferedImage(chartWidth, chartHeight);	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#getDataSetType(int)	 */	public int getDataSetType(int chartType) {		int dsType = 0;				switch(chartType){			case CHART_TYPE_BAR :			dsType = XY_AXIS_CHART_DATASET_TYPE;			break;			case CHART_TYPE_BAR_3D :			dsType = XY_AXIS_CHART_DATASET_TYPE;			break;			case CHART_TYPE_PIE :			dsType = X_AXIS_CHART_DATASET_TYPE;			break;			case CHART_TYPE_PIE_3D :			dsType = X_AXIS_CHART_DATASET_TYPE;			break;			case CHART_TYPE_LINE :			dsType = XY_AXIS_CHART_DATASET_TYPE;			break;		}		return dsType;	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#getDescription(int)	 */	public String getDescription(int chartType) {		return getName(chartType);	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#getName(int)	 */	public String getName(int chartType) {		String text= "";					switch(chartType){			case CHART_TYPE_BAR :			text = "Bar Chart";			break;			case CHART_TYPE_BAR_3D :			text = "Bar Chart 3D";			break;			case CHART_TYPE_PIE :			text = "Pie Chart";			break;			case CHART_TYPE_PIE_3D :			text = "Pie Chart 3D";			break;			case CHART_TYPE_LINE :			text = "Line Chart";			break;		}		return text;	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#getThumbImage(int)	 */	public Image getThumbImage(int chartType) {		// TODO Auto-generated method stub		return null;	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#hasXAxis(int)	 */	public boolean hasXAxis(int chartType) {		return true;	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#hasYAxis(int)	 */	public boolean hasYAxis(int chartType) {		switch(chartType){			case CHART_TYPE_BAR :			case CHART_TYPE_BAR_3D :			case CHART_TYPE_LINE :			return true;			case CHART_TYPE_PIE :			case CHART_TYPE_PIE_3D :			default:			return false;		}	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportChartTypeDescription#hasZAxis(int)	 */	public boolean hasZAxis(int chartType) {		return false;	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportAbstractChartFactory#engineGetChartTypeCount()	 */	protected int engineGetChartTypeCount() {		return 5;	}	/* (non-Javadoc)	 * @see it.businesslogic.ireport.chart.IReportAbstractChartFactory#allowMultipleChart()	 */	protected boolean allowMultipleChart() {		return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -