📄 datasetutilities.java
字号:
package org.gridsphere.services.core.charts;import org.exolab.castor.xml.MarshalException;import org.exolab.castor.xml.ValidationException;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.util.Date;import java.util.Enumeration;import java.util.List;/** * @author <a href="mailto:tkucz@icis.pcz.pl">Tomasz Kuczynski</a> * @version $Id: DatasetUtilities.java 4496 2006-02-08 20:27:04Z wehrens $ */public class DatasetUtilities { public static org.jfree.data.DefaultPieDataset readDefaultPieDataset(File file) throws IOException, MarshalException, ValidationException { FileReader reader = new FileReader(file); DefaultPieDataset dataset = (DefaultPieDataset) DefaultPieDataset.unmarshal(reader); reader.close(); org.jfree.data.DefaultPieDataset outDataset = new org.jfree.data.DefaultPieDataset(); for (int i = 0; i < dataset.getItemCount(); ++i) { Item item = dataset.getItem(i); if (item.getValue() != null) outDataset.setValue(item.getKey(), Double.parseDouble(item.getValue())); else outDataset.setValue(item.getKey(), null); } return outDataset; } public static void writeDefaultPieDataset(File file, org.jfree.data.DefaultPieDataset inDataset) throws IOException, MarshalException, ValidationException { DefaultPieDataset dataset = new DefaultPieDataset(); List keys = inDataset.getKeys(); for (int i = 0; i < keys.size(); i++) { String key = (String) keys.get(i); Number value = inDataset.getValue(key); Item item = new Item(); item.setKey(key); if(value!=null) item.setValue(value.toString()); dataset.addItem(item); } FileWriter output = new FileWriter(file); dataset.marshal(output); output.flush(); output.close(); } public static org.jfree.data.DefaultCategoryDataset readDefaultCategoryDataset(File file) throws IOException, MarshalException, ValidationException { FileReader reader = new FileReader(file); DefaultCategoryDataset dataset = (DefaultCategoryDataset) DefaultCategoryDataset.unmarshal(reader); reader.close(); org.jfree.data.DefaultCategoryDataset outDataset = new org.jfree.data.DefaultCategoryDataset(); for (int i = 0; i < dataset.getSeriesCount(); ++i) { Series serie = dataset.getSeries(i); for (int j = 0; j < serie.getItemCount(); ++j) { Item item = serie.getItem(j); if (item.getValue() != null) outDataset.addValue(Double.parseDouble(item.getValue()), serie.getName(), item.getKey()); else outDataset.addValue(null, serie.getName(), item.getKey()); } } return outDataset; } public static void writeDefaultCategoryDataset(File file, org.jfree.data.DefaultCategoryDataset inDataset) throws IOException, MarshalException, ValidationException { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); List rowKeys = inDataset.getRowKeys(); List columnKeys = inDataset.getColumnKeys(); for (int i = 0; i < rowKeys.size(); i++) { String rowKey = (String) rowKeys.get(i); Series series = new Series(); series.setName(rowKey); for (int j = 0; j < columnKeys.size(); j++) { String columnKey = (String) columnKeys.get(j); Number value = inDataset.getValue(rowKey, columnKey); Item item = new Item(); item.setKey(columnKey); if(value!=null) item.setValue(value.toString()); series.addItem(item); } dataset.addSeries(series); } FileWriter output = new FileWriter(file); dataset.marshal(output); output.flush(); output.close(); } public static org.jfree.data.XYSeriesCollection readXYSeriesCollection(File file) throws IOException, ValidationException, MarshalException { FileReader reader = new FileReader(file); XYSeriesCollection dataset = (XYSeriesCollection) XYSeriesCollection.unmarshal(reader); reader.close(); org.jfree.data.XYSeriesCollection outDataset = new org.jfree.data.XYSeriesCollection(); if (dataset.hasIntervalWidth()) outDataset.setIntervalWidth(dataset.getIntervalWidth()); if (dataset.hasIntervalPositionFactor()) outDataset.setIntervalPositionFactor(dataset.getIntervalPositionFactor()); if (dataset.hasAutoWidth()) outDataset.setAutoWidth(dataset.getAutoWidth()); Enumeration series = dataset.enumerateXYSeries(); while (series.hasMoreElements()) { XYSeries serie = (XYSeries) series.nextElement(); org.jfree.data.XYSeries outSeries = new org.jfree.data.XYSeries(serie.getName()); if (serie.hasMaximumItemCount()) outSeries.setMaximumItemCount(serie.getMaximumItemCount()); if (serie.getDescription() != null) outSeries.setDescription(serie.getDescription()); for (int i = 0; i < serie.getXYSeriesItemCount(); ++i) { XYSeriesItem item = serie.getXYSeriesItem(i); if (item.hasYValue()) outSeries.add(item.getXValue(), item.getYValue()); else outSeries.add(item.getXValue(), null); } outDataset.addSeries(outSeries); } return outDataset; } public static void writeXYSeriesCollection(File file, org.jfree.data.XYSeriesCollection inDataset) throws IOException, MarshalException, ValidationException { XYSeriesCollection dataset = new XYSeriesCollection(); dataset.setIntervalWidth(inDataset.getIntervalWidth()); dataset.setIntervalPositionFactor(inDataset.getIntervalPositionFactor()); dataset.setAutoWidth(inDataset.isAutoWidth()); for (int i = 0; i < inDataset.getSeriesCount(); ++i) { String name = inDataset.getSeriesName(i); String description = inDataset.getSeries(i).getDescription(); int maximumItemCount = inDataset.getSeries(i).getMaximumItemCount(); XYSeries series = new XYSeries(); if (description != null) series.setDescription(description); if (maximumItemCount != Integer.MAX_VALUE) series.setMaximumItemCount(maximumItemCount); series.setName(name); for (int j = 0; j < inDataset.getItemCount(i); ++j) { XYSeriesItem item = new XYSeriesItem(); item.setXValue(inDataset.getXValue(i, j).doubleValue()); if (inDataset.getYValue(i, j) != null) item.setYValue(inDataset.getYValue(i, j).doubleValue()); series.addXYSeriesItem(item); } dataset.addXYSeries(series); } FileWriter output = new FileWriter(file); dataset.marshal(output); output.flush(); output.close(); } public static org.jfree.data.time.TimeSeriesCollection readTimeSeriesCollection(File file) throws IOException, MarshalException, ValidationException, org.jfree.data.SeriesException { FileReader reader = new FileReader(file); TimeSeriesCollection dataset = (TimeSeriesCollection) TimeSeriesCollection.unmarshal(reader); reader.close(); org.jfree.data.time.TimeSeriesCollection outDataset = new org.jfree.data.time.TimeSeriesCollection(); String xPosition = dataset.getXPosition(); if (xPosition != null) outDataset.setXPosition(xPosition.equals("TimePeriodAnchor.START") ? org.jfree.data.time.TimePeriodAnchor.START : ( xPosition.equals("TimePeriodAnchor.END") ? org.jfree.data.time.TimePeriodAnchor.END : org.jfree.data.time.TimePeriodAnchor.MIDDLE )); if (dataset.hasDomainIsPointsInTime()) outDataset.setDomainIsPointsInTime(dataset.getDomainIsPointsInTime()); Enumeration series = dataset.enumerateTimeSeries(); while (series.hasMoreElements()) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -