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     */
016    package org.opengion.hayabusa.io;
017    
018    import org.opengion.hayabusa.db.DBTableModel;
019    
020    import java.awt.Color;                                                  // 6.0.2.2 (2014/10/03)
021    import java.sql.Connection;
022    import java.sql.SQLException;
023    
024    import org.jfree.data.category.CategoryDataset;
025    import 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     */
053    public 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    }