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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wafermapdataset.java

?? jfreechart1.0.1 jsp繪制圖表的開發(fā)包
?? JAVA
字號:
/* ===========================================================
 * JFreeChart : a free chart library for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
 *
 * Project Info:  http://www.jfree.org/jfreechart/index.html
 *
 * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
 * USA.  
 *
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
 * in the United States and other countries.]
 *
 * --------------------
 * WaferMapDataset.java
 * --------------------
 * (C)opyright 2003-2005, by Robert Redburn and Contributors.
 *
 * Original Author:  Robert Redburn;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);
 *
 * $Id: WaferMapDataset.java,v 1.3.2.1 2005/10/25 21:32:29 mungady Exp $
 *
 * Changes
 * -------
 * 25-Nov-2003 : Version 1 contributed by Robert Redburn (with some 
 *               modifications to match style conventions) (DG);
 * 
 */

package org.jfree.data.general;

import java.util.Set;
import java.util.TreeSet;

import org.jfree.data.DefaultKeyedValues2D;

/**
 * A dataset that can be used with the {@link org.jfree.chart.plot.WaferMapPlot}
 * class.
 * 
 * @author Robert Redburn
 */
public class WaferMapDataset extends AbstractDataset {

    /** 
     * Storage structure for the data values (row key is chipx, column is 
     * chipy)
     */
    private DefaultKeyedValues2D data;
    
    /** wafer x dimension */
    private int maxChipX;
    
    /** wafer y dimension */
    private int maxChipY;
    
    /** space to draw between chips */
    private double chipSpace;
    
    /** maximum value in this dataset */
    private Double maxValue;
    
    /** minimum value in this dataset */
    private Double minValue;
    
    /** default chip spacing */
    private static final double DEFAULT_CHIP_SPACE = 1d;
    
    /**
     * Creates a new dataset using the default chipspace.
     * 
     * @param maxChipX  the wafer x-dimension.
     * @param maxChipY  the wafer y-dimension.
     */
    public WaferMapDataset(int maxChipX, int maxChipY) {
        this(maxChipX, maxChipY, null);
    }
    
    /**
     * Creates a new dataset.
     * 
     * @param maxChipX  the wafer x-dimension. 
     * @param maxChipY  the wafer y-dimension.
     * @param chipSpace  the space between chips.
     */
    public WaferMapDataset(int maxChipX, int maxChipY, Number chipSpace) {
        
        this.maxValue = new Double(Double.NEGATIVE_INFINITY);
        this.minValue = new Double(Double.POSITIVE_INFINITY);
        this.data = new DefaultKeyedValues2D();
        
        this.maxChipX = maxChipX;
        this.maxChipY = maxChipY;
        if (chipSpace == null) {
            this.chipSpace = DEFAULT_CHIP_SPACE; 
        }
        else {
            this.chipSpace = chipSpace.doubleValue();
        }

    }

    /**
     * Sets a value in the dataset.
     * 
     * @param value  the value.
     * @param chipx  the x-index for the chip.
     * @param chipy  the y-index for the chip.
     */
    public void addValue(Number value, Comparable chipx, Comparable chipy) {
        setValue(value, chipx, chipy);
    }
    
    /**
     * Adds a value to the dataset.
     * 
     * @param v  the value.
     * @param x  the x-index.
     * @param y  the y-index.
     */
    public void addValue(int v, int x, int y) {
        setValue(new Double(v), new Integer(x), new Integer(y));
    }
    
    /**
     * Sets a value in the dataset and updates min and max value entries.
     * 
     * @param value  the value.
     * @param chipx  the x-index.
     * @param chipy  the y-index.
     */
    public void setValue(Number value, Comparable chipx, Comparable chipy) {
        this.data.setValue(value, chipx, chipy);
        if (isMaxValue(value)) {
            this.maxValue = (Double) value;
        }
        if (isMinValue(value)) {
            this.minValue = (Double) value;
        }
    }

    /**
     * Returns the number of unique values.
     * 
     * @return The number of unique values.
     */
    public int getUniqueValueCount() {
        return getUniqueValues().size();
    }

    /**
     * Returns the set of unique values.
     * 
     * @return The set of unique values.
     */
    public Set getUniqueValues() {
        Set unique = new TreeSet();
        //step through all the values and add them to the hash
        for (int r = 0; r < this.data.getRowCount(); r++) {
            for (int c = 0; c < this.data.getColumnCount(); c++) {
                Number value = this.data.getValue(r, c);
                if (value != null) {
                    unique.add(value);
                }
            }
        }
        return unique;
    }

