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

📄 defaultintervalcategorydataset.java

📁 Web图形化的Java库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

        // the CategoryDataset interface expects a list of categories, but
        // we've stored them in an array...
        if (this.categoryKeys == null) {
            return new ArrayList();
        }
        else {
            return Collections.unmodifiableList(Arrays.asList(this.categoryKeys));
        }

    }

    /**
     * Sets the categories for the dataset.
     *
     * @param categoryKeys    An array of objects representing the categories in the dataset.
     */
    public void setCategoryKeys(Comparable[] categoryKeys) {

        // check arguments...
        if (categoryKeys == null) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.setCategories(...): null not permitted.");
        }

        if (categoryKeys.length != startData[0].length) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.setCategoryKeys(...): "
                + "the number of categories does not match the data.");
        }

        for (int i = 0; i < categoryKeys.length; i++) {
            if (categoryKeys[i] == null) {
                throw new IllegalArgumentException(
                    "DefaultIntervalCategoryDataset.setCategoryKeys(...): "
                    + "null category not permitted.");
            }
        }

        // make the change...
        this.categoryKeys = categoryKeys;
        fireDatasetChanged();

    }

    /**
     * Returns the data value for one category in a series.
     * <P>
     * This method is part of the CategoryDataset interface.  Not particularly
     * meaningful for this class...returns the end value.
     * @param series    The required series (zero based index).
     * @param category  The required category.
     * @return The data value for one category in a series (null possible).
     */
    public Number getValue(Comparable series, Comparable category) {
        int seriesIndex = getSeriesIndex(series);
        int itemIndex = getItem(category);
        return getValue(seriesIndex, itemIndex);
    }

    /**
     * Returns the data value for one category in a series.
     * <P>
     * This method is part of the CategoryDataset interface.  Not particularly
     * meaningful for this class...returns the end value.
     *
     * @param series    The required series (zero based index).
     * @param category  The required category.
     *
     * @return The data value for one category in a series (null possible).
     */
    public Number getValue(int series, int category) {

        return getEndValue(series, category);

    }

    /**
     * Returns the start data value for one category in a series.
     * <P>
     * This method is part of the IntervalTableDataset interface.
     *
     * @param series    The required series.
     * @param category  The required category.
     *
     * @return The start data value for one category in a series (null possible).
     */
    public Number getStartValue(Comparable series, Comparable category) {
        int seriesIndex = getSeriesIndex(series);
        int itemIndex = getItem(category);
        return getStartValue(seriesIndex, itemIndex);
    }

    /**
     * Returns the start data value for one category in a series.
     * <P>
     * This method is part of the IntervalTableDataset interface.
     *
     * @param series    The required series (zero based index).
     * @param category  The required category.
     *
     * @return The start data value for one category in a series (null possible).
     */
    public Number getStartValue(int series, int category) {

        // check arguments...
        if ((series < 0) || (series >= getSeriesCount())) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.getValue(...): "
                + "series index out of range.");
        }

        if ((category < 0) || (category >= getCategoryCount())) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.getValue(...): "
                + "category index out of range.");
        }

        // fetch the value...
        return startData[series][category];

    }

    /**
     * Returns the end data value for one category in a series.
     * <P>
     * This method is part of the IntervalTableDataset interface.
     *
     * @param series  the required series.
     * @param category  the required category.
     *
     * @return the end data value for one category in a series (null possible).
     */
    public Number getEndValue(Comparable series, Comparable category) {
        int seriesIndex = getSeriesIndex(series);
        int itemIndex = getItem(category);
        return getEndValue(seriesIndex, itemIndex);
    }

    /**
     * Returns the end data value for one category in a series.
     * <P>
     * This method is part of the IntervalTableDataset interface.
     *
     * @param series  the required series (zero based index).
     * @param category  the required category.
     *
     * @return the end data value for one category in a series (null possible).
     */
    public Number getEndValue(int series, int category) {

        // check arguments...
        if ((series < 0) || (series >= getSeriesCount())) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.getValue(...): "
                + "series index out of range.");
        }

        if ((category < 0) || (category >= getCategoryCount())) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.getValue(...): "
                + "category index out of range.");
        }

        // fetch the value...
        return endData[series][category];

    }

    /**
     * Sets the start data value for one category in a series.
     * @param series    The series (zero-based index).
     * @param category  The category.
     * @param value The value.
     */
    public void setStartValue(int series, Object category, Number value) {

        // does the series exist?
        if ((series < 0) || (series > getSeriesCount())) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.setValue: "
                + "series outside valid range.");
        }

        // is the category valid?
        int categoryIndex = getCategoryIndex(category);
        if (categoryIndex < 0) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.setValue: "
                + "unrecognised category.");
        }

        // update the data...
        startData[series][categoryIndex] = value;
        fireDatasetChanged();

    }

    /**
     * Sets the end data value for one category in a series.
     *
     * @param series  the series (zero-based index).
     * @param category  the category.
     *
     * @param value the value.
     */
    public void setEndValue(int series, Object category, Number value) {

        // does the series exist?
        if ((series < 0) || (series > getSeriesCount())) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.setValue: "
                + "series outside valid range.");
        }

        // is the category valid?
        int categoryIndex = getCategoryIndex(category);
        if (categoryIndex < 0) {
            throw new IllegalArgumentException(
                "DefaultIntervalCategoryDataset.setValue: "
                + "unrecognised category.");
        }

        // update the data...
        endData[series][categoryIndex] = value;
        fireDatasetChanged();

    }

    /**
     * Returns the index for the given category.
     *
     * @param category  the category.
     *
     * @return the index.
     */
    private int getCategoryIndex(Object category) {

        int result = -1;
        for (int i = 0; i < this.categoryKeys.length; i++) {
            if (category.equals(this.categoryKeys[i])) {
                result = i;
                break;
            }
        }
        return result;

    }

    /**
     * Generates an array of keys, by appending a space plus an integer
     * (starting with 1) to the supplied prefix string.
     *
     * @param count  the number of keys required.
     * @param prefix  the name prefix.
     *
     * @return an array of <i>prefixN</i> with N = { 1 .. count}.
     */
    private Comparable[] generateKeys(int count, String prefix) {

        Comparable[] result = new Comparable[count];
        String name;
        for (int i = 0; i < count; i++) {
            name = prefix + (i + 1);
            result[i] = name;
        }
        return result;

    }

    /**
     * Returns a column key.
     *
     * @param item  the column index.
     *
     * @return The column key.
     */
    public Comparable getColumnKey(int item) {
        return this.categoryKeys[item];
    }

    /**
     * Returns a column index.
     *
     * @param columnKey  the column key.
     *
     * @return The column index.
     */
    public int getColumnIndex(Comparable columnKey) {
        List categories = getCategories();
        return categories.indexOf(columnKey);
    }

    /**
     * Returns a row index.
     *
     * @param rowKey  the row key.
     *
     * @return The row index.
     */
    public int getRowIndex(Comparable rowKey) {
        List seriesKeys = getSeries();
        return seriesKeys.indexOf(rowKey);
    }

    /**
     * Returns a list of the series in the dataset.
     * <P>
     * Supports the CategoryDataset interface.
     *
     * @return a list of the series in the dataset.
     */
    public List getRowKeys() {

        // the CategoryDataset interface expects a list of series, but
        // we've stored them in an array...
        if (this.seriesKeys == null) {
            return new java.util.ArrayList();
        }
        else {
            return Collections.unmodifiableList(Arrays.asList(this.seriesKeys));
        }

    }

    /**
     * Returns the name of the specified series.
     *
     * @param series  the index of the required series (zero-based).
     *
     * @return the name of the specified series.
     */
    public Comparable getRowKey(int series) {

        // check argument...
        if ((series >= getSeriesCount()) || (series < 0)) {
            throw new IllegalArgumentException(
                "DefaultCategoryDataset.getSeriesName(int): no such series.");
        }

        // return the value...
        return seriesKeys[series];

    }

    /**
     * Returns the number of categories in the dataset.
     * <P>
     * This method is part of the CategoryDataset interface.
     *
     * @return the number of categories in the dataset.
     */
    public int getColumnCount() {

        int result = 0;

        if (startData != null) {
            if (getSeriesCount() > 0) {
                result = startData[0].length;
            }
        }

        return result;

    }

    /**
     * Returns the number of series in the dataset (possibly zero).
     *
     * @return the number of series in the dataset.
     */
    public int getRowCount() {

        int result = 0;
        if (startData != null) {
            result = startData.length;
        }
        return result;

    }

}

⌨️ 快捷键说明

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