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.fukurou.util.StringUtil;
019    import org.opengion.hayabusa.common.HybsSystem;
020    import org.opengion.hayabusa.common.HybsSystemException;
021    import org.opengion.hayabusa.db.DBTableModel;
022    
023    import java.sql.Connection;
024    import java.sql.SQLException;
025    import java.util.Map;
026    import java.util.HashMap;
027    import java.util.Arrays;
028    
029    import org.jfree.chart.LegendItemSource;
030    import org.jfree.data.jdbc.JDBCPieDataset;
031    import org.jfree.data.jdbc.JDBCXYDataset;
032    import org.jfree.data.general.Dataset;
033    import org.jfree.data.general.DefaultValueDataset;
034    
035    import org.jfree.data.category.DefaultCategoryDataset;
036    import org.jfree.data.xy.CategoryTableXYDataset;
037    import org.jfree.data.general.DefaultPieDataset;
038    import org.jfree.data.DefaultKeyedValues;
039    
040    /**
041     * 引数タイプに応じたレン?ー?ータセ?を管?ます?
042     *
043     * タイプ?レン?ー、データセ? の?合わせで、構築するオブジェクトが異なります?
044     *
045     * @version  0.9.0      2007/06/21
046     * @author       Kazuhiko Hasegawa
047     * @since        JDK1.1,
048     */
049    final class TypeRenderer {
050            private static final String REND_CLASS = "org.jfree.chart.renderer." ;
051            private static final String HYBS_CLASS = "org.opengion.hayabusa.io." ;          // 4.1.1.0 (2008/02/04)
052    
053            private final String type ;
054            private final String rend ;             // org.jfree.chart.renderer 以降???
055            private final String dtset ;    // org.opengion.hayabusa.io 以降???
056            private final String plot ;             // 以降???
057    
058            /**
059             * TypeRenderer オブジェクトを作?します?
060             *
061             * チャートタイ?は、外部からチャートを?する?に便利なように、キー?
062             * されて?す?こ?キーに基づ?、ChartFactory クラスの
063             * チャートタイプ変換表に基づ?、レン?ー????タセ?を作?します?
064             * こ?クラスは、これらの変換表の個?の属?を管?て?す?
065             *
066             * @og.rev 5.3.0.0 (2010/12/01) plot 追?
067             *
068             * @param       type            チャート?タイプを区別する??
069             * @param       renderer        チャート?タイプに応じたレン?ーのキー??
070             * @param       dtset           チャート?タイプに応じたデータセ?のキー??
071             * @param       plot            チャート?タイプに応じた?ロ?のキー??
072             */
073    //      public TypeRenderer( final String type,final String renderer,final String dtset ) {
074            public TypeRenderer( final String type,final String renderer,final String dtset,final String plot ) {
075                    this.type  = type ;
076                    this.rend  = renderer ;
077                    this.dtset = dtset ;
078                    this.plot  = plot ;                     // 5.3.0.0 (2010/12/01) plot 追?
079            }
080    
081            /**
082             * チャート?タイプを区別する??を返します?
083             *
084             * @return      チャート?タイプを区別する??
085             */
086            public String getType() { return type; }
087    
088            /**
089             * チャート?タイプに応じたレン?ーのキー??を返します?
090             *
091             * @return      チャート?タイプに応じたレン?ーのキー??
092             */
093            public String getRendererType() { return rend; }
094    
095            /**
096             * チャート?タイプに応じたレン?ーオブジェクトを返します?
097             *
098             * org.jfree.chart.renderer パッケージのサブモジュールのレン?ークラス?
099             * 先に登録してある レン?ーのキー?? と合?して、クラスを動?作?します?
100             *
101             * @og.rev 4.1.1.0 (2008/02/04) Barチャート追?
102             * @og.rev 5.3.0.0 (2010/12/01) レン?ー?null の場合?対?
103             *
104             * @return      LegendItemSource チャート?タイプに応じたレン?ーオブジェク?存在しな??合?、null)
105             */
106            public LegendItemSource getRenderer() {
107                    if( rend == null ) { return null; }             // 5.3.0.0 (2010/12/01)
108    
109                    String key ;
110                    if( type.startsWith( "Hybs" ) ) {
111                            key = HYBS_CLASS + rend ;
112                    }
113                    else {
114                            key = REND_CLASS + rend ;
115                    }
116    
117                    return (LegendItemSource)StringUtil.newInstance( key ) ;
118            }
119    
120            /**
121             * チャート?タイプに応じたデータセ?のキー??を返します?
122             *
123             * @return      チャート?タイプに応じたデータセ?のキー??
124             */
125            public String getDatasetType() { return dtset; }
126    
127            /**
128             * チャート?タイプに応じた?ロ?のキー??を返します?
129             *
130             * @og.rev 5.3.0.0 (2010/12/01) 新規追?
131             *
132             * @return      チャート?タイプに応じた?ロ?のキー??
133             */
134            public String getPlotType() { return plot; }
135    }