    /**
     * Returns the data value for a chip.
     * 
     * @param chipx  the x-index.
     * @param chipy  the y-index.
     * 
     * @return The data value.
     */
    public Number getChipValue(int chipx, int chipy) {
        return getChipValue(new Integer(chipx), new Integer(chipy));
    }

    /**
     * Returns the value for a given chip x and y or null.
     * 
     * @param chipx  the x-index.
     * @param chipy  the y-index.
     * 
     * @return The data value.
     */
    public Number getChipValue(Comparable chipx, Comparable chipy) {
        int rowIndex = this.data.getRowIndex(chipx);
        if (rowIndex < 0) {
            return null;
        }
        int colIndex = this.data.getColumnIndex(chipy);
        if (colIndex < 0) {
            return null;
        }
        return this.data.getValue(rowIndex, colIndex);
    }

    /**
     * Tests to see if the passed value is larger than the stored maxvalue.
     * 
     * @param check  the number to check.
     * 
     * @return A boolean.
     */
    public boolean isMaxValue(Number check) {
        if (check.doubleValue() > this.maxValue.doubleValue()) {
            return true;
        }
        return false;
    }

    /**
     * Tests to see if the passed value is smaller than the stored minvalue.
     * 
     * @param check  the number to check.
     * 
     * @return A boolean.
     */
    public boolean isMinValue(Number check) {
        if (check.doubleValue() < this.minValue.doubleValue()) {
            return true;
        }
        return false;
    }
    
    /** 
     * Returns the maximum value stored in the dataset.
     * 
     * @return The maximum value.
     */
    public Number getMaxValue() {
        return this.maxValue;   
    }
    
    /** 
     * Returns the minimum value stored in the dataset.
     * 
     * @return The minimum value.
     */
    public Number getMinValue() {
        return this.minValue;   
    }

    /**
     * Returns the wafer x-dimension.
     * 
     * @return The number of chips in the x-dimension.
     */
    public int getMaxChipX() {
        return this.maxChipX;
    }

    /**
     * Sets wafer x dimension.
     * 
     * @param maxChipX  the number of chips in the x-dimension.
     */
    public void setMaxChipX(int maxChipX) {
        this.maxChipX = maxChipX;
    }

    /**
     * Returns the number of chips in the y-dimension.
     * 
     * @return The number of chips.
     */
    public int getMaxChipY() {
        return this.maxChipY;
    }

    /**
     * Sets the number of chips in the y-dimension.
     * 
     * @param maxChipY  the number of chips.
     */
    public void setMaxChipY(int maxChipY) {
        this.maxChipY = maxChipY;
    }

    /**
     * Returns the space to draw between chips.
     * 
     * @return The space.
     */
    public double getChipSpace() {
        return this.chipSpace;
    }

