亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cewolfchartfactory.java

?? jfreechart標簽庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* ================================================================
 * Cewolf : Chart enabling Web Objects Framework
 * ================================================================
 *
 * Project Info:  http://cewolf.sourceforge.net
 * Project Lead:  Guido Laures (guido@laures.de);
 *
 * (C) Copyright 2002, by Guido Laures
 *
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation;
 * either version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307, USA.
 */

package de.laures.cewolf.taglib;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.CombinedDomainXYPlot;
import org.jfree.chart.plot.CombinedRangeXYPlot;
import org.jfree.chart.plot.MeterPlot;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.general.Dataset;
import org.jfree.data.general.PieDataset;
import org.jfree.data.general.ValueDataset;
import org.jfree.data.xy.IntervalXYDataset;
import org.jfree.data.xy.OHLCDataset;
import org.jfree.data.xy.WindDataset;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYZDataset;

import de.laures.cewolf.ChartValidationException;
import de.laures.cewolf.DatasetProduceException;

/**
 * Chart factory creates Jfreechart instances. To add a new factory use the
 * <code>
 * 		CewolfChartFactory.registerFactory(new CewolfChartFactory() {...});
 * </code>
 * method.
 *
 * @author  Guido Laures
 */
public abstract class CewolfChartFactory implements ChartConstants, AxisConstants, LayoutConstants {

    // chart type string
  protected String chartType;
  // map contains registered factories, (String) chartType->CewolfChartFactory mappings
  private static Map factories = new HashMap();

    /** Creates a new instance of ChartFactory */
  protected CewolfChartFactory(String chartType) {
      this.chartType = chartType;
  }

  /**
   * Callback when the chart instance to be created.
     * @param title The title of chart
     * @param xAxisLabel label on x axis
     * @param yAxisLabel label on y axis
     * @param data The dataset to create chart for
     * @return The newly created JFreeChart instance
     *
     * @throws IncompatibleDatasetException If the incoming data is not compatible with this factory
     */
    public abstract JFreeChart getChartInstance(String title, String xAxisLabel, String yAxisLabel, Dataset data) throws IncompatibleDatasetException;

    //////////////// static part ///////////////////////

  /**
   * Register a new chart factory instance.
   * @param factory The factory to register
   */
  public static void registerFactory(CewolfChartFactory factory) {
      factories.put(factory.chartType, factory);
  }

  private static final int getChartTypeConstant(String type) {
    final int res = ChartTypes.typeList.indexOf(type.toLowerCase());
    if (res < 0) {
      throw new RuntimeException("unsupported chart type " + type);
    }
    return res;
  }

  private static final int getLayoutConstant(String layout) {
    return LayoutTypes.typeList.indexOf(layout.toLowerCase());
  }
  
  static {
    // histogram chart type
    registerFactory(new CewolfChartFactory("histogram") {
	    public JFreeChart getChartInstance(String title, String xAxisLabel, String yAxisLabel, Dataset data) throws IncompatibleDatasetException {
	        check(data, IntervalXYDataset.class, this.chartType);
	        return ChartFactory.createHistogram(title, xAxisLabel, yAxisLabel, (IntervalXYDataset) data, PlotOrientation.VERTICAL, true, false, false);
	     }
    });
  }

