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.taglib;
017    
018    import org.opengion.fukurou.db.ConnectionFactory;
019    import org.opengion.fukurou.util.StringUtil;
020    import org.opengion.hayabusa.common.HybsSystem;
021    import org.opengion.hayabusa.common.HybsSystemException;
022    import org.opengion.hayabusa.io.ChartDataset;
023    import org.opengion.hayabusa.db.DBTableModel;
024    
025    import java.sql.SQLException;
026    import java.sql.Connection;
027    import java.io.ObjectOutputStream;
028    import java.io.ObjectInputStream;
029    import java.io.IOException;
030    
031    /**
032     * BODYéƒ¨ã«æŒ?®šã?SQLã®æ¤œç´¢çµæžœã‚’グラãƒ?å†??棒ã?ç·?ã§è¡¨ç¤ºã™ã‚‹ã‚¿ã‚°ã§ã™ã?
033     *
034     * グラフ化ã«ã¯ã€JFreeChart (http://www.jfree.org/jfreechart/) を使用ã—ã¦ã?¾ã™ã?
035     * chartType 属æ?ã«ã¯ã€ChartFactoryクラスã§å®šç¾©ã•れãŸå¤‰æ›è¡¨ã«åŸºã¥ãã?ãƒãƒ£ãƒ¼ãƒˆã?
036     * 種類をæŒ?®šã—ã¾ã™ã?ã“ã?キーã‹ã‚‰ã€ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã‚?ƒ‡ãƒ¼ã‚¿ã‚»ãƒ?ƒˆã‚¯ãƒ©ã‚¹ã‚’求ã‚ã¾ã™ã?
037     * ãれãžã‚Œã®ã‚¯ãƒ©ã‚¹æ¯Žã«ç´°ã‹ã„設定å?ãŒã‚りã¾ã™ãŒã€å?期レベルã¨ã—ã¾ã—ã¦ã¯ã€ä¸»è¦ãƒãƒ£ãƒ¼ãƒˆã?
038     * 主è¦å±žæ?ã®ã¿ã‚µãƒã?トã—ã¾ã™ã?ã¾ãŸã?æŒ?®šã? chartType ã§ã¯ä½¿ç”¨ã—ãªã?±žæ?を指定ã—ãŸå?åˆã§ã‚?
039     * å˜ã«ç„¡è¦–ã™ã‚‹ã ã‘ã§ã€è­¦å‘Šç­‰ã?ã‚りã¾ã›ã‚“ã®ã§ã€ã”注æ„ãã?•ã??
040     *
041     * å?±žæ?ã¯ã€{@XXXX} 変数ãŒä½¿ç”¨ã§ãã¾ã™ã?
042     * ã“れã¯ã€ServletRequest ã‹ã‚‰ã€XXXX をキーã«å€¤ã‚’å–りå?ã?ã“ã?変数ã«å‰²ã‚Šå½“ã¦ã¾ã™ã?
043     * ã¤ã¾ã‚Šã?ã“ã?XXXXをキーã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆã™ã‚Œã?ã€ã“ã®å¤‰æ•°ã«å€¤ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
044     *
045     * useTableData="false"(åˆæœŸå€¤)ã®å ´åˆã?ã€BODYéƒ¨ã«æ›¸ã‹ã‚Œã?SQL æ–?‚’実行ã—ã¦ãƒ??ã‚¿ã‚’å–å¾—ã—ã¾ã™ã?
046     * useTableData="true" ã«ã™ã‚‹ã¨ã€ãã®å‰ã? query ã‚¿ã‚°ç­‰ã§ä½œæ?ã—㟠DBTableModel を利用ã—ã¦
047     * グラフ化ã—ã¾ã™ã?ãã?å ´åˆã?ã€BODY部㮠SQL æ–??ã€ç„¡è¦–ã•れã¾ã™ã?
048     * 利用ã™ã‚‹ DBTableModel ã¯ã€tableId 㨠scope 属æ?ã‹ã‚‰å–å¾—ã—ã¾ã™ã?
049     *
050     * @og.formSample
051     * â—å½¢å¼ï¼?lt;og:chartDataset renderer="…" … />
052     * â—body?šã‚ã‚?EVAL_BODY_BUFFERED:BODYを評価ã—ã?{@XXXX} ã‚’è§£æžã—ã¾ã?
053     *
054     * â—Tag定義??
055     *   <og:chartDataset
056     *       chartType        â—‹ã?TAG】ChartDataset ã®ãƒ??タタイプをæŒ?®šã—ã¾ã?å¿??)ã€?
057     *       dbid               ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Datasetオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã?
058     *       useTableData       ã€TAG】グラフ化ã™ã‚‹ãƒ??ã‚¿ã‚?DBTableModel ã‹ã‚‰ä½œæ?ã™ã‚‹ã‹ã©ã?‹(åˆæœŸå€¤:false)
059     *       tableId            ã€TAGã€?通常使ã?¾ã›ã‚“)sessionã‹ã‚‰æ‰?¾—ã™ã‚?DBTableModelオブジェクトã? ID (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
060     *       scope              ã€TAG】キャãƒ?‚·ãƒ¥ã™ã‚‹å ´åˆã?スコープ[request/page/session/applicaton]を指定ã—ã¾ã?åˆæœŸå€¤:session)
061     *       baseLegend         ã€TAG】シリーズå˜ä½ã?凡ä¾?ã®è¡¨ç¤ºå¯å¦ã‚’設定ã—ã¾ã?
062     *       valueLabel         ã€TAG】縦軸ã®è¡¨ç¤ºå称を指定ã—ã¾ã?
063     *       markValues         ã€TAG】ã?ーカーラインã®è¨­å®šå?をカンマ区åˆ?‚Šå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã?
064     *       markColors         ã€TAG】ã?ーカーラインã®è‰²ã‚’カンマ区åˆ?‚Šå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã?
065     *       markOverColors     ã€TAG】ã?ーカーラインã®è¶?Žæ™‚ã?Shape色をカンマ区åˆ?‚Šå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã?
066     *       dynamicOCNo        ã€TAG】動çš?ªãƒžã?カーラインã®åŸºæº–シリーズ番å·ã‚’設定ã—ã¾ã?åˆæœŸå€¤:null)
067     *       useMarkAnchor      ã€TAG】ã?ーカーラインæç”»æ™‚ã«ã€ãã®è¨­å®šå?を表示ã—ã¾ã?
068     *       lowerBound         ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ç¸¦è»¸ã®æœ?°å?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:自動計ç®?
069     *       upperBound         ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ç¸¦è»¸ã®æœ?¤§å€¤ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:自動計ç®?
070     *       tickSize           ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?縦軸ã®ç›®ç››ã?å¹?‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:自動計ç®?
071     *       useGradient        ã€TAG】ãƒãƒ¼ãƒãƒ£ãƒ¼ãƒˆã?グラãƒ??ション処ç?‚’行ã†ã‹ã©ã?‹[true/false]ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:false)
072     *       shapesVisible      ã€TAG】ラインãƒãƒ£ãƒ¼ãƒˆã?ãƒã‚¤ãƒ³ãƒˆã‚’四角表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true)
073     *       shapeColors        ã€TAG】データ毎ã«Shapeã‚’å?り替ãˆã‚‹æ™‚ã?色ã®ç¹°è¿”ã—パターンを文字å?é…å?ã§æŒ?®šã—ã¾ã?
074     *       shapeScale         ã€TAG】shapeã®å¤§ãã•ã‚’å?çŽ?Œ‡å®šã§å¤‰æ›´ã—ã¾ã?åˆæœŸå€¤:null)
075     *       useDottedLine      ã€TAG】ラインãƒãƒ£ãƒ¼ãƒˆã?線をドットラインã«ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false ç·šå?)
076     *       seriesColors       ã€TAG】è¤?•°ãƒãƒ£ãƒ¼ãƒˆæç”»æ™‚ã?ãƒãƒ£ãƒ¼ãƒˆè‰²ã®ç¹°è¿”ã—パターンをCVSå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã?
077     *       valueLabelsVisible ã€TAG】Value(縦軸)ã®ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])
078     *       valueMarksVisible  ã€TAG】Value(縦軸)ã®ãƒžã?カーを表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])
079     *       itemLabelVisible   ã€TAG】データã®å€¤(itemText)を表示ã™ã‚‹ã‹ã©ã?‹[true/false/last]を指定ã—ã¾ã?åˆæœŸå€¤:false[表示ã—ãªã„])
080     *       useItemLabelSep    ã€TAG】データã®å€¤(itemText)ã®è¡¨ç¤ºã«ã€æ¡åŒºåˆ?‚Šæ–?­—を使用ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true[使用ã™ã‚‹])
081     *       valueInset         ã€TAG】縦軸ã®è¡¨ç¤ºé ˜åŸŸINSET値(double)を指定ã—ã¾ã?
082     *       barMaxWidth        ã€TAG】BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹??æœ?¤§å€¤(0.0??.0)を指定ã—ã¾ã?
083     *       barItemMargin      ã€TAG】BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?アイãƒ?ƒ ã®ãƒžã?ジン(0.0??.0)を指定ã—ã¾ã?
084     *       barWidth           ã€TAG】BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹?double)を指定ã—ã¾ã?
085     *       visibleLimit       ã€TAG】表示下é™å€¤(ã“れ以下ã?ãƒ??ã‚¿ã¯æœªè¡¨ç¤º)ã®å€¤(double)を指定ã—ã¾ã?
086     *       domainMargin       ã€TAG】グラフã?書ãå?ã—ä½ç½®ã®èª¿æ•´æ¯”率を指定ã—ã¾ã?
087     *       timeFormatType     ã€TAG】時刻を表ã™å?åˆã?表ç¾ã®ä»•æ–¹[E1/E2/E3/H1/H2/H3]を指定ã—ã¾ã?åˆæœŸå€¤:null)
088     *       useVerticalLabels  ã€TAG】ラベルã®è¡¨ç¤ºå‘ãを縦ã«ã™ã‚‹ã‹ã©ã?‹[false/true]を指定ã—ã¾ã?åˆæœŸå€¤:false)
089     *       debug              ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
090     *   >   ... Body ...
091     *   </og:chartDataset>
092     *
093     * â—使用ä¾?
094     *      <og:chartCreate
095     *          command     = "{@command}"
096     *          title       = "{@title}"
097     *          domainLabel = "{@domainLabel}"
098     *          width       = "{@width}"
099     *          height      = "{@height}"
100     *          rectangleEdge   = "{@rectangleEdge}"
101     *          plotOrientation = "{@plotOrientation}"
102     *          chartBackColor  = "{@chartBackColor}"
103     *          plotBackColor   = "{@plotBackColor}"
104     *          domainMarker    = "{@domainMarker}"
105     *          useMarkerLabel  = "{@useMarkerLabel}" >
106     *              <og:chartDataset
107     *                  chartType   = "[Bar|LineAndShape|?¥?¥?¥]"      ãƒãƒ£ãƒ¼ãƒˆã?種é¡?
108     *                  baseLegend  = "[true|false]"                シリーズå˜ä½ã?凡ä¾?ã®è¡¨ç¤ºå¯å¦
109     *                  valueLabel  = "縦軸"                        縦軸ã®ãƒ©ãƒ™ãƒ«
110     *                  lowerBound  = "0"                           下é™å€¤
111     *                  upperBound  = "5000"                        上é™å€¤
112     *                  tickSize    = "1000"                        縦軸ã®ç›®ç››ã?å¹?
113     *                  markValues  = "2500,2800"                   縦軸設定å?(横æ£?
114     *                  markColors  = "RED,GREEN"                   縦軸設定ライン色
115     *                  markOverColors = "BLUE,YELLOW,RED"          マã?カーラインã®è¶?Žæ™‚ã?Shape色
116     *                  dynamicOCNo   = "2"                         å‹•çš„ãªãƒžã?カーラインã®åŸºæº–シリーズ番å·
117     *                  useMarkAnchor = "[true|false]"              縦軸設定å?(横æ£?を表示ã™ã‚‹ã‹ã©ã?‹
118     *                  useGradient   = "[false|true]"              ãƒã?ãƒãƒ£ãƒ¼ãƒˆã?グラãƒ??ション処ç?
119     *                  shapesVisible = "[true|false]"              ラインã®å››è§’表示
120     *                  shapeColors   = "RED,GREEN,BLUE"            ãƒ??タ毎ã?Shapeã®è‰²
121     *                  shapeScale    = "0.8"                       shapeã®å¤§ãã•ã®å€çއ(double)
122     *                  useDottedLine = "[false|true]"              点線使用有無
123     *                  seriesColors  = "RED,GREEN,BLUE"            シリーズã®è‰²ã‚µã‚¤ã‚¯ãƒ«æŒ?®?
124     *                  valueLabelsVisible = "[true|false]"         縦軸ã®ãƒ©ãƒ™ãƒ«ã®è¡¨ç¤ºæœ‰ç„¡
125     *                  valueMarksVisible  = "[true|false]"         縦軸ã®ãƒžã?カーã®è¡¨ç¤ºæœ‰ç„¡
126     *                  itemLabelVisible   = "[false|true|last]"    ãƒ??ã‚¿ã®å€¤ã®è¡¨ç¤ºæœ‰ç„¡
127     *                  useItemLabelSep    = "[true|false]"         ãƒ??ã‚¿ã®æ¡åŒºåˆ?‚Šæ–?­—ã?使用有無
128     *                  valueInset         = "15"                   縦軸ã®è¡¨ç¤ºé ˜åŸŸINSET値
129     *                  barMaxWidth        = "[0.0??.0]"           ãƒã?å¹??æœ?¤§å€¤(0.0??.0)
130     *                  barItemMargin      = "[0.0??.0]"           ãƒã?アイãƒ?ƒ ã®ãƒžã?ジン(0.0??.0)
131     *                  barWidth           = "10"                   ãƒã?å¹??実å¹?double)
132     *                  visibleLimit       = "0"                    表示下é™å€¤(ã“れ以下ã?ãƒ??ã‚¿ã¯æœªè¡¨ç¤º))
133     *                  domainMargin       = "1.0"                  グラフã?書ãå?ã—ä½ç½®ã®èª¿æ•´æ¯”率
134     *                  useTableData       = "[false|true]"         SQLã§ã¯ãªãã?DBTableModelã‹ã‚‰ã‚°ãƒ©ãƒ•を作æ?ã™ã‚‹ã‹ã©ã?‹
135     *                  timeFormatType     = "[1|2]"                時間軸ã®è¨­å®?00:00表示)
136     *                  useVerticalLabels  = "[false|true]"         時間軸ã®è¨­å®?ラベルã®ç¸¦æ›¸ã?
137     *                  tableId            = "AAA"                  useTableData="true"ã®å ´åˆã?DBTableModelã®å–å¾—å?ID
138     *                  scope              = "[session|request]"    useTableData="true"ã®å ´åˆã?DBTableModelã®å–å¾—å?scope
139     *              >
140     *                         {@SQL}
141     *              </og:chartDataset>
142     *      </og:chartCreate>
143     *
144     *    è¤?•°ã®ã‚°ãƒ©ãƒ•ã‚’é‡ã?åˆã‚ã›ã‚‹å ´åˆã?ã€chartDataset ã‚¿ã‚°ã‚?chartCreate ã®BODY部ã«
145     *    è¤?•°è¨˜è¿°ã—ã¾ã™ã?
146     *      <og:chartCreate
147     *          title       = "{@title}"
148     *          domainLabel = "{@domainLabel}"
149     *          width       = "{@width}"
150     *          height      = "{@height}" >
151     *          rectangleEdge   = "{@rectangleEdge}" >
152     *          plotOrientation = "{@plotOrientation}" >
153     *              <og:chartDataset
154     *                  chartType   = "{@chartType1}"
155     *                  valueLabel  = "{@valueLabel1}"
156     *                  lowerBound  = "{@lowerBound1}"
157     *                  upperBound  = "{@upperBound1}"
158     *                  markValues  = "{@markValues1}"
159     *                  markColors  = "{@markColors1}"
160     *              >
161     *                         {@SQL1}
162     *              </og:chartDataset>
163     *              <og:chartDataset
164     *                  chartType   = "{@chartType2}"
165     *                  valueLabel  = "{@valueLabel2}"
166     *                  lowerBound  = "{@lowerBound2}"
167     *                  upperBound  = "{@upperBound2}"
168     *                  markValues  = "{@markValues2}"
169     *                  markColors  = "{@markColors2}"
170     *              >
171     *                         {@SQL2}
172     *              </og:chartDataset>
173     *      </og:chartCreate>
174     *
175     *    chartType属æ? ã¯ã€ãƒãƒ£ãƒ¼ãƒˆã?種類をæŒ?®šã™ã‚‹ã?固有IDã§ã™ã?
176     *    [chartType属æ?]
177     *      Area            , Bar               , Bar3D          , BoxAndWhisker    , CategoryStep  ,
178     *      Gantt           , GroupedStackedBar , IntervalBar    , LayeredBar       , Level         ,
179     *      LineAndShape    , Line3D            , MinMax         , StackedArea      , StackedBar    ,
180     *      StackedBar3D    , WaterfallBar      , CyclicXYItem   , HighLow          , StackedXYArea ,
181     *      StackedXYArea2  , StandardXYItem    , XYBubble       , XYDifference     , XYDot         ,
182     *      XYError         , XYLine3D          , XYLineAndShape , XYStepArea       , XYStep        ,
183     *      Meter           , MultiplePie       , Pie            , Pie3D            , Ring          ,
184     *      SpiderWeb       , Thermometer
185     *
186     *    markColors属æ? ã¯ã€ã?ーカーラインã®è‰²ã‚’指定ã—ã¾ã?
187     *    java.awt.Color クラスã®static フィールドåã®æ–?­—å?ã§æŒ?®šã—ã¾ã™ã?
188     *    [renderer属æ?]
189     *      BLACK   , BLUE   , CYAN , DARK_GRAY , GRAY  , GREEN , LIGHT_GRAY ,
190     *      MAGENTA , ORANGE , PINK , RED       , WHITE , YELLOW
191     *      #XXXXXXå½¢å¼ã?16bitRGB表è¨?
192     *
193     * @og.group ç”»é¢è¡¨ç¤º
194     *
195     * @version  0.9.0      2007/06/19
196     * @author       Nakamura
197     * @since        JDK1.4,
198     */
199    public class ChartDatasetTag extends CommonTagSupport {
200            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
201            private static final String VERSION = "5.5.2.1 (2012/05/07)" ;
202    
203            private static final long serialVersionUID = 552120120507L ;
204    
205            private transient ChartDataset chDataset = new ChartDataset();
206    
207            // 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´
208    //      private String  dbid    = "DEFAULT";
209            private String  dbid    = null;
210            private String  sql             = null;
211    
212            // 5.3.0.0 (2010/12/01) DBTableModel を利用ã—ã¦ã€ã‚°ãƒ©ãƒ•を作æ?ã—ã¾ã™ã?
213            private boolean useTableData    = false;                // äº’æ›æ€§ã®é–¢ä¿‚ã‹ã‚?
214            private String  tableId                 = HybsSystem.TBL_MDL_KEY;
215    
216            /**
217             * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
218             *
219             * @og.rev 5.3.0.0 (2010/12/01) useTableDataã«ã‚ˆã‚‹ãƒ??ã‚¿å–得方法ã?機è?追åŠ?
220             *
221             * @return      後続å?ç??æŒ?¤º( EVAL_BODY_BUFFERED )
222             */
223            @Override
224            public int doStartTag() {
225                    // 5.3.0.0 (2010/12/01) useTableDataã«ã‚ˆã‚‹ãƒ??ã‚¿å–得方法ã?機è?追åŠ?
226    //              return( EVAL_BODY_BUFFERED );   // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™?
227    
228                    if( useTableData ) {    // DBTableModel ã‹ã‚‰å–å¾—ã™ã‚‹ã?
229                            DBTableModel table = (DBTableModel)getObject( HybsSystem.TBL_MDL_KEY );
230                            chDataset.makeDataset( table );
231    
232                            return( SKIP_BODY );                    // Body を評価ã—ãªã?
233                    }
234                    else {
235                            return( EVAL_BODY_BUFFERED );   // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™?
236                    }
237            }
238    
239            /**
240             * Taglibã®ã‚¿ã‚°æœ¬ä½“を処ç?™ã‚?doAfterBody() ã‚?オーãƒã?ライドã—ã¾ã™ã?
241             *
242             * @og.rev 5.3.0.0 (2010/12/01) ãƒ??タベã?ス検索処ç?‚’ã€doEndTag() メソãƒ?ƒ‰ã‹ã‚‰ç§»å‹?
243             *
244             * @return      後続å?ç??æŒ?¤º(SKIP_BODY)
245             */
246            @Override
247            public int doAfterBody() {
248                    sql = getBodyString();
249                    if( sql != null && sql.length() > 0 ) {
250                            sql = sql.trim();
251                    }
252    
253                    // 5.3.0.0 (2010/12/01) doEndTag() メソãƒ?ƒ‰ã‹ã‚‰ç§»å‹?
254                    boolean errFlag = true;
255    //              Connection conn = ConnectionFactory.connection( dbid,getApplicationInfo() );
256                    Connection conn = null;
257                    try {
258                            conn = ConnectionFactory.connection( dbid,getApplicationInfo() );
259                            chDataset.makeDataset( conn,sql );
260                            errFlag = false;                // エラーã§ã¯ãªã?
261                    }
262                    catch( SQLException ex ) {
263                            String errMsg = "ãƒ??ã‚¿ã‚»ãƒ?ƒˆä½œæ?時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€? + HybsSystem.CR
264                                                    + " SQL=" + sql + HybsSystem.CR
265                                                    + ex.getMessage();                      // 5.1.8.0 (2010/07/01) errMsg 修正
266                            throw new HybsSystemException( errMsg,ex );
267                    }
268                    finally {
269                            if( errFlag ) { ConnectionFactory.remove( conn,dbid ); }        // 削除
270                            else {                  ConnectionFactory.close( conn,dbid );  }        // è¿”å´
271                    }
272    
273                    return(SKIP_BODY);
274            }
275    
276            /**
277             * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
278             *
279             * @og.rev 4.0.0.1 (2007/12/03) try ??catch ??finally ã‚’ãã¡ã‚“ã¨è¡Œã†ã€?
280             * @og.rev 5.2.1.0 (2010/10/01) debugPrint() メソãƒ?ƒ‰è¿½åŠ?
281             * @og.rev 5.3.0.0 (2010/12/01) ãƒ??タベã?ス検索処ç?‚’ã€doAfterBody() ã¸ç§»å‹?
282             *
283             * @return      後続å?ç??æŒ?¤º
284             */
285            @Override
286            public int doEndTag() {
287                    debugPrint();           // 5.2.1.0 (2010/10/01) debugPrint() メソãƒ?ƒ‰è¿½åŠ?
288    
289                    // ç?±ˆä¸Šã?ChartCreateTag ã®å­˜åœ¨ãƒã‚§ãƒ?‚¯ãŒã“ã“ã§è¡Œã‚れるãŒã?DB検索処ç??ã€å?ã«è¡Œã£ã¦ã?‚‹ã€?
290                    // ã¤ã¾ã‚Šã?ç„¡é§?ªQUERYãŒå®Ÿè¡Œã•れるå¯èƒ½æ€§ãŒå?ã¦ããŸãŒã?開発段階ã?ã¿ã®è©±ã§ã‚ã‚‹ã®ã§ã“ã“ã«æ®‹ã—ã¦ãŠãã€?
291                    ChartCreateTag chartTag = (ChartCreateTag)findAncestorWithClass( this,ChartCreateTag.class );
292    
293                    if( chartTag == null ) {
294                            String errMsg = "chartCreate ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€?;
295                            throw new HybsSystemException( errMsg );
296                    }
297    
298                    // 5.3.0.0 (2010/12/01) doAfterBody() ã¸ç§»å‹?
299    //              boolean errFlag = true;
300    ////            Connection conn = ConnectionFactory.connection( dbid,getApplicationInfo() );
301    //              Connection conn = null;
302    //              try {
303    //                      conn = ConnectionFactory.connection( dbid,getApplicationInfo() );
304    //                      chDataset.makeDataset( conn,sql );
305    //                      errFlag = false;                // エラーã§ã¯ãªã?
306    //              }
307    //              catch( SQLException ex ) {
308    //                      String errMsg = "ãƒ??ã‚¿ã‚»ãƒ?ƒˆä½œæ?時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€? + HybsSystem.CR
309    //                                              + " SQL=" + sql + HybsSystem.CR
310    //                                              + ex.getMessage();                      // 5.1.8.0 (2010/07/01) errMsg 修正
311    //                      throw new HybsSystemException( errMsg,ex );
312    //              }
313    //              finally {
314    //                      if( errFlag ) { ConnectionFactory.remove( conn,dbid ); }        // 削除
315    //                      else {                  ConnectionFactory.close( conn,dbid );  }        // è¿”å´
316    //              }
317    
318                    chartTag.addChartDataset( chDataset );
319    
320                    return EVAL_PAGE;
321            }
322    
323            /**
324             * タグリブオブジェクトをリリースã—ã¾ã™ã?
325             * キャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨­å®šã‚’行ã„ã¾ã™ã?
326             *
327             * @og.rev 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´
328             * @og.rev 5.3.0.0 (2010/12/01) useTableData,tableId 属æ?追åŠ?
329             */
330            @Override
331            protected void release2() {
332                    super.release2();
333                    chDataset       = new ChartDataset();
334    //              dbid            = "DEFAULT";
335                    dbid            = null;
336                    sql                     = null;
337                    useTableData    = false;                                        // 5.3.0.0 (2010/12/01)
338                    tableId                 = HybsSystem.TBL_MDL_KEY;       // 5.3.0.0 (2010/12/01)
339            }
340    
341            /**
342             * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Datasetオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã?
343             *
344             * @og.tag
345             * Datasetオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã?
346             * ã“れã¯ã€ã‚·ã‚¹ãƒ?ƒ ãƒªã‚½ãƒ¼ã‚¹ã§ã€DEFAULT_DB_URL ç­‰ã§æŒ?®šã—ã¦ã?‚‹ ãƒ??タベã?ス接続å?
347             * æƒ??ã«ã€XX_DB_URL を定義ã™ã‚‹ã“ã¨ã§ã€?dbid="XX" ã¨ã™ã‚‹ã¨ã€ã“㮠接続å?を使用ã—ã¦
348             * ãƒ??タベã?スã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã?
349             *
350             * @param       id      ãƒ??タベã?ス接続ID
351             */
352            public void setDbid( final String id ) {
353                    dbid = StringUtil.nval( getRequestParameter( id ),dbid );
354            }
355    
356            /**
357             * ã€TAG】ChartDataset ã®ãƒ??タタイプをæŒ?®šã—ã¾ã™ã?
358             *
359             * @og.tag
360             * ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒ?ã¯ã€å¤–部ã‹ã‚‰ãƒãƒ£ãƒ¼ãƒˆã‚’æŒ?®šã™ã‚‹ã?ã«ä¾¿åˆ©ãªã‚ˆã†ã«ã€ã‚­ãƒ¼åŒ?
361             * ã•れã¦ã?¾ã™ã?ã“ã?キーã«åŸºã¥ã?¦ã€ChartFactory クラスã®
362             * ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒ—変æ›è¡¨ã«åŸºã¥ã?¦ã€ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã‚??ãƒ??ã‚¿ã‚»ãƒ?ƒˆã‚’作æ?ã—ã¾ã™ã?
363             * 基本çš?«ã¯ã€ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒ?ã¯ã€ã“ã®ã€ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼åç§°ã‹ã‚‰æ±ºå®šã—ã¦ã?¾ã™ã?
364             * <pre>
365             *  Area            , Bar               , Bar3D          , BoxAndWhisker    , CategoryStep  ,
366             *  Gantt           , GroupedStackedBar , IntervalBar    , LayeredBar       , Level         ,
367             *  LineAndShape    , Line3D            , MinMax         , StackedArea      , StackedBar    ,
368             *  StackedBar3D    , WaterfallBar      , CyclicXYItem   , HighLow          , StackedXYArea ,
369             *  StackedXYArea2  , StandardXYItem    , XYBubble       , XYDifference     , XYDot         ,
370             *  XYError         , XYLine3D          , XYLineAndShape , XYStepArea       , XYStep        ,
371             *  Meter           , MultiplePie       , Pie            , Pie3D            , Ring          ,
372             *  SpiderWeb       , Thermometer
373             * </pre>
374             *
375             * @param       chartType       ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒ?
376             * @see         org.jfree.chart.renderer.category.CategoryItemRenderer
377             * @see         org.jfree.chart.renderer.xy.XYItemRenderer
378             */
379            public void setChartType( final String chartType ) {
380                    chDataset.setChartType( getRequestParameter( chartType ) );
381            }
382    
383            /**
384             * ã€TAG】グラフ化ã™ã‚‹ãƒ??ã‚¿ã‚?DBTableModel ã‹ã‚‰ä½œæ?ã™ã‚‹ã‹ã©ã?‹(åˆæœŸå€¤:false)ã€?
385             *
386             * @og.tag
387             * useTableData="false"(åˆæœŸå€¤)ã®å ´åˆã?ã€BODYéƒ¨ã«æ›¸ã‹ã‚Œã?SQL æ–?‚’実行ã—ã¦ãƒ??ã‚¿ã‚’å–å¾—ã—ã¾ã™ã?
388             * useTableData="true" ã«ã™ã‚‹ã¨ã€ãã®å‰ã? query ã‚¿ã‚°ç­‰ã§ä½œæ?ã—㟠DBTableModel を利用ã—ã¦
389             * グラフ化ã—ã¾ã™ã?ãã?å ´åˆã?ã€BODY部㮠SQL æ–??ã€ç„¡è¦–ã•れã¾ã™ã?
390             * 利用ã™ã‚‹ DBTableModel ã¯ã€tableId 㨠scope 属æ?ã‹ã‚‰å–å¾—ã—ã¾ã™ã?
391             *
392             * @og.rev 5.3.0.0 (2010/12/01) æ–°è¦è¿½åŠ?
393             *
394             * @param       flag    ãƒ??ã‚¿ã‚’DBTableModelを利用ã™ã‚‹å ´åˆã?true
395             */
396            public void setUseTableData( final String flag ) {
397                    useTableData = StringUtil.nval( getRequestParameter( flag ),useTableData );
398            }
399    
400            /**
401             * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã®DBTableModelã‚’ã?sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?キーを指定ã—ã¾ã?
402             *              (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
403             *
404             * @og.tag
405             * æ¤œç´¢çµæžœã‚ˆã‚Šã€DBTableModelオブジェクトを作æ?ã—ã¾ã™ã?ã“れをã?下æµã?viewã‚¿ã‚°ç­‰ã«
406             * 渡ã™å?åˆã«ã€??常ã¯ã€session を利用ã—ã¾ã™ã?ãã?å ´åˆã?登録キーã§ã™ã?
407             * query ã‚¿ã‚°ã‚’åŒæ™‚ã«å®Ÿè¡Œã—ã¦ã€çµæžœã‚’求ã‚ã‚‹å?åˆã?åŒä¸?ƒ¡ãƒ¢ãƒªã«é…ç½®ã•れる為ã€?
408             * ã“ã? tableId 属æ?を利用ã—ã¦ã€ãƒ¡ãƒ¢ãƒªç©ºé–“ã‚’åˆ?‘ã¾ã™ã?
409             *              (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
410             *
411             * @param       id sessionã«ç™»éŒ²ã™ã‚‹æ™‚ã? ID
412             */
413            public void setTableId( final String id ) {
414                    tableId = StringUtil.nval( getRequestParameter( id ), tableId );
415            }
416    
417            /**
418             * ã€TAG】シリーズå˜ä½ã?凡ä¾?ã®è¡¨ç¤ºå¯å¦ã‚’設定ã—ã¾ã™ã?
419             *
420             * @og.tag
421             * シリーズå˜ä½ã?凡ä¾?ã®è¡¨ç¤ºå¯å¦ã‚’設定ã—ã¾ã™ã?
422             *
423             * @param       baseLegend      シリーズå˜ä½ã?凡ä¾?ã®è¡¨ç¤ºå¯å¦
424             */
425            public void setBaseLegend( final String baseLegend ) {
426                    boolean flag = StringUtil.nval( getRequestParameter( baseLegend ),true );
427                    chDataset.setBaseLegend( flag );
428            }
429    
430            /**
431             * ã€TAG】縦軸ã®è¡¨ç¤ºå称を指定ã—ã¾ã™ã?
432             *
433             * @og.tag
434             * 縦軸ã®è¡¨ç¤ºå称を指定ã—ã¾ã™ã?
435             *
436             * @param       valueLabel      縦軸ã®è¡¨ç¤ºåç§°
437             */
438            public void setValueLabel( final String valueLabel ) {
439                    chDataset.setValueLabel( getRequestParameter( valueLabel ) );
440            }
441    
442            /**
443             * ã€TAG】ã?ーカーラインã®è¨­å®šå?をカンマ区åˆ?‚Šå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã?
444             *
445             * @og.tag
446             * æŒ?®šã?値ã«ãƒžã?カーラインを引ãã¾ã™ã?
447             * 色ã¯ã€setMarkColors( String ) ã§æŒ?®šã—ã¾ã™ã?
448             * markColors ã¨ã€å?æ•°ã‚’ã‚ã‚ã›ã¦è¨­å®šã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
449             * ã©ã¡ã‚‰ã‹ãŒã?æŒ?®šã•れã¦ã?ªã??åˆã?ã€ã?ーカー表示ã•れã¾ã›ã‚“ã€?
450             * dynamicOCNo を使用ã™ã‚‹å ´åˆã?ã€ãã®Values ã®ä¸¦ã³ã®ç®?‰€ã«ã€?
451             * "G"  ã¨ã?†æ–?­—å?を設定ã—ã¦ä¸‹ã•ã??
452             * 例ï¼?000,G  基準1ã?ã€?000ã®ç›´ç·šã?基準2ã?ã€ã‚°ãƒ©ãƒ?ã¨ã?†æ„味ã€?
453             *
454             * @param       markValues      マã?カーラインã®è¨­å®šå?(CSVå½¢å¼?
455             * @see         #setMarkColors( String )
456             */
457            public void setMarkValues( final String markValues ) {
458                    String vals = StringUtil.nval( getRequestParameter( markValues ),null );
459                    if( vals != null ) {
460                            chDataset.setMarkValues( StringUtil.csv2Array( vals ) );
461                    }
462            }
463    
464            /**
465             * ã€TAG】ã?ーカーラインæç”»æ™‚ã«ã€ãã®è¨­å®šå?を表示ã—ã¾ã™ã?
466             *
467             * @og.tag
468             * マã?カーラインã®ç¸¦è»¸ã®è¨­å®šå?(markValues)ã«ã€è¨­å®šå?をラベル表示ã—ã¾ã™ã?
469             * ä½ç½®ã¯ã€TextAnchor.BASELINE_LEFT 固定ã§ã™ã?
470             * åˆæœŸå€¤ã¯ã€è¡¨ç¤ºã™ã‚‹(true)ã§ã™ã?
471             *
472             * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
473             *
474             * @param   useAnchor true:設定å?を表示ã™ã‚‹ã€?
475             */
476            public void setUseMarkAnchor( final String useAnchor ) {
477                    boolean flag = StringUtil.nval( getRequestParameter( useAnchor ),true );
478                    chDataset.setUseMarkAnchor( flag );
479            }
480    
481            /**
482             * ã€TAG】ã?ーカーラインã®è‰²ã‚’カンマ区åˆ?‚Šå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã?
483             *
484             * @og.tag
485             * マã?カーラインã¨ã¯ã€ç¸¦è»¸è¨­å®šã?ラインã®äº‹ã§ã€ç¸¦è»¸ã®è¨­å®šå?(markValues)ã«
486             * 横方å‘ã«ãƒ©ã‚¤ãƒ³ã‚’付与ã—ã¾ã™ã?ã“ã?ラインã®è‰²ã‚’ã?カンマ区åˆ?‚Šå½¢å¼ã§
487             * æŒ?®šã—ã¾ã™ã?
488             * markValues ã¨ã€ã‚ã‚ã›ã¦è¨­å®šã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
489             * 個数ãŒç•°ãªã‚‹å?åˆã?ã€markValues ãŒå„ªå…ˆã•れã?ç„¡æŒ?®šã?å ´åˆã?ã€Color.REDã§
490             * 表示ã•れã¾ã™ã?
491             *
492             * æŒ?®šæ–‡å­—å?ã¯ã€java.awt.Color クラスã®static フィールドåã§æŒ?®šã—ã¾ã™ã?
493             * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY ,
494             * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) ãŒæŒ‡å®šã§ãã¾ã™ã?
495             * ã¾ãŸã?#XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
496             * <pre>
497             *      BLACK   , BLUE   , CYAN , DARK_GRAY , GRAY  , GREEN , LIGHT_GRAY ,
498             *      MAGENTA , ORANGE , PINK , RED       , WHITE , YELLOW , (PURPLE)
499             *      #XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
500             * </pre>
501             *
502             * @param       markColors      マã?カーラインã®è‰²(CSVå½¢å¼?
503             * @see         java.awt.Color#BLACK
504             * @see         #setMarkValues( String )
505             */
506            public void setMarkColors( final String markColors ) {
507                    String clrs = StringUtil.nval( getRequestParameter( markColors ),null );
508                    if( clrs != null ) {
509                            chDataset.setMarkColors( StringUtil.csv2Array( clrs ) );
510                    }
511            }
512    
513            /**
514             * ã€TAG】ã?ーカーラインã®è¶?Žæ™‚ã?Shape色をカンマ区åˆ?‚Šå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã?
515             *
516             * @og.tag
517             * HybsLine ã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™ã?
518             * マã?カーラインを使用ã™ã‚‹å ´åˆã«ã€ãã®ãƒ©ã‚¤ãƒ³ã‚’è¶?ˆãªã?‰²ã€è¶?ˆã‚‹è‰²ã‚’指定ã—ã¾ã™ã?
519             * ã“ã?è‰²ã®æŒ?®šã?ã€ã?ーカーラインã®è‰²ã‚??ーカーラインã®è¨­å®šå?ã®å€‹æ•°?‹ï¼‘ã«
520             * ãªã‚Šã¾ã™ã?ã¤ã¾ã‚Šã?色?‘:設定å??‘:色?’:設定å??’:色??ã¨ãªã‚Šã¾ã™ã?
521             * 色?‘ã?ã€è¨­å®šå??‘よりå°ã•ã??åˆã«ä½¿ç”¨ã•れã€è‰²?’ã?ã€è¨­å®šå??‘より大ããã€?
522             * 設定å??’よりå°ã•ã??åˆã?色?“ã?ã€è¨­å®šå??’より大ãã„å ´åˆã«ãªã‚Šã¾ã™ã?
523             *
524             * æŒ?®šæ–‡å­—å?ã¯ã€java.awt.Color クラスã®static フィールドåã§æŒ?®šã—ã¾ã™ã?
525             * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY ,
526             * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) ãŒæŒ‡å®šã§ãã¾ã™ã?
527             * ã¾ãŸã?#XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
528             * markValues ã¨ã€ã‚ã‚ã›ã¦è¨­å®šã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
529             * ã©ã¡ã‚‰ã‹ãŒã?æŒ?®šã•れã¦ã?ªã??åˆã?ã€ã?ーカー表示ã•れã¾ã›ã‚“ã€?
530             * <pre>
531             *      BLACK   , BLUE   , CYAN , DARK_GRAY , GRAY  , GREEN , LIGHT_GRAY ,
532             *      MAGENTA , ORANGE , PINK , RED       , WHITE , YELLOW , (PURPLE)
533             *      #XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
534             * </pre>
535             *
536             * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
537             *
538             * @param       overColors      マã?カーラインã®è¶?Žæ™‚ã?Shape色(CSVå½¢å¼?
539             * @see         java.awt.Color#BLACK
540             */
541            public void setMarkOverColors( final String overColors ) {
542                    String clrs = StringUtil.nval( getRequestParameter( overColors ),null );
543                    if( clrs != null ) {
544                            chDataset.setMarkOverColors( StringUtil.csv2Array( clrs ) );
545                    }
546            }
547    
548            /**
549             * ã€TAG】動çš?ªãƒžã?カーラインã®åŸºæº–シリーズ番å·ã‚’設定ã—ã¾ã?åˆæœŸå€¤:null)ã€?
550             *
551             * @og.tag
552             * å‹•çš„ãªãƒžã?カーラインを使用ã™ã‚‹å ´åˆã?ã€åŸºæº–å?ã¨ãªã‚‹ã‚·ãƒªãƒ¼ã‚ºç•ªå·ã‚’指定ã—ã¾ã™ã?
553             *
554             * マã?ã‚«ãƒ¼ãƒ©ã‚¤ãƒ³ã®æœ?¸‹ä½é–¾å€¤ã«ç›¸å½“ã—ã¾ã™ã?ã“れã¯ã€ã‚°ãƒ©ãƒ•化ã•れã¾ã™ãŒã€?
555             * Shape ã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•れã¾ã™ã?
556             * ã“ã?設定を使用ã™ã‚‹å ´åˆã?æœ??ã®ãƒ??ã‚¿ã«ã¯ã€å¿?šShapeãŒä»˜ãã¾ã™ã?ãれ以外ã?
557             * ãƒ??ã‚¿ã«ã€Shape を付ã‘ã‚‹ã‹ã©ã?‹ã¯ã€shapesVisible 属æ?ã§æŒ?®šã—ã¾ã™ã?
558             * ã“ã?ç·šã?色ã¯ã€markColors ã§æŒ?®šã—ãŸã?æœ?¸‹ä½ã?色ã«ãªã‚Šã¾ã™ã?ã¾ãŸã?
559             * markValues ã§æŒ?®šã—ãŸã?æœ?¸‹ä½ã?値ã¯ã€ä½¿ç”¨ã•れã¾ã›ã‚“。ãŸã?—ã€è‰²æŒ?®šã?
560             * 関係上ã?設定ã—ã¦ãŠãå¿?¦ãŒã‚りã¾ã™ã?
561             * ã¾ãŸã?isValueVisible == true ã§ã€è¨­å®šå?ã®å€¤è¡¨ç¤ºã‚’行ã†å ´åˆã‚‚ã€æœ€ä¸‹ä½ã?
562             * 値ã¯è¡¨ç¤ºã—ãªã?‚ˆã?«ã—ã¾ã™ã?
563             * åˆæœŸå€¤ã¯ã€ä½¿ç”¨ã—ãªã?null)ã§ã™ã?
564             *
565             * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
566             * @og.rev 4.1.1.0 (2008/02/19) setUseDynamicOC �setDynamicOCNo
567             *
568             * @param   dynamicOCNo true:å‹•çš„ãªãƒžã?カーラインã®åŸºæº–シリーズ番å·
569             */
570            public void setDynamicOCNo( final String dynamicOCNo ) {
571                    int ocNo = StringUtil.nval( getRequestParameter( dynamicOCNo ),-1 );
572                    chDataset.setDynamicOCNo( ocNo );
573    //              boolean flag = StringUtil.nval( getRequestParameter( useDynamicOC ),false );
574    //              chDataset.setUseDynamicOCNo( flag );
575            }
576    
577            /**
578             * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ç¸¦è»¸ã®æœ?°å?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:自動計ç®?ã€?
579             *
580             * @og.tag
581             * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ¼ã‚¿ã®æœ?°å?ã‹ã‚‰ã€è?å‹•çš„ã«è¨ˆç®—ã—ã¾ã™ã?
582             *
583             * @param       lowerBound      ç¸¦è»¸ã®æœ?°å?
584             */
585            public void setLowerBound( final String lowerBound ) {
586                    chDataset.setLowerBound( getRequestParameter( lowerBound ) );
587            }
588    
589            /**
590             * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ç¸¦è»¸ã®æœ?¤§å€¤ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:自動計ç®?ã€?
591             *
592             * @og.tag
593             * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ¼ã‚¿ã®æœ?¤§å€¤ã‹ã‚‰ã€è?å‹•çš„ã«è¨ˆç®—ã—ã¾ã™ã?
594             *
595             * @param       upperBound      ç¸¦è»¸ã®æœ?¤§å€¤
596             */
597            public void setUpperBound( final String upperBound ) {
598                    chDataset.setUpperBound( getRequestParameter( upperBound ) );
599            }
600    
601            /**
602             * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?縦軸ã®ç›®ç››ã?å¹?‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:自動計ç®?ã€?
603             *
604             * @og.tag
605             * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ¼ã‚¿ã®ç¯?›²ã‹ã‚‰ã€è?å‹•çš„ã«è¨ˆç®—ã—ã¾ã™ã?
606             *
607             * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
608             *
609             * @param   size 縦軸ã®ãƒãƒƒã‚¯(ç›®ç›?ã®å¹?
610             */
611            public void setTickSize( final String size ) {
612                    chDataset.setTickSize( getRequestParameter( size ) );
613            }
614    
615            /**
616             * ã€TAG】ãƒãƒ¼ãƒãƒ£ãƒ¼ãƒˆã?グラãƒ??ション処ç?‚’行ã†ã‹ã©ã?‹[true/false]ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:false)ã€?
617             *
618             * @og.tag
619             * 通常ã®ãƒã?ãƒãƒ£ãƒ¼ãƒˆã?ã€å˜ä¸?‰²è¡¨ç¤ºã§è¡¨ã•れã¾ã™ãŒã€ã“れã«ã‚°ãƒ©ãƒ??ション効果を
620             * 付加ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã?
621             * 通常ã®ãƒã?ãƒãƒ£ãƒ¼ãƒˆãŒã€å°‘ã—ãれã?«è¦‹ãˆã¾ã™ã?
622             * åˆæœŸå€¤ã¯ã€false(使用ã—ãªã?ã§ã™ã?
623             *
624             * @param       useGradient     グラãƒ??ション処ç?[true:ã™ã‚‹/false:ã—ãªã„]
625             */
626            public void setUseGradient( final String useGradient ) {
627                    boolean flag = StringUtil.nval( getRequestParameter( useGradient ),false );
628                    chDataset.setUseGradient( flag );
629            }
630    
631            /**
632             * ã€TAG】ラインãƒãƒ£ãƒ¼ãƒˆã?ãƒã‚¤ãƒ³ãƒˆã‚’四角表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true)ã€?
633             *
634             * @og.tag
635             * ラインãƒãƒ£ãƒ¼ãƒˆã?ã€??常ã€ç·šå?ã§è¡¨ã•れã€å„ãƒã‚¤ãƒ³ãƒˆã«ã¤ã?¦ã‚‚ã?ç·šå?ã§æŽ¥ç¶šã•れã¾ã™ã?
636             * shapesVisible ã‚?true ã«è¨­å®šã™ã‚‹ã¨ã€å„ãƒã‚¤ãƒ³ãƒˆãŒã€ç·šä¸Šã«å››è§’ã表示ã•れã€?
637             * ãã?ãƒã‚¤ãƒ³ãƒˆã?ä½ç½®ã‚’ã?容易ã«åˆ¤æ–­å‡ºæ¥ã‚‹ã‚ˆã?«ãªã‚Šã¾ã™ã?
638             * åˆæœŸå€¤ã¯ã€true( LineAndShape )ã§ã™ã?
639             *
640             * @param       shapesVisible   ãƒã‚¤ãƒ³ãƒˆã‚’四角表示ã™ã‚‹ã‹ã©ã?‹
641             */
642            public void setShapesVisible( final String shapesVisible ) {
643                    boolean flag = StringUtil.nval( getRequestParameter( shapesVisible ),true );
644                    chDataset.setShapesVisible( flag );
645            }
646    
647            /**
648             * ã€TAG】データ毎ã«Shapeã‚’å?り替ãˆã‚‹æ™‚ã?色ã®ç¹°è¿”ã—パターンを文字å?é…å?ã§æŒ?®šã—ã¾ã™ã?
649             *
650             * @og.tag
651             * HybsLine ã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™ã?
652             * ã“れã¯ã€ãƒ‡ãƒ¼ã‚¿ãã?ã‚‚ã?ãŒã?ç¹°è¿”ã—æ€§ã®ã‚ã‚‹å ´åˆã«ã€ãã®ç¹°è¿”ã—æ€§ã«å¯¾å¿œã—ã?
653             * 形状ã®Shape を表示ã•ã›ã‚‹å?åˆã«ä½¿ç”¨ã—ã¾ã™ã?
654             * ç¹°è¿”ã—Shapeã®å½¢çжã¯ã€JFreeChart ã®ã‚·ãƒªãƒ¼ã‚ºæ¯Žã?ç¹°è¿”ã—æ¨™æº–形状を使用ã—ã¾ã™ã?
655             * ç¾åœ¨ã®ãƒã?ジョンã§ã¯ã€?¼‘ï¼å?ã¾ã§ã®ç¹°è¿”ã—ã«å¯¾å¿œå¯èƒ½ã§ã™ã?
656             * ç¹°è¿”ã—色をã?æŒ?®šã—ãŸå?ã?‘ã€??ã«ä½¿ç”¨ã•れã¦ã?ã¾ã™ã?
657             *
658             * æŒ?®šæ–‡å­—å?ã¯ã€java.awt.Color クラスã®static フィールドåã§æŒ?®šã—ã¾ã™ã?
659             * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY ,
660             * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) ãŒæŒ‡å®šã§ãã¾ã™ã?
661             * ã¾ãŸã?#XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
662             *
663             * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
664             *
665             * @param       colors  ãƒ??タ毎ã?色ã®ç¹°è¿”ã—パターン(æ–?­—å?é…å?)
666             * @see         java.awt.Color#BLACK
667             */
668            public void setShapeColors( final String colors ) {
669                    String clrs = StringUtil.nval( getRequestParameter( colors ),null );
670                    if( clrs != null ) {
671                            chDataset.setShapeColors( StringUtil.csv2Array( clrs ) );
672                    }
673            }
674    
675            /**
676             * ã€TAG】繰返ã—shapeã®é–‹å§‹ç•ªå·ã‚’指定ã—ã¾ã?åˆæœŸå€¤:0)ã€?
677             *
678             * @og.tag
679             * ラインãƒãƒ£ãƒ¼ãƒˆã?Shape(å?‚°ãƒ©ãƒ•ã?ãƒã‚¤ãƒ³ãƒˆã?マã?カー)ã¯ã€??常ã¯ã€?
680             * シリーズ毎ã«è‡ªå‹•変更ã•れã¾ã™ã?
681             * ã“れã®å¤‰æ›´é–‹å§‹é?ã®é–‹å§‹ç•ªå·ã‚’指定ã™ã‚‹äº‹ã§ã€Shapeã®é–‹å§‹å½¢çŠ¶ã‚’æŒ‡å®šã§ãã¾ã™ã?
682             * åˆæœŸå€¤(0) ã§ã¯ã€â– ã€â—ã€â–²ã€â—†ã€æ¨ªé•·æ–¹å½¢ã€â–¼ã€æ¥•å?ã€å³ä¸‰è§’ã?縦長方形ã€?
683             * 左三角ã?ã¨ã?†ç¹°è¿”ã—ã«ãªã‚Šã¾ã™ã?
684             * ã“れã®ã€?–‹å§‹å½¢çŠ¶ã‚’æŒ‡å®šã™ã‚‹ã“ã¨ã§ã€â—ã‹ã‚‰å§‹ã‚ãŸã‚Šã€â–²ã‹ã‚‰å§‹ã‚る事ãŒ
685             * å¯èƒ½ã«ãªã‚Šã¾ã™ã?
686             * åˆæœŸå€¤ã¯ã€?:â–?§ã™ã?
687             *
688             * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
689             *
690             * @param   startNo ç¹°è¿”ã—shapeã®é–‹å§‹ç•ªå·
691             */
692    //      public void setShapeStartNo( final String startNo ) {
693    //              int no = StringUtil.nval( getRequestParameter( startNo ),0 );
694    //              chDataset.setShapeStartNo( no );
695    //      }
696    
697            /**
698             * ã€TAG】shapeã®å¤§ãã•ã‚’å?çŽ?Œ‡å®šã§å¤‰æ›´ã—ã¾ã?åˆæœŸå€¤:null)ã€?
699             *
700             * @og.tag
701             * ラインãƒãƒ£ãƒ¼ãƒˆã?Shape(å?‚°ãƒ©ãƒ•ã?ãƒã‚¤ãƒ³ãƒˆã?マã?カー)ã®å¤§ãã•ã¯ã€??常ã¯ã€?
702             * 自動設定ã•れã¾ã™ã?
703             * ã“ã?大ãã•ã‚’ã?å€çއæŒ?®šã§ã€å¤‰æ›´å¯èƒ½ã§ã™ã?
704             * æŒ?®šã?ã€double åž‹ã§ã™ã?
705             * åˆæœŸå€¤ã¯ã€null ã¯ã€ã‚¹ã‚±ãƒ¼ãƒ«å¤‰æ›´ã—ã¾ã›ã‚“(自動設定ã?ã¾ã¾ã®å¤§ãã•)
706             *
707             * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
708             *
709             * @param       scale   shapeã®å¤§ãã•ã®å€çއ
710             */
711            public void setShapeScale( final String scale ) {
712                    String shapeScale = StringUtil.nval( getRequestParameter( scale ),null );
713                    if( shapeScale != null ) {
714                            chDataset.setShapeScale( shapeScale );
715                    }
716            }
717    
718            /**
719             * ã€TAG】ラインãƒãƒ£ãƒ¼ãƒˆã?線をドットラインã«ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false[ç·šå?])ã€?
720             *
721             * @og.tag
722             * ラインãƒãƒ£ãƒ¼ãƒˆã?ã€??常ã€ç·šå?ã§è¡¨ã•れã¾ã™ã?
723             * ã“れã«ã€ç‚¹ç·šã§è¡¨ã™ã“ã¨ã§ã€ã‚°ãƒ©ãƒ•ã?é•ã„ã‚’ã?色ã?‘ã§ãªã形状ã§ã‚‚識別
724             * ã—ã‚„ã™ãã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
725             * åˆæœŸå€¤ã¯ã€false(ç·šå?)ã§ã™ã?
726             *
727             * @param       useDottedLine   ドットラインã«ã™ã‚‹ã‹ã©ã?‹ [true:点ç·?false:ç·šå?]
728             */
729            public void setUseDottedLine( final String useDottedLine ) {
730                    boolean flag = StringUtil.nval( getRequestParameter( useDottedLine ),false );
731                    chDataset.setUseDottedLine( flag );
732            }
733    
734            /**
735             * ã€TAG】è¤?•°ãƒãƒ£ãƒ¼ãƒˆæç”»æ™‚ã?ãƒãƒ£ãƒ¼ãƒˆè‰²ã®ç¹°è¿”ã—パターンをCVSå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã?
736             *
737             * @og.tag
738             * 通常ã€è¤?•°ã®ãƒãƒ£ãƒ¼ãƒˆã‚’åŒæ™‚ã«è¡¨ç¤ºã•ã›ã‚‹å?åˆã?ã€ç¸¦è»¸ãŒå?通ã§ã‚れã°ã€?
739             * ?‘回ã®Selectåˆ?§è¤?•°ãƒ??ã‚¿ã‚’å–å¾—ã—ã¾ã™ã?
740             * ã“ã?ã€ãƒ‡ãƒ¼ã‚¿ã‚’シリーズã¨å‘¼ã‚“ã§ãŠã‚Šã€ã“れを区別ã™ã‚‹ç‚ºã«ã€è‰²ã‚’å?ã‘ã¾ã™ã?
741             * åˆæœŸå€¤ã¯ã€JFreeChart ãŒè?å‹•ã§å‰²ã‚ŠæŒ¯ã‚Šã¾ã™ã?
742             * ã“れをã?外部ã‹ã‚‰CVSå½¢å¼ã§ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§è‰²ã‚³ãƒ¼ãƒ‰ã‚’æŒ?®šã—ã¾ã™ã?
743             * æŒ?®šãƒ‡ãƒ¼ã‚¿ãŒå¤šã„å ´åˆã?ã€å¤šã„åˆ??色ã¯ä½¿ç”¨ã•れã¾ã›ã‚“。少ãªã??åˆã?ã€?
744             * é ?•ªã«ç¹°ã‚Šè¿”ã—ã¦ä½¿ç”¨ã•れã¾ã™ã?
745             * 例ãˆã°ã€?¼‘色ã?‘æŒ?®šã—ãŸå?åˆã?ã€ã™ã¹ã¦ã®ã‚·ãƒªãƒ¼ã‚ºãŒåŒã˜è‰²ã§è¡¨ã•れã¾ã™ã?
746             *
747             * æŒ?®šæ–‡å­—å?ã¯ã€java.awt.Color クラスã®static フィールドåã§æŒ?®šã—ã¾ã™ã?
748             * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY ,
749             * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) ãŒæŒ‡å®šã§ãã¾ã™ã?
750             *
751             * ã¾ãŸã?#XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
752             *
753             * @param       colors  ãƒãƒ£ãƒ¼ãƒˆè‰²ã®ç¹°è¿”ã—パターン(CVSå½¢å¼?
754             * @see         java.awt.Color#BLACK
755             */
756            public void setSeriesColors( final String colors ) {
757                    String clrs = StringUtil.nval( getRequestParameter( colors ),null );
758                    if( clrs != null ) {
759                            chDataset.setSeriesColors( StringUtil.csv2Array( clrs ) );
760                    }
761            }
762    
763            /**
764             * ã€TAG】Value(縦軸)ã®ç·šã‚’表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])ã€?
765             *
766             * @og.tag
767             * ValueAxis ã«ã¦è¨­å®šã•れるã€ç¸¦è»¸æƒ??ã®ã€ç½«ç·šã‚’表示ã™ã‚‹ã‹ã©ã?‹æŒ?®šã—ã¾ã™ã?
768             * åˆæœŸå€¤ã¯ã€true(表示ã™ã‚‹)ã§ã™ã?
769             *
770             * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
771             *
772             * @param       lineVisible     Value(縦軸)ã®ç·šã‚’表示ã™ã‚‹ã‹ã©ã?‹
773             */
774    //      public void setValueLineVisible( final String lineVisible ) {
775    //              boolean flag = StringUtil.nval( getRequestParameter( lineVisible ),true );
776    //              chDataset.setValueLineVisible( flag );
777    //      }
778    
779            /**
780             * ã€TAG】Value(縦軸)ã®ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])ã€?
781             *
782             * @og.tag
783             * ValueAxis ã«ã¦è¨­å®šã•れるã€ç¸¦è»¸æƒ??ã®ã€ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹ã‹ã©ã?‹æŒ?®šã—ã¾ã™ã?
784             * åˆæœŸå€¤ã¯ã€true(表示ã™ã‚‹)ã§ã™ã?
785             *
786             * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
787             *
788             * @param       labelsVisible   Value(縦軸)ã®ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹ã‹ã©ã?‹
789             */
790            public void setValueLabelsVisible( final String labelsVisible ) {
791                    boolean flag = StringUtil.nval( getRequestParameter( labelsVisible ),true );
792                    chDataset.setValueLabelsVisible( flag );
793            }
794    
795            /**
796             * ã€TAG】Value(縦軸)ã®ãƒžã?カーを表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])ã€?
797             *
798             * @og.tag
799             * ValueAxis ã«ã¦è¨­å®šã•れるã€ç¸¦è»¸æƒ??ã®ã€ã?ーカーを表示ã™ã‚‹ã‹ã©ã?‹æŒ?®šã—ã¾ã™ã?
800             * åˆæœŸå€¤ã¯ã€true(表示ã™ã‚‹)ã§ã™ã?
801             *
802             * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
803             *
804             * @param       marksVisible    Value(縦軸)ã®ãƒžã?カーを表示ã™ã‚‹ã‹ã©ã?‹
805             */
806            public void setValueMarksVisible( final String marksVisible ) {
807                    boolean flag = StringUtil.nval( getRequestParameter( marksVisible ),true );
808                    chDataset.setValueMarksVisible( flag );
809            }
810    
811            /**
812             * ã€TAG】データã®å€¤(itemText)を表示ã™ã‚‹ã‹ã©ã?‹[true/false/last]を指定ã—ã¾ã?åˆæœŸå€¤:false[表示ã—ãªã„])ã€?
813             *
814             * @og.tag
815             * CategoryItemRenderer 関連ã®ã‚°ãƒ©ãƒ•ã?設定å?をグラフ上ã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã?‹ã‚?
816             * æŒ?®šã—ã¾ã™ã?
817             * true ã«è¨­å®šã—ãŸå?åˆã?通常ã®å ´åˆã?ã€ã™ã¹ã¦ã®ã‚·ãƒªãƒ¼ã‚ºã«ãƒ©ãƒ™ãƒ«è¡¨ç¤ºã•れã¾ã™ã?
818             * false ã«è¨­å®šã™ã‚‹ã¨ã€è¡¨ç¤ºã•れã¾ã›ã‚“ã€?
819             * last を設定ã™ã‚‹ã¨ã€å„ã‚·ãƒªãƒ¼ã‚ºã®æœ?¾Œã?値ã®ã¿è¡¨ç¤ºã•れã¾ã™ã?
820             * ChartCreate クラスã«ã€seriesPikup ãŒè¨­å®šã•れã¦ã?‚‹å ´åˆã?ã€æŒ‡å®šã?シリーズ
821             * ã®ã¿ã®è¨­å®šå?を表示ã—ã?ä»–ã?値ã¯ã€è¡¨ç¤ºã—ã¾ã›ã‚“ã€?
822             * åŒæ§˜ã«ã€dynamicOCNo ãŒæŒ‡å®šã•れã¦ã?‚‹å ´å?å‹•çš„ãªãƒžã?カーライン)
823             * æœ?¸‹ä½ã?シリーズã¯ã€?–¾å€¤ã¨ã—ã¦ä½¿ç”¨ã•れるãŸã‚ã?設定å?ã¯è¡¨ç¤ºã•れã¾ã›ã‚“ã€?
824             * ラベルã®è¡¨ç¤ºä½ç½®ã¯ã€è¡¨ç¤ºã™ã‚‹ç·šã‚°ãƒ©ãƒ•ã?傾ãã«å¿œã˜ã¦ãƒ©ãƒ™ãƒ«ã®è¡¨ç¤ºå ´æ‰?‚’
825             * 変ãˆã¾ã™ã?山形ã€å³å‚ã?è°·å½¢ã€å·¦å?ã«å¿œã˜ã¦ã€ä¸Šä¸­ã€ä¸‹å³ã€ä¸‹ä¸­ã€ä¸Šå³ ã«
826             * ä½ç½®ã‚’設定ã—ã¾ã™ã?å³ã«ãšã‚‰ã™ã?ã¯ã€?0 ピクセル固定ã§ã™ã?
827             * åˆæœŸå€¤ã¯ã€false(表示ã—ãªã?ã§ã™ã?
828             *
829             * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
830             * @og.rev 4.1.2.0 (2008/03/12) æ–?­—å?ã®ã¾ã¾ã€æ¸¡ã™ã‚ˆã?«å¤‰æ›´
831             *
832             * @param       itemLabelVisible        ãƒ??ã‚¿ã®å€¤ã®è¡¨ç¤ºã®ã•ã›æ–¹(true,false,last)
833             */
834            public void setItemLabelVisible( final String itemLabelVisible ) {
835    //              boolean flag = StringUtil.nval( getRequestParameter( itemLabelVisible ),false );
836                    String flag = StringUtil.nval( getRequestParameter( itemLabelVisible ),"false" );
837                    chDataset.setItemLabelVisible( flag );
838            }
839    
840            /**
841             * ã€TAG】データã®å€¤(itemText)ã®è¡¨ç¤ºã«ã€æ¡åŒºåˆ?‚Šæ–?­—を使用ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true[使用ã™ã‚‹])ã€?
842             *
843             * @og.tag
844             * itemLabelVisible=true 時ã«ã€è¡¨ç¤ºã•れるデータ値ラベルã§ã€?
845             * NumberFormat ã—ã¦ã?¾ã™ãŒã€?¼“æ¡åŒºåˆ?‚Šæ–?­?123,456,789.0) ã®
846             * 区åˆ?‚Šè¨˜å·ã‚’表示ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã?
847             * true を指定ã™ã‚‹ã¨ã€è¡¨ç¤ºã—ã¾ã™ã?false ã§ã¯ã€è¡¨ç¤ºã—ã¾ã›ã‚“ã€?
848             * åˆæœŸå€¤ã¯ã€true(使用ã™ã‚‹)ã§ã™ã?
849             *
850             * @og.rev 4.1.2.0 (2008/03/12) æ–°è¦è¿½åŠ?
851             *
852             * @param       used    ãƒ??ã‚¿ã®æ¡åŒºåˆ?‚Šæ–?­—ã?使用有無
853             */
854            public void setUseItemLabelSep( final String used ) {
855                    boolean useItemLabelSep = StringUtil.nval( getRequestParameter( used ),true );
856                    chDataset.setUseItemLabelSep( useItemLabelSep );
857            }
858    
859            /**
860             * ã€TAG】縦軸ã®è¡¨ç¤ºé ˜åŸŸINSET値(double)を指定ã—ã¾ã™ã?
861             *
862             * @og.tag
863             * 縦軸æ–?­—表示領域(NumberAxis)ã®å¹??追åŠ??を設定ã—ã¾ã™ã?
864             * ã“れã¯ã€??常ã®è¡¨ç¤ºé ˜åŸŸã®å·¦å´ã«ã‚¹ãƒšã?スを挿入ã—ã¾ã™ã?
865             * ã‚ãã¾ã§ã€è¿½åŠ?™ã‚‹å?ãªã®ã§ã€æ–‡å­—ã?é•·ã•ã?å«ã¾ã‚Œã¾ã›ã‚“ã€?
866             * 何もæŒ?®šã—ãªã??åˆã?ã€è¨­å®šã—ã¾ã›ã‚“ã€?
867             *
868             * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
869             *
870             * @param       inset   Value(縦軸)ã®è¡¨ç¤ºé ˜åŸŸINSET値
871             */
872            public void setValueInset( final String inset ) {
873                    String valueInset = StringUtil.nval( getRequestParameter( inset ),null );
874                    chDataset.setValueInset( valueInset );
875            }
876    
877            /**
878             * ã€TAG】BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹?double)を指定ã—ã¾ã™ã?
879             *
880             * @og.tag
881             * BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹?double)を指定ã—ã¾ã™ã?
882             * 設定ã•れるã®ã¯ã€org.jfree.chart.renderer.category.BarRenderer ã‚?
883             * 使用ã—ãŸæç”»ã®ã¿ã§ã™ã?
884             * 棒グラフã?ãƒã?å¹?Œ‡å®šã?ã€ç›´æŽ¥ã€CategoryItemRendererState ã«è¨­å®šã—ã¦ã?¾ã™ã?
885             * 通常ã¯ã€barMaxWidth(0.0??.0)ã¨barItemMargin(0.0??.0)を用ã?¦æ¯”çŽ‡ã§æŒ?®šã—ã¾ã™ã?
886             * 何もæŒ?®šã—ãªã??åˆã?ã€è¨­å®šã—ã¾ã›ã‚“ã€?
887             *
888             * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
889             *
890             * @param       width   BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹?double)
891             */
892            public void setBarWidth( final String width ) {
893                    String barWidth = StringUtil.nval( getRequestParameter( width ),null );
894                    chDataset.setBarWidth( barWidth );
895            }
896    
897            /**
898             * ã€TAG】グラフã?書ãå?ã—ä½ç½®ã®ã‚ªãƒ•ã‚»ãƒ?ƒˆã‚’指定ã—ã¾ã?åˆæœŸå€¤:0)ã€?
899             *
900             * @og.tag
901             * グラフをé‡ã?ã‚‹ã¨ã€åŒã˜ä½ç½®ã‹ã‚‰æ›¸ãå?ã—ãŒå§‹ã¾ã‚Šã¾ã™ã?
902             * ã“ã?パラメータを指定ã™ã‚‹äº‹ã§ã€ã‚°ãƒ©ãƒ•ã‚’é‡ã?ãŸå?åˆã«ã€å°‘ã—ãšã¤
903             * ãšã‚‰ã—ã¦æ›¸ãå§‹ã‚る事ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã?
904             * ã“れã¯ã€ã‚·ãƒªãƒ¼ã‚ºã‚’ã?æç”»ã™ã‚‹ã¨ãã«ã€æ£’グラフã?å¹?‚’åº?’る事ã§
905             * åŒæ§˜ã?効果を得る事ãŒå‡ºæ¥ã¾ã™ãŒã€æ¤œç´¢æ¡ä»¶ç­‰ãŒç•°ãªã‚‹å?åˆã«ã¯ã€?
906             * シリーズ化ã§ãã¾ã›ã‚“ã®ã§ã€ã“ã¡ã‚‰ã?オフセãƒ?ƒˆã‚’使用ã—ã¾ã™ã?
907             * åˆæœŸå€¤ã¯ã€?(書ãå?ã—ä½ç½®ã¯æ¨™æº–ã?ã¾ã¾)ã§ã™ã?
908             *
909             * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
910             *
911             * @param       chartOffset     書ãå?ã—ä½ç½®ã®ã‚ªãƒ•ã‚»ãƒ?ƒˆ
912             */
913    //      public void setChartOffset( final String chartOffset ) {
914    //              String offset = StringUtil.nval( getRequestParameter( chartOffset ),null );
915    //              if( offset != null ) {
916    //                      chDataset.setChartOffset( Double.parseDouble(offset) );
917    //              }
918    //      }
919    
920            /**
921             * ã€TAG】BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹??æœ?¤§å€¤(0.0??.0)を指定ã—ã¾ã™ã?
922             *
923             * @og.tag
924             * BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹??æ¯”çŽ‡ã®æœ?¤§å€¤ã‚’指定ã—ã¾ã™ã?
925             * 表示領域を1ã¨ã—ã¦å°æ•°ç‚¹ä»¥ä¸‹ã?æ•°å€¤ã§æ£’ã?å¹?‚’設定ã—ã¾ã™ã?
926             * 設定ã—ãŸå¹?«ç„¡ç?Œã‚る時ã?é©å½“ãªã‚µã‚¤ã‚ºã«èª¿æ•´ã•れã¾ã™ã?
927             * (å°ã•ãã—ãŸã¨ãã«ã¯æ£’ãŒç·šã?よã†ã«ãªã‚?
928             * 設定ã•れるã®ã¯ã€org.jfree.chart.renderer.category.BarRenderer ã‚?
929             * 使用ã—ãŸæç”»ã®ã¿ã§ã™ã?
930             * 何もæŒ?®šã—ãªã??åˆã?ã€è¨­å®šã—ã¾ã›ã‚“ã€?
931             *
932             * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
933             *
934             * @param       barWidth        BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?å¹??æœ?¤§å€¤(0.0??.0)
935             */
936            public void setBarMaxWidth( final String barWidth ) {
937                    String maxBarWidth = StringUtil.nval( getRequestParameter( barWidth ),null );
938                    chDataset.setBarMaxWidth( maxBarWidth );
939            }
940    
941            /**
942             * ã€TAG】BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?アイãƒ?ƒ ã®ãƒžã?ジン(0.0??.0)を指定ã—ã¾ã™ã?
943             *
944             * @og.tag
945             * BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?アイãƒ?ƒ ã®ãƒžã?ã‚¸ãƒ³ã®æ¯”率を指定ã—ã¾ã™ã?
946             * 棒ã?間を表示領域を1ã¨ã—ã¦å°æ•°ç‚¹ä»¥ä¸‹ã?数値ã§å¹?‚’設定ã—ã¾ã™ã?
947             * ç„¡ç?Œã‚る時ã?é©å½“ãªã‚µã‚¤ã‚ºã«èª¿æ•´ã•れã¾ã™ã?
948             * barMaxWidth より優先ã•れã¾ã™ã?
949             * 設定ã•れるã®ã¯ã€org.jfree.chart.renderer.category.BarRenderer ã‚?
950             * 使用ã—ãŸæç”»ã®ã¿ã§ã™ã?
951             * 何もæŒ?®šã—ãªã??åˆã?ã€è¨­å®šã—ã¾ã›ã‚“ã€?
952             *
953             * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
954             *
955             * @param       margin  BOXãƒãƒ£ãƒ¼ãƒˆã?ãƒã?アイãƒ?ƒ ã®ãƒžã?ジン(0.0??.0)
956             */
957            public void setBarItemMargin( final String margin ) {
958                    String itemMargin = StringUtil.nval( getRequestParameter( margin ),null );
959                    chDataset.setBarItemMargin( itemMargin );
960            }
961    
962            /**
963             * ã€TAG】表示下é™å€¤(ã“れ以下ã?ãƒ??ã‚¿ã¯æœªè¡¨ç¤º)ã®å€¤(double)を指定ã—ã¾ã™ã?
964             *
965             * @og.tag
966             * HybsLine ã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™ã?
967             * ã“ã?設定å?以下ã?ãƒ??ã‚¿ã¯ã€å­˜åœ¨ã—ãªã?‰±ã?¨ã—ã¾ã™ã?
968             * Lineを引ãã¨ãã?ã“ã?ãƒ??ã‚¿ã¨ã€å­˜åœ¨ã—ã¦ã?‚‹ãƒ??ã‚¿é–“ã«ãƒ©ã‚¤ãƒ³ã¯å¼•ã‹ã‚Œã¾ã›ã‚“ã€?
969             * 何もæŒ?®šã—ãªã??åˆã?ã€è¨­å®šã—ã¾ã›ã‚“ã€?
970             *
971             * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
972             *
973             * @param       limit   表示下é™å€¤(ã“れ以下ã?ãƒ??ã‚¿ã¯æœªè¡¨ç¤º)
974             */
975            public void setVisibleLimit( final String limit ) {
976                    String visibleLimit = StringUtil.nval( getRequestParameter( limit ),null );
977                    chDataset.setVisibleLimit( visibleLimit );
978            }
979    
980            /**
981             * ã€TAG】グラフã?書ãå?ã—ä½ç½®ã®èª¿æ•´æ¯”率を指定ã—ã¾ã™ã?
982             *
983             * @og.tag
984             * HybsStackedBar ã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™ã?
985             * グラフをæç”»ã™ã‚‹å ´åˆã?ã€æ›¸ãå?ã—ä½ç½®ã‚’å°‘ã—ãšã‚‰ã—ã¾ã™ã?
986             * ã“れã¯ã€ã‚°ãƒ©ãƒ•ã?å¹?«å¯¾ã—ã¦ã€æ¯”çŽ‡ã§æŒ?®šã—ã¾ã™ã?
987             * 0.0(åˆæœŸå€¤)ã®å ´åˆã?ã€å?期æç”»ä½ç½®ã§ã‚ã‚‹ã€CategoryAnchor.Middle ã¨
988             * åŒã˜ç®?‰€ã‹ã‚‰ã€æ›¸ãå?ã•れã¾ã™ã?
989             * 1.0 ã®å ´åˆã?中å¿?‹ã‚‰ã?グラフå¹??åŠå?ãŒåŠ ç®—ã•れã?ENDä½ç½®ã«å¯?‚Šã¾ã™ã?
990             * åŒæ§˜ã«ã€?1.0 ã®å ´åˆã?ã€ã‚°ãƒ©ãƒ•å¹??åŠå?ãŒæ¸›ç®—ã•れã?START ä½ç½®ã«ãªã‚Šã¾ã™ã?
991             * ã¤ã¾ã‚Šã?中å¿?‹ã‚‰ã?グラフå¹??åŠå?å˜ä½ã§ã€å‰æ–¹/後方ã«ãšã‚‰ã™äº‹ãŒå‡ºæ¥ã¾ã™ã?
992             *   書ãå?ã—ä½ç½® ??中å¿?Middle) + (domainMargin)?Šå¹???
993             * åˆæœŸå€¤ã¯ã€?.0(真ん中:MIDDLE)ã§ã™ã?
994             *
995             * @og.rev 4.1.1.0 (2008/02/14) æ–°è¦è¿½åŠ?
996             *
997             * @param   margin double グラフã?書ãå?ã—ä½ç½®ã®èª¿æ•´æ¯”率
998             */
999            public void setDomainMargin( final String margin ) {
1000                    String domMgn = StringUtil.nval( getRequestParameter( margin ),null );
1001                    if( domMgn != null ) {
1002                            double domainMargin = Double.parseDouble( domMgn );
1003                            chDataset.setDomainMargin( domainMargin ) ;     // double margin
1004                    }
1005            }
1006    
1007            /**
1008             * ã€TAG】時刻を表ã™å?åˆã?表ç¾ã®ä»•æ–¹[E1/E2/E3/H1/H2/H3]を指定ã—ã¾ã?åˆæœŸå€¤:null)ã€?
1009             *
1010             * @og.tag
1011             * HybsNumberAxis ã«ã‚ªãƒ¼ãƒã?ライドã™ã‚?時間を表示ã™ã‚‹ DecimalFormat ã®å†?ƒ¨ã‚¯ãƒ©ã‚¹ã‚’利用ã™ã‚‹ã«å½“ãŸã‚Šã?
1012             * 時刻ã®è¡¨ç¤ºæ–¹æ³•ã‚’æŒ?®šã—ã¾ã™ã?
1013             * 外部ã‹ã‚‰ä¸Žãˆã‚‹æ•°å­—ã?ã€??ç¶šã—ã¦ã?‚‹å¿?¦ãŒã‚ã‚‹ãŸã‚ã€?¼‘ï¼é?æ•°ã§ã™ã?
1014             * ãŸã¨ãˆã?ã€?700 â†?17:00 , 2150 â†?21:30 ã¨ã?†æ„Ÿã˜ã§ã™ã?
1015             * 2400 ã‚’è¶?ˆã‚‹ã¨æ—¥ä»˜é•ã?«ãªã‚Šã¾ã™ã?
1016             *
1017             * 英語表è¨?:)ã¨æ—¥æœ¬èªžè¡¨è¨?æ™?ã®åŒºåˆ¥ã¨ã€?4時間をè¶?ˆã‚‹å?åˆã?表示方法ã«ã‚ˆã£ã¦ã€?¼–種類ã?パターンãŒå­˜åœ¨ã—ã¾ã™ã?
1018             * ã€?1:ãã?ã¾ã¾ã€?4:00 ã¨ãªã‚Šã?åŠ?®—ã•れã¦ã?ã€?
1019             * ã€?2:ãã?ã¾ã¾ã€?:00 ã«æˆ»ã‚‹ã?(日付ã?ç„¡è¦?
1020             * ã€?3:ãã?ã¾ã¾ã€? 00:00 ã¨æ—¥ä»˜ãŒä»˜ä¸Žã•れるã€?
1021             * ã€?1:ãã?ã¾ã¾ã€?4æ™?0åˆ?ã¨ãªã‚Šã?åŠ?®—ã•れã¦ã?ã€?
1022             * ã€?2:ãã?ã¾ã¾ã€?0æ™?0åˆ?ã«æˆ»ã‚‹ã?(日付ã?ç„¡è¦?
1023             * ã€?3:ãã?ã¾ã¾ã€?æ—¥ 00æ™?0åˆ?ã¨æ—¥ä»˜ãŒä»˜ä¸Žã•れるã€?
1024             * åˆæœŸå€¤ã¯ã€ä½¿ç”¨ã—ãªã?-1)ã§ã™ã?
1025             *
1026             * @og.rev 5.5.2.1 (2012/05/07) æ–°è¦è¿½åŠ?
1027             *
1028             * @param   type 時刻ã®è¡¨ç¤ºæ–¹æ³?E1,E2,E3,H1,H2,H3)
1029             */
1030            public void setTimeFormatType( final String type ) {
1031                    String timeFormatType = StringUtil.nval( getRequestParameter( type ),null );
1032                    chDataset.setTimeFormatType( timeFormatType );
1033            }
1034    
1035            /**
1036             * ã€TAG】ラベルã®è¡¨ç¤ºå‘ãを縦ã«ã™ã‚‹ã‹ã©ã?‹[false/true]を指定ã—ã¾ã?åˆæœŸå€¤:false[横書ã])ã€?
1037             *
1038             * @og.tag
1039             * ChartCreate ã® rotationLabel ã¯ã€è§’度を指定ã§ãã¾ã—ãŸãŒã?NumberAxis ã§ã¯ã€?
1040             * 縦ã«ã™ã‚‹ã‹ã©ã?‹ã®æŒ?®šã—ã‹ã§ãã¾ã›ã‚“ã€?
1041             * ã“ã“ã§ã¯ã€true を指定ã™ã‚‹ã¨ãƒ©ãƒ™ãƒ«ã¯ã€ç¸¦æ›¸ãã«ãªã‚Šã¾ã™ã?
1042             * åˆæœŸå€¤ã¯ã€false(横書ã?ã§ã™ã?
1043             *
1044             * @og.rev 5.5.2.1 (2012/05/07) æ–°è¦è¿½åŠ?
1045             *
1046             * @param       useVLavels      ラベルã®è¡¨ç¤ºå‘ã [false:横書ã?true:縦書ã]
1047             */
1048            public void setUseVerticalLabels( final String useVLavels ) {
1049                    boolean useVerticalLabels = StringUtil.nval( getRequestParameter( useVLavels ),false );
1050                    chDataset.setUseVerticalLabels( useVerticalLabels );
1051            }
1052    
1053            /**
1054             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
1055             *
1056             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
1057             * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクãƒ?ChartDataset)ã¯ã€ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºã•れã¾ã›ã‚“ã€?
1058             *
1059             * @param       strm    ObjectOutputStreamオブジェク�
1060             * @throws IOException  シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
1061             */
1062            private void writeObject( final ObjectOutputStream strm ) throws IOException {
1063                    strm.defaultWriteObject();
1064            }
1065    
1066            /**
1067             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèª­ã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
1068             *
1069             * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨­å®šã—ã¾ã™ã?
1070             *
1071             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
1072             * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクãƒ?ChartDataset)ã¯ã€èª­ã¿è¾¼ã¾ã‚Œã¾ã›ã‚“ã€?
1073             *
1074             * @param       strm    ObjectInputStreamオブジェク�
1075             * @see #release2()
1076             * @throws IOException  シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
1077             * @throws ClassNotFoundException       クラスを見ã¤ã‘ã‚‹ã“ã¨ãŒã§ããªã‹ã£ãŸå?å?
1078             */
1079            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
1080                    strm.defaultReadObject();
1081                    chDataset = new ChartDataset();
1082            }
1083    
1084            /**
1085             * ã“ã?オブジェクトã?æ–?­—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
1086             * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
1087             *
1088             * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?­—å?表ç¾
1089             */
1090            @Override
1091            public String toString() {
1092                    StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
1093    
1094                    rtn.append( "[" ).append( this.getClass().getName() ).append( "]" ).append( HybsSystem.CR );
1095                    rtn.append( "dbid        [" ).append( dbid       ).append( "]" ).append( HybsSystem.CR );
1096                    rtn.append( "sql         [" ).append( sql        ).append( "]" ).append( HybsSystem.CR );
1097                    rtn.append( "dataset     [" ).append( chDataset  ).append( "]" ).append( HybsSystem.CR );
1098    
1099                    return rtn.toString();
1100            }
1101    }