    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.hayabusa.io;
    017
    018import org.opengion.hayabusa.db.DBTableModel;
    019
    020import java.awt.Color;                                                  // 6.0.2.2 (2014/10/03)
    021import java.sql.Connection;
    022import java.sql.SQLException;
    023
    024import org.jfree.data.category.CategoryDataset;
    025import org.jfree.data.Range;
    026
    027/**
    028 * HybsJDBCCategoryDataset は、org.jfree.data.jdbc.JDBCCategoryDataset を継承したサブクラスで、
    029 * executeQuery(Connection , String )  をオーバーライドしています。
    030 * これは、元のソースのデータベース検索結果を内部で持っておき、getValue(int row, int column)
    031 * メソッドで直接値を返します。
    032 * select category,series1,series2,series3,･･･ from ･･･
    033 * series の横持ち(標準と同じ) 対応です。
    034 * category カラムの値は、カテゴリのラベルになり、series1,2,3 のラベルがシリーズラベル、値が
    035 * seriesの値になります。
    036 *
    037 * カテゴリのカラー名の指定を行う場合、最後のカラムが、カラー名の文字列になります。
    038 * select category,series1,series2,series3,･･･,color from ･･･
    039 * color文字列の検索結果は、Dataset には含まれません。
    040 *
    041 * なお、Colorコードは、このクラスで作成しますが、Renderer に与える必要があります。
    042 * 通常のRenderer には、categoryにカラーを指定する機能がありませんので、HybsBarRenderer に
    043 * setCategoryColor( Color[] ) メソッドを用意します。(正確には、HybsDrawItem インターフェース)
    044 * このRenderer で、getItemPaint( int  , int )メソッドをオーバーライドすることで、カテゴリごとの
    045 * 色を返します。
    046 *
    047 * @og.rev 3.8.9.2 (2007/07/28) 新規作成
    048 *
    049 * @version  0.9.0  2001/05/05
    050 * @author   Kazuhiko Hasegawa
    051 * @since    JDK1.1,
    052 */
    053public interface HybsDataset extends CategoryDataset {
    054
    055        /**
    056         * レンジオブジェクトを取得します。(独自メソッド)
    057         *
    058         * @return      レンジオブジェクト
    059         */
    060        Range getRange() ;
    061
    062        /**
    063         * CategoryDataset を構築するに当たり、初期パラメータを設定します。
    064         *
    065         * @og.rev 6.0.2.2 (2014/10/03) 新規追加
    066         *
    067         * @param lbls  シリーズのラベル名配列
    068         * @param isColCate  カテゴリのカラー名の指定有無(true:使用する)
    069         * @param isPareto   パレート図用のDatasetとして処理するかどうか(true:処理する)
    070         */
    071        void initParam( final String[] lbls , final boolean isColCate , final boolean isPareto );
    072
    073        /**
    074         * コネクションと、SQL文字列から、CategoryDataset のデータを作成します。
    075         * 元となる処理は、org.jfree.data.jdbc.JDBCCategoryDataset#executeQuery( Connection,String ) です。
    076         *
    077         * このメソッドでは、先に #initParam(String[],boolean,isPareto) のパラメータを使用して
    078         * 検索した結果のデータを加工、処理します。
    079         * また、内部的に、データをキャッシュする事と、データ範囲を示す レンジオブジェクト を作成します。
    080         *
    081         * @og.rev 6.0.2.2 (2014/10/03) 新規追加
    082         *
    083         * @param con  コネクション
    084         * @param query  SQL文字列
    085         *
    086         * @throws SQLException データベースアクセス時のエラー
    087         * @see         org.jfree.data.jdbc.JDBCCategoryDataset#executeQuery( Connection,String )
    088         */
    089        void execute( final Connection con, final String query ) throws SQLException ;
    090
    091        /**
    092         * DBTableModelオブジェクトから、CategoryDataset のデータを作成します。
    093         * openGionの独自処理メソッドです。
    094         *
    095         * このメソッドでは、先に #initParam(String[],boolean,isPareto) のパラメータを使用して
    096         * 検索した結果のデータを加工、処理します。
    097         * また、内部的に、データをキャッシュする事と、データ範囲を示す レンジオブジェクト を作成します。
    098         *
    099         * @og.rev 6.0.2.2 (2014/10/03) 新規追加
    100         *
    101         * @param table DBTableModelオブジェクト
    102         * @see         #execute( Connection,String )
    103         */
    104        void execute( final DBTableModel table ) ;
    105
    106        /**
    107         * categoryカラー配列を取得します。(独自メソッド)
    108         *
    109         * このクラスは、一番最後のカラムを、色文字列として処理し、categoryにColorを指定できます。
    110         * select文で指定されていなかった場合は、null を返します。
    111         *
    112         * select category,series1,series2,series3,･･･,color from ･･･
    113         *
    114         * なお、Colorコードは、このクラスで作成しますが、Renderer に与える必要があります。
    115         * 通常のRenderer には、categoryにカラーを指定する機能がありませんので、HybsBarRenderer に
    116         * setCategoryColor( Color[] ) メソッドを用意します。(正確には、HybsDrawItem インターフェース)
    117         * このRenderer で、getItemPaint( int  , int )メソッドをオーバーライドすることで、カテゴリごとの
    118         * 色を返します。
    119         * この設定を行うと、シリーズは、カテゴリと同一色になります。
    120         *
    121         * @og.rev 6.0.2.2 (2014/10/03) 新規追加
    122         *
    123         * @return      categoryカラー配列(なければ null)
    124         */
    125        Color[] getCategoryColor() ;
    126}