  public static JFreeChart getChartInstance(String chartType, String title, String xAxisLabel, String yAxisLabel, Dataset data) throws ChartValidationException {
      // first check the dynamically registered chart types
      CewolfChartFactory factory = (CewolfChartFactory) factories.get(chartType);
      if (factory != null) {
          // custom factory found, use it
          return factory.getChartInstance(title, xAxisLabel, yAxisLabel, data);
      }

    switch (getChartTypeConstant(chartType)) {
      case XY :
        check(data, XYDataset.class, chartType);
        return ChartFactory.createXYLineChart(title, xAxisLabel, yAxisLabel, (XYDataset) data, PlotOrientation.VERTICAL, true, true, true);
      case PIE :
        check(data, PieDataset.class, chartType);
        return ChartFactory.createPieChart(title, (PieDataset) data, true, true, true);
      case AREA_XY :
        check(data, XYDataset.class, chartType);
        return ChartFactory.createXYAreaChart(title, xAxisLabel, yAxisLabel, (XYDataset) data, PlotOrientation.VERTICAL, true, false, false);
      case SCATTER :
        check(data, XYDataset.class, chartType);
        return ChartFactory.createScatterPlot(title, xAxisLabel, yAxisLabel, (XYDataset) data, PlotOrientation.VERTICAL, true, false, false);
      case AREA :
        check(data, CategoryDataset.class, chartType);
        return ChartFactory.createAreaChart(title, xAxisLabel, yAxisLabel, (CategoryDataset) data, PlotOrientation.VERTICAL, true, false, false);
      case HORIZONTAL_BAR :
        check(data, CategoryDataset.class, chartType);
        return ChartFactory.createBarChart(title, xAxisLabel, yAxisLabel, (CategoryDataset) data, PlotOrientation.HORIZONTAL, true, false, false);
      case HORIZONTAL_BAR_3D :
        check(data, CategoryDataset.class, chartType);
        return ChartFactory.createBarChart3D(title, xAxisLabel, yAxisLabel, (CategoryDataset) data, PlotOrientation.HORIZONTAL, true, false, false);
      case LINE :
        check(data, CategoryDataset.class, chartType);
        return ChartFactory.createLineChart(title, xAxisLabel, yAxisLabel, (CategoryDataset) data, PlotOrientation.VERTICAL, true, false, false);
      case STACKED_HORIZONTAL_BAR :
        check(data, CategoryDataset.class, chartType);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产一区二区三区| 成人听书哪个软件好| 国产喷白浆一区二区三区| 91丝袜美腿高跟国产极品老师 | 天天影视涩香欲综合网| 日本一二三四高清不卡| 日韩亚洲欧美综合| 在线精品视频免费观看| 99这里只有精品| 国内外成人在线视频| 亚洲一区二区三区自拍| 欧美国产日韩精品免费观看| 日韩一区二区三区三四区视频在线观看| 91视视频在线观看入口直接观看www | 欧美视频你懂的| 不卡的av网站| 国产精品一二三四区| 日韩**一区毛片| 亚洲国产va精品久久久不卡综合 | 亚洲激情第一区| 国产日韩高清在线| 日韩精品一区二区三区视频在线观看| 色婷婷亚洲综合| 99久久久久免费精品国产| 国产精品1024| 国产自产高清不卡| 免费久久精品视频| 日本三级亚洲精品| 亚洲自拍另类综合| 亚洲乱码国产乱码精品精可以看| 国产欧美日韩精品a在线观看| 欧美mv日韩mv亚洲| 精品久久久久久无| 欧美一级艳片视频免费观看| 在线视频一区二区三区| 日本丶国产丶欧美色综合| 成人高清视频在线| 成人黄色777网| 成人黄色在线网站| 成人动漫av在线| 波多野结衣中文字幕一区 | 欧美成人福利视频| 日韩一区二区三| 精品美女在线播放| 久久婷婷国产综合精品青草| 精品国产亚洲一区二区三区在线观看| 欧美一区二区三区系列电影| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩dvd在线观看| 欧美另类z0zxhd电影| 欧美日韩在线播放一区| 欧美日韩小视频| 欧美男人的天堂一二区| 欧美一区二区啪啪| 精品国内二区三区| 国产欧美va欧美不卡在线| 中文字幕乱码日本亚洲一区二区| 中文子幕无线码一区tr| 亚洲精品一二三四区| 亚洲国产一区视频| 免费成人av在线| 狠狠色狠狠色综合日日91app| 国产传媒一区在线| 99久久精品免费| 9191精品国产综合久久久久久| 日韩欧美一区二区三区在线| www日韩大片| 国产精品免费看片| 一区二区三区四区不卡视频| 视频一区中文字幕| 国产一区二区三区四区五区美女| 国产99久久久国产精品免费看| 91在线播放网址| 欧美挠脚心视频网站| 久久精品亚洲乱码伦伦中文 | 欧美三级视频在线| 欧美mv和日韩mv国产网站| 日本一区二区三区四区在线视频| 国产精品你懂的| 午夜成人在线视频| 国产成人精品免费一区二区| 色94色欧美sute亚洲13| 欧美变态口味重另类| 亚洲乱码国产乱码精品精98午夜 | 日韩精品高清不卡| 国产久卡久卡久卡久卡视频精品| 99久久久久久| 欧美大片免费久久精品三p| 中文字幕欧美三区| 日韩电影在线观看电影| 成人av在线资源| 欧美一区二区免费视频| 亚洲三级电影网站| 久久精品国产精品亚洲红杏| 色嗨嗨av一区二区三区| 欧美精品一区二区三区一线天视频| 亚洲日本乱码在线观看| 久久国产精品免费| 91福利视频网站| 国产精品丝袜在线| 蜜乳av一区二区三区| 色先锋aa成人| 国产日韩欧美电影| 裸体健美xxxx欧美裸体表演| 色哟哟在线观看一区二区三区| 精品国产污网站| 亚洲成年人网站在线观看| 成人91在线观看| 久久亚洲免费视频| 免费成人在线观看| 欧美日韩一区不卡| 亚洲欧美激情插 | 一区二区三区中文在线观看| 国产麻豆一精品一av一免费 | 国产高清无密码一区二区三区| 欧美日韩激情一区| 亚洲免费成人av| 成人一级片在线观看| 精品粉嫩aⅴ一区二区三区四区| 亚洲高清视频在线| 色综合 综合色| 中文字幕日韩一区二区| 国产成人在线观看免费网站| 欧美一区二区成人6969| 亚洲1区2区3区4区| 欧美日韩精品高清| 亚洲国产wwwccc36天堂| 在线观看亚洲专区| 亚洲影院免费观看| 亚洲精品中文字幕在线观看| 欧美精品丝袜中出| www.欧美日韩| 中国色在线观看另类| 国产福利一区二区三区视频| 久久久亚洲午夜电影| 久久99国产精品成人| 日韩精品在线一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品国产色综合久久不卡电影| 亚洲gay无套男同| 欧美日韩国产在线播放网站| 天天综合天天综合色| 91精品国产综合久久蜜臀| 天天综合网 天天综合色| 欧美精品少妇一区二区三区| 日日欢夜夜爽一区| 日韩一区二区影院| 九九精品视频在线看| 26uuu亚洲综合色| 成人午夜激情影院| 亚洲欧洲日产国码二区| 91色porny在线视频| 一区二区三区在线视频观看| 欧美午夜精品免费| 麻豆精品在线观看| 久久久久成人黄色影片| 成人精品高清在线| 亚洲成a人片在线不卡一二三区| 日韩一区二区在线免费观看| 国产乱码精品1区2区3区| 国产精品网站在线| 欧美亚洲动漫制服丝袜| 日韩在线一区二区| 久久久亚洲综合| 色综合欧美在线| 日日摸夜夜添夜夜添精品视频| 精品欧美乱码久久久久久1区2区| 国产成人啪午夜精品网站男同| 亚洲乱码国产乱码精品精可以看| 欧美放荡的少妇| 国产精品综合在线视频| 亚洲欧美日韩在线| 欧美成人伊人久久综合网| 91免费视频观看| 蜜臀av性久久久久蜜臀aⅴ| 国产精品久线在线观看| 欧美狂野另类xxxxoooo| 国产高清不卡一区| 亚洲成人免费影院| 久久综合狠狠综合久久激情| 成人自拍视频在线观看| 亚洲午夜精品久久久久久久久| 在线播放欧美女士性生活| 日韩高清在线观看| 日本一区二区三级电影在线观看| 99久久er热在这里只有精品15| 国产欧美日韩在线看| 欧美精品第1页| 国产精品主播直播| 亚洲综合色区另类av| 国产亚洲综合在线| 欧美在线观看一二区| 精品中文字幕一区二区| 一级精品视频在线观看宜春院 | 日韩三级.com| 在线免费不卡视频| 国产乱码精品1区2区3区| 亚洲综合在线第一页| 久久久久久久国产精品影院| 91成人在线观看喷潮|