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}