    /**
     * Sets the space to draw between chips.
     * 
     * @param space  the space.
     */
    public void setChipSpace(double space) {
        this.chipSpace = space;
    }
    
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级欧美三级| 亚洲精品国产无天堂网2021| 日韩一区二区三区四区| 3atv在线一区二区三区| 欧美片网站yy| 91精品国产手机| 日韩视频国产视频| 精品国产免费一区二区三区四区 | 在线电影欧美成精品| 成人精品小蝌蚪| 成人高清视频免费观看| 成人午夜在线播放| 91首页免费视频| 色综合久久精品| 欧美日韩一区二区三区在线| 欧美二区三区91| 日韩你懂的在线播放| 欧美精品一区二区三区视频| 国产日韩欧美不卡在线| 日韩一区在线免费观看| 亚洲乱码精品一二三四区日韩在线| 亚洲乱码中文字幕综合| 午夜电影一区二区三区| 麻豆精品视频在线观看视频| 国产成人激情av| 91国偷自产一区二区开放时间| 欧美色男人天堂| 欧美xfplay| 成人免费在线播放视频| 日韩精品电影一区亚洲| 天堂精品中文字幕在线| 亚洲大型综合色站| 另类小说色综合网站| 国产91在线看| 91社区在线播放| 7777精品伊人久久久大香线蕉| 精品国产精品网麻豆系列| 国产精品福利在线播放| 亚洲成av人在线观看| 美女视频黄频大全不卡视频在线播放| 美女一区二区久久| 99re热视频精品| 欧美日本免费一区二区三区| 久久亚洲影视婷婷| 亚洲女女做受ⅹxx高潮| 麻豆精品一二三| 91在线观看美女| 欧美一区二区免费观在线| 中文字幕免费不卡| 日本vs亚洲vs韩国一区三区二区 | 另类人妖一区二区av| 一区二区三区欧美日| 99久久久久久| 欧美一区日本一区韩国一区| 欧美国产一区二区在线观看| 亚洲欧美国产77777| 日本在线观看不卡视频| 99精品视频一区二区三区| 日韩一区二区三区在线观看 | 日韩av网站在线观看| 不卡av免费在线观看| 4438x成人网最大色成网站| 亚洲欧洲无码一区二区三区| 日韩高清在线电影| 日本久久电影网| 一区二区三区蜜桃网| 日韩av中文字幕一区二区三区| 成人国产精品视频| 日韩欧美一区中文| 亚洲另类一区二区| 国产在线不卡一卡二卡三卡四卡| 91论坛在线播放| 久久精品夜色噜噜亚洲a∨| 日韩精品一卡二卡三卡四卡无卡| 成人综合日日夜夜| 精品99一区二区三区| 亚洲国产sm捆绑调教视频| 成人网页在线观看| 久久影院视频免费| 日韩中文字幕一区二区三区| 99re这里都是精品| 欧美激情一区在线观看| 精品一区二区日韩| 91麻豆精品国产自产在线| 亚洲高清中文字幕| 一本久久精品一区二区| 综合色天天鬼久久鬼色| 国产不卡在线一区| 精品国产一区二区三区久久影院| 日韩电影在线看| 欧美二区三区的天堂| 亚洲1区2区3区视频| 欧美亚洲一区二区在线| 亚洲欧美日韩中文播放| 99久久久精品免费观看国产蜜| 中文字幕av在线一区二区三区| 国产精品1024| 久久久欧美精品sm网站| 国产在线视频不卡二| 久久众筹精品私拍模特| 国产原创一区二区| 亚洲精品在线三区| 国产麻豆精品在线| 久久精品人人爽人人爽| 高清成人在线观看| 亚洲国产精品黑人久久久| 国产精品乡下勾搭老头1| 久久久久九九视频| 国产精品99久久久久久似苏梦涵 | 91黄色激情网站| 亚洲韩国精品一区| 欧美精品久久天天躁| 日本亚洲视频在线| 日韩久久久久久| 国产剧情一区二区| 国产精品色哟哟网站| 成人av影视在线观看| 91日韩精品一区| 亚洲男女一区二区三区| 欧美午夜精品一区| 久久精品国产99国产| 欧美—级在线免费片| 91老师片黄在线观看| 一区二区三区不卡视频在线观看| 欧美精品aⅴ在线视频| 久色婷婷小香蕉久久| 国产亚洲一二三区| 91亚洲精华国产精华精华液| 亚洲第一福利视频在线| 日韩亚洲欧美成人一区| 国产69精品久久久久毛片| 亚洲三级小视频| 69堂亚洲精品首页| 国产精品91一区二区| 一区二区欧美国产| 日韩高清不卡一区| 免费精品视频在线| 久久精品夜色噜噜亚洲a∨| 成人理论电影网| 五月婷婷激情综合网| 2020国产成人综合网| 91影视在线播放| 日日夜夜精品视频天天综合网| 2欧美一区二区三区在线观看视频| 成人亚洲一区二区一| 亚洲成人av在线电影| 国产亚洲欧美一区在线观看| 欧洲一区在线观看| 美女高潮久久久| 亚洲欧美自拍偷拍色图| 日韩一区二区三区免费看 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 久久夜色精品国产欧美乱极品| 色综合久久久久久久久久久| 日本不卡123| 亚洲三级在线看| 日韩精品一区国产麻豆| 91美女视频网站| 狠狠狠色丁香婷婷综合激情| 亚洲国产一区二区视频| 国产亚洲一区二区三区| 欧美一级高清片| 日韩不卡在线观看日韩不卡视频| 欧美一级在线视频| 日韩电影在线免费观看| av电影在线不卡| 欧美日韩aaa| 亚洲国产视频在线| 色偷偷成人一区二区三区91 | 91论坛在线播放| 99热精品一区二区| 精品国产乱子伦一区| 另类小说一区二区三区| 69堂成人精品免费视频| 男人操女人的视频在线观看欧美 | 天堂资源在线中文精品| 欧美日韩国产另类一区| 国产精品88av| 国产在线不卡视频| 精品中文av资源站在线观看| 亚洲女人****多毛耸耸8| 日韩一区二区电影| www.亚洲国产| 亚洲一卡二卡三卡四卡五卡| 欧美性极品少妇| 青青草视频一区| 久久精品水蜜桃av综合天堂| 96av麻豆蜜桃一区二区| 日韩国产精品久久久| 7777精品伊人久久久大香线蕉 | 欧洲亚洲精品在线| 亚洲综合丝袜美腿| 国产成a人无v码亚洲福利| 中文字幕一区av| 91在线免费播放| 免费观看91视频大全| 国产精品二三区| 精品成a人在线观看| 国产精品毛片a∨一区二区三区| 在线一区二区三区做爰视频网站|