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.taglib; 017 018import org.opengion.fukurou.db.ConnectionFactory; 019import org.opengion.fukurou.util.StringUtil; 020import org.opengion.hayabusa.common.HybsSystem; 021import org.opengion.hayabusa.common.HybsSystemException; 022import org.opengion.hayabusa.io.ChartDataset; 023import org.opengion.hayabusa.db.DBTableModel; 024 025import java.sql.SQLException; 026import java.sql.Connection; 027import java.io.ObjectOutputStream; 028import java.io.ObjectInputStream; 029import 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 * ●形式:<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~1.0)を指定します 083 * barItemMargin 【TAG】BOXチャートのバーアイテムのマージン(0.0~1.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~1.0]" バー幅の最大値(0.0~1.0) 130 * barItemMargin = "[0.0~1.0]" バーアイテムのマージン(0.0~1.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 */ 199public class ChartDatasetTag extends CommonTagSupport { 200 //* このプログラムのVERSION文字列を設定します。 {@value} */ 201 private static final String VERSION = "5.7.8.0 (2014/07/04)" ; 202 203 private static final long serialVersionUID = 578020140704L ; 204 205 private transient ChartDataset chDataset = new ChartDataset(); 206 207 // 4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更 208 private String dbid = null; 209 private String sql = null; 210 211 // 5.3.0.0 (2010/12/01) DBTableModel を利用して、グラフを作成します。 212 private boolean useTableData = false; // 互換性の関係から 213 private String tableId = HybsSystem.TBL_MDL_KEY; 214 215 /** 216 * Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。 217 * 218 * @og.rev 5.3.0.0 (2010/12/01) useTableDataによるデータ取得方法の機能追加 219 * 220 * @return 後続処理の指示( EVAL_BODY_BUFFERED ) 221 */ 222 @Override 223 public int doStartTag() { 224 // 5.3.0.0 (2010/12/01) useTableDataによるデータ取得方法の機能追加 225 if( useTableData ) { // DBTableModel から取得する。 226 DBTableModel table = (DBTableModel)getObject( HybsSystem.TBL_MDL_KEY ); 227 chDataset.makeDataset( table ); 228 229 return SKIP_BODY ; // Body を評価しない 230 } 231 else { 232 return EVAL_BODY_BUFFERED ; // Body を評価する。( extends BodyTagSupport 時) 233 } 234 } 235 236 /** 237 * Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。 238 * 239 * @og.rev 5.3.0.0 (2010/12/01) データベース検索処理を、doEndTag() メソッドから移動 240 * 241 * @return 後続処理の指示(SKIP_BODY) 242 */ 243 @Override 244 public int doAfterBody() { 245 sql = getBodyString(); 246 if( sql != null && sql.length() > 0 ) { 247 sql = sql.trim(); 248 } 249 250 // 5.3.0.0 (2010/12/01) doEndTag() メソッドから移動 251 boolean errFlag = true; 252 Connection conn = null; 253 try { 254 conn = ConnectionFactory.connection( dbid,getApplicationInfo() ); 255 chDataset.makeDataset( conn,sql ); 256 errFlag = false; // エラーではない 257 } 258 catch( SQLException ex ) { 259 String errMsg = "データセット作成時にエラーが発生しました。" + HybsSystem.CR 260 + " SQL=" + sql + HybsSystem.CR 261 + ex.getMessage(); // 5.1.8.0 (2010/07/01) errMsg 修正 262 throw new HybsSystemException( errMsg,ex ); 263 } 264 finally { 265 if( errFlag ) { ConnectionFactory.remove( conn,dbid ); } // 削除 266 else { ConnectionFactory.close( conn,dbid ); } // 返却 267 } 268 269 return SKIP_BODY ; 270 } 271 272 /** 273 * Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 274 * 275 * @og.rev 4.0.0.1 (2007/12/03) try ~ catch ~ finally をきちんと行う。 276 * @og.rev 5.2.1.0 (2010/10/01) debugPrint() メソッド追加 277 * @og.rev 5.3.0.0 (2010/12/01) データベース検索処理を、doAfterBody() へ移動 278 * 279 * @return 後続処理の指示 280 */ 281 @Override 282 public int doEndTag() { 283 debugPrint(); // 5.2.1.0 (2010/10/01) debugPrint() メソッド追加 284 285 // 理屈上、ChartCreateTag の存在チェックがここで行われるが、DB検索処理は、先に行っている。 286 // つまり、無駄なQUERYが実行される可能性が出てきたが、開発段階のみの話であるのでここに残しておく。 287 ChartCreateTag chartTag = (ChartCreateTag)findAncestorWithClass( this,ChartCreateTag.class ); 288 289 if( chartTag == null ) { 290 String errMsg = "chartCreate タグが見つかりませんでした。"; 291 throw new HybsSystemException( errMsg ); 292 } 293 294 chartTag.addChartDataset( chDataset ); 295 296 return EVAL_PAGE; 297 } 298 299 /** 300 * タグリブオブジェクトをリリースします。 301 * キャッシュされて再利用されるので、フィールドの初期設定を行います。 302 * 303 * @og.rev 4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更 304 * @og.rev 5.3.0.0 (2010/12/01) useTableData,tableId 属性追加 305 */ 306 @Override 307 protected void release2() { 308 super.release2(); 309 chDataset = new ChartDataset(); 310 dbid = null; 311 sql = null; 312 useTableData = false; // 5.3.0.0 (2010/12/01) 313 tableId = HybsSystem.TBL_MDL_KEY; // 5.3.0.0 (2010/12/01) 314 } 315 316 /** 317 * 【TAG】(通常は使いません)Datasetオブジェクトを作成する時のDB接続IDを指定します。 318 * 319 * @og.tag 320 * Datasetオブジェクトを作成する時のDB接続IDを指定します。 321 * これは、システムリソースで、DEFAULT_DB_URL 等で指定している データベース接続先 322 * 情報に、XX_DB_URL を定義することで、 dbid="XX" とすると、この 接続先を使用して 323 * データベースにアクセスできます。 324 * 325 * @param id データベース接続ID 326 */ 327 public void setDbid( final String id ) { 328 dbid = StringUtil.nval( getRequestParameter( id ),dbid ); 329 } 330 331 /** 332 * 【TAG】ChartDataset のデータタイプを指定します。 333 * 334 * @og.tag 335 * チャートタイプ は、外部からチャートを指定するのに便利なように、キー化 336 * されています。このキーに基づいて、ChartFactory クラスの 337 * チャートタイプ変換表に基づいて、レンデラーや、データセットを作成します。 338 * 基本的には、チャートタイプ は、この、レンデラー名称から決定しています。 339 * 340 * <table border="1" frame="box" rules="all" > 341 * <caption>各種オブジェクトの組み合わせ一覧</caption> 342 * <tr><th> チャートタイプ </th><th> レンデラー(org.jfree.chart.renderer.) </th><th> Dataset </th></tr> 343 * <tr><td> HybsLine </td><td> HybsLineRenderer </td><td> Category </td></tr> 344 * <tr><td> LineAndShape </td><td> category.LineAndShapeRenderer </td><td> Category </td></tr> 345 * <tr><td> Line3D </td><td> category.LineRenderer3D </td><td> Category </td></tr> 346 * <tr><td> StatisticalLineAndShape </td><td> category.StatisticalLineAndShapeRenderer </td><td> Category </td></tr> 347 * <tr><td> HybsBar </td><td> HybsBarRenderer </td><td> Category </td></tr> 348 * <tr><td> Bar </td><td> category.BarRenderer </td><td> Category </td></tr> 349 * <tr><td> Bar3D </td><td> category.BarRenderer3D </td><td> Category </td></tr> 350 * <tr><td> Area </td><td> category.AreaRenderer </td><td> Category </td></tr> 351 * <tr><td> HybsStackedBar </td><td> HybsStackedBarRenderer </td><td> Category </td></tr> 352 * <tr><td> StackedBar </td><td> category.StackedBarRenderer </td><td> Category </td></tr> 353 * <tr><td> StackedBar3D </td><td> category.StackedBarRenderer3D </td><td> Category </td></tr> 354 * <tr><td> StackedArea </td><td> category.StackedAreaRenderer </td><td> Category </td></tr> 355 * <tr><td> GroupedStackedBar </td><td> category.GroupedStackedBarRenderer </td><td> Category </td></tr> 356 * <tr><td> LayeredBar </td><td> category.LayeredBarRenderer </td><td> Category </td></tr> 357 * <tr><td> CategoryStep </td><td> category.CategoryStepRenderer </td><td> Category </td></tr> 358 * <tr><td> Level </td><td> category.LevelRenderer </td><td> Category </td></tr> 359 * <tr><td> MinMax </td><td> category.MinMaxCategoryRenderer </td><td> Category </td></tr> 360 * <tr><td> WaterfallBar </td><td> category.WaterfallBarRenderer </td><td> Category </td></tr> 361 * <tr><td> MultiplePie </td><td> null </td><td> Category </td></tr> 362 * <tr><td> SpiderWeb </td><td> null </td><td> Category </td></tr> 363 * <tr><td> Pie </td><td> null </td><td> Pie </td></tr> 364 * <tr><td> Pie3D </td><td> null </td><td> Pie </td></tr> 365 * <tr><td> Ring </td><td> null </td><td> Pie </td></tr> 366 * <tr><td> XYArea </td><td> xy.XYAreaRenderer </td><td> XY </td></tr> 367 * <tr><td> XYArea2 </td><td> xy.XYAreaRenderer2 </td><td> XY </td></tr> 368 * <tr><td> XYBlock </td><td> xy.XYBlockRenderer </td><td> XY </td></tr> 369 * <tr><td> CyclicXYItem </td><td> xy.CyclicXYItemRenderer </td><td> XY </td></tr> 370 * <tr><td> HighLow </td><td> xy.HighLowRenderer </td><td> XY </td></tr> 371 * <tr><td> StackedXYArea </td><td> xy.StackedXYAreaRenderer </td><td> XY </td></tr> 372 * <tr><td> StackedXYArea2 </td><td> xy.StackedXYAreaRenderer2 </td><td> XY </td></tr> 373 * <tr><td> StandardXYItem </td><td> xy.StandardXYItemRenderer </td><td> XY </td></tr> 374 * <tr><td> XYBubble </td><td> xy.XYBubbleRenderer </td><td> XY </td></tr> 375 * <tr><td> XYDifference </td><td> xy.XYDifferenceRenderer </td><td> XY </td></tr> 376 * <tr><td> XYDot </td><td> xy.XYDotRenderer </td><td> XY </td></tr> 377 * <tr><td> XYError </td><td> xy.XYErrorRenderer </td><td> XY </td></tr> 378 * <tr><td> XYLine3D </td><td> xy.XYLine3DRenderer </td><td> XY </td></tr> 379 * <tr><td> XYLineAndShape </td><td> xy.XYLineAndShapeRenderer </td><td> XY </td></tr> 380 * <tr><td> XYStepArea </td><td> xy.XYStepAreaRenderer </td><td> XY </td></tr> 381 * <tr><td> XYStep </td><td> xy.XYStepRenderer </td><td> XY </td></tr> 382 * <tr><td> PolarItem </td><td> DefaultPolarItemRenderer </td><td> XY </td></tr> 383 * <tr><td> Meter </td><td> null </td><td> Value </td></tr> 384 * <tr><td> Thermometer </td><td> null </td><td> Value </td></tr> 385 * <tr><td> Compass </td><td> null </td><td> Value </td></tr> 386 * <tr><td> Gantt </td><td> category.GanttRenderer </td><td> TaskSeries </td></tr> 387 * <tr><td> XYBarV </td><td> xy.XYBarRenderer </td><td> TimeSeries </td></tr> 388 * <tr><td> ClusteredXYBarV </td><td> xy.ClusteredXYBarRenderer </td><td> TimeSeries </td></tr> 389 * <tr><td> YIntervalV </td><td> xy.YIntervalRenderer </td><td> TimeSeries </td></tr> 390 * <tr><td> DeviationV </td><td> xy.DeviationRenderer </td><td> TimeSeries </td></tr> 391 * <tr><td> TimeSeriesLineV </td><td> xy.StandardXYItemRenderer </td><td> TimeSeries </td></tr> 392 * <tr><td> TimeSeriesLineH </td><td> xy.StandardXYItemRenderer </td><td> TimeSeries </td></tr> 393 * <tr><td> TimeSeriesBarV </td><td> xy.XYBarRenderer </td><td> TimeSeries </td></tr> 394 * <tr><td> TimeSeriesBarH </td><td> xy.XYBarRenderer </td><td> TimeSeries </td></tr> 395 * <tr><td> StackedTimeSeriesLineV </td><td> xy.StandardXYItemRenderer </td><td> TimeSeries </td></tr> 396 * <tr><td> StackedTimeSeriesLineH </td><td> xy.StandardXYItemRenderer </td><td> TimeSeries </td></tr> 397 * </table> 398 * 399 * Meter と Compass は、さらに、needleType が指定できます。 400 * これは、Meter_PIE や、Compass_Arrow などとすることで、形状を指定できます。 401 * Meter には、CHORD,CIRCLE(初期値),PIE 402 * Compass には、Arrow,Line,Long,Pin,Plum,Pointer(初期値),Ship,Wind,Arrow,MiddlePin が指定できます。 403 * 404 * @og.rev 5.7.8.0 (2014/07/04) needleType 対応 405 * 406 * @param chartType チャートタイプ 407 * @see org.jfree.chart.renderer.category.CategoryItemRenderer 408 * @see org.jfree.chart.renderer.xy.XYItemRenderer 409 */ 410 public void setChartType( final String chartType ) { 411// chDataset.setChartType( getRequestParameter( chartType ) ); 412 413 // 5.7.8.0 (2014/07/04) needleType 対応 414 String chType = getRequestParameter( chartType ) ; 415 416 int adrs = chType.indexOf( '_' ); 417 if( adrs < 0 ) { 418 // 今まで通り chartType の設定 419 chDataset.setChartType( chType ); 420 } 421 else { 422 chDataset.setChartType( chType.substring(0,adrs) ); 423 chDataset.setNeedleType( chType.substring(adrs+1) ); 424 } 425 } 426 427 /** 428 * 【TAG】グラフ化するデータを DBTableModel から作成するかどうか(初期値:false)。 429 * 430 * @og.tag 431 * useTableData="false"(初期値)の場合は、BODY部に書かれた SQL 文を実行してデータを取得します。 432 * useTableData="true" にすると、その前の query タグ等で作成した DBTableModel を利用して 433 * グラフ化します。その場合は、BODY部の SQL 文は、無視されます。 434 * 利用する DBTableModel は、tableId と scope 属性から取得します。 435 * 436 * @og.rev 5.3.0.0 (2010/12/01) 新規追加 437 * 438 * @param flag データをDBTableModelを利用する場合、true 439 */ 440 public void setUseTableData( final String flag ) { 441 useTableData = StringUtil.nval( getRequestParameter( flag ),useTableData ); 442 } 443 444 /** 445 * 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します 446 * (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。 447 * 448 * @og.tag 449 * 検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 450 * 渡す場合に、通常は、session を利用します。その場合の登録キーです。 451 * query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 452 * この tableId 属性を利用して、メモリ空間を分けます。 453 * (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。 454 * 455 * @param id sessionに登録する時の ID 456 */ 457 public void setTableId( final String id ) { 458 tableId = StringUtil.nval( getRequestParameter( id ), tableId ); 459 } 460 461 /** 462 * 【TAG】シリーズ単位の凡例 の表示可否を設定します。 463 * 464 * @og.tag 465 * シリーズ単位の凡例 の表示可否を設定します。 466 * 467 * @param baseLegend シリーズ単位の凡例 の表示可否 468 */ 469 public void setBaseLegend( final String baseLegend ) { 470 boolean flag = StringUtil.nval( getRequestParameter( baseLegend ),true ); 471 chDataset.setBaseLegend( flag ); 472 } 473 474 /** 475 * 【TAG】縦軸の表示名称を指定します。 476 * 477 * @og.tag 478 * 縦軸の表示名称を指定します。 479 * 480 * @param valueLabel 縦軸の表示名称 481 */ 482 public void setValueLabel( final String valueLabel ) { 483 chDataset.setValueLabel( getRequestParameter( valueLabel ) ); 484 } 485 486 /** 487 * 【TAG】マーカーラインの設定値をカンマ区切り形式で複数指定します。 488 * 489 * @og.tag 490 * 指定の値にマーカーラインを引きます。 491 * 色は、setMarkColors( String ) で指定します。 492 * markColors と、個数をあわせて設定する必要があります。 493 * どちらかが、指定されていない場合は、マーカー表示されません。 494 * dynamicOCNo を使用する場合は、そのValues の並びの箇所に、 495 * "G" という文字列を設定して下さい。 496 * 例:2000,G 基準1は、2000の直線、基準2は、グラフ という意味。 497 * 498 * @param markValues マーカーラインの設定値(CSV形式) 499 * @see #setMarkColors( String ) 500 */ 501 public void setMarkValues( final String markValues ) { 502 String vals = StringUtil.nval( getRequestParameter( markValues ),null ); 503 if( vals != null ) { 504 chDataset.setMarkValues( StringUtil.csv2Array( vals ) ); 505 } 506 } 507 508 /** 509 * 【TAG】マーカーライン描画時に、その設定値を表示します。 510 * 511 * @og.tag 512 * マーカーラインの縦軸の設定値(markValues)に、設定値をラベル表示します。 513 * 位置は、TextAnchor.BASELINE_LEFT 固定です。 514 * 初期値は、表示する(true)です。 515 * 516 * @og.rev 4.1.1.0 (2008/02/04) 新規追加 517 * 518 * @param useAnchor true:設定値を表示する。 519 */ 520 public void setUseMarkAnchor( final String useAnchor ) { 521 boolean flag = StringUtil.nval( getRequestParameter( useAnchor ),true ); 522 chDataset.setUseMarkAnchor( flag ); 523 } 524 525 /** 526 * 【TAG】マーカーラインの色をカンマ区切り形式で複数指定します。 527 * 528 * @og.tag 529 * マーカーラインとは、縦軸設定のラインの事で、縦軸の設定値(markValues)に 530 * 横方向にラインを付与します。このラインの色を、カンマ区切り形式で 531 * 指定します。 532 * markValues と、あわせて設定する必要があります。 533 * 個数が異なる場合は、markValues が優先され、無指定の場合は、Color.REDで 534 * 表示されます。 535 * 536 * 指定文字列は、java.awt.Color クラスのstatic フィールド名で指定します。 537 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY , 538 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) が指定できます。 539 * また、#XXXXXX形式の16bitRGB表記 でも指定可能です。 540 * <pre> 541 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY , 542 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) 543 * #XXXXXX形式の16bitRGB表記 でも指定可能です。 544 * </pre> 545 * 546 * @param markColors マーカーラインの色(CSV形式) 547 * @see java.awt.Color#BLACK 548 * @see #setMarkValues( String ) 549 */ 550 public void setMarkColors( final String markColors ) { 551 String clrs = StringUtil.nval( getRequestParameter( markColors ),null ); 552 if( clrs != null ) { 553 chDataset.setMarkColors( StringUtil.csv2Array( clrs ) ); 554 } 555 } 556 557 /** 558 * 【TAG】マーカーラインの超過時のShape色をカンマ区切り形式で複数指定します。 559 * 560 * @og.tag 561 * HybsLine でのみ使用可能です。 562 * マーカーラインを使用する場合に、そのラインを超えない色、超える色を指定します。 563 * この色の指定は、マーカーラインの色やマーカーラインの設定値の個数+1に 564 * なります。つまり、色1:設定値1:色2:設定値2:色3 となります。 565 * 色1は、設定値1より小さい場合に使用され、色2は、設定値1より大きく、 566 * 設定値2より小さい場合、色3は、設定値2より大きい場合になります。 567 * 568 * 指定文字列は、java.awt.Color クラスのstatic フィールド名で指定します。 569 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY , 570 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) が指定できます。 571 * また、#XXXXXX形式の16bitRGB表記 でも指定可能です。 572 * markValues と、あわせて設定する必要があります。 573 * どちらかが、指定されていない場合は、マーカー表示されません。 574 * <pre> 575 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY , 576 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) 577 * #XXXXXX形式の16bitRGB表記 でも指定可能です。 578 * </pre> 579 * 580 * @og.rev 4.0.3.0 (2008/01/07) 新規追加 581 * 582 * @param overColors マーカーラインの超過時のShape色(CSV形式) 583 * @see java.awt.Color#BLACK 584 */ 585 public void setMarkOverColors( final String overColors ) { 586 String clrs = StringUtil.nval( getRequestParameter( overColors ),null ); 587 if( clrs != null ) { 588 chDataset.setMarkOverColors( StringUtil.csv2Array( clrs ) ); 589 } 590 } 591 592 /** 593 * 【TAG】動的なマーカーラインの基準シリーズ番号を設定します(初期値:null)。 594 * 595 * @og.tag 596 * 動的なマーカーラインを使用する場合は、基準値となるシリーズ番号を指定します。 597 * 598 * マーカーラインの最下位閾値に相当します。これは、グラフ化されますが、 599 * Shape は自動的に削除されます。 600 * この設定を使用する場合、最初のデータには、必ずShapeが付きます。それ以外の 601 * データに、Shape を付けるかどうかは、shapesVisible 属性で指定します。 602 * この線の色は、markColors で指定した、最下位の色になります。また、 603 * markValues で指定した、最下位の値は、使用されません。ただし、色指定の 604 * 関係上、設定しておく必要があります。 605 * また、isValueVisible == true で、設定値の値表示を行う場合も、最下位の 606 * 値は表示しないようにします。 607 * 初期値は、使用しない(null)です。 608 * 609 * @og.rev 4.1.1.0 (2008/02/04) 新規追加 610 * @og.rev 4.1.1.0 (2008/02/19) setUseDynamicOC ⇒ setDynamicOCNo 611 * 612 * @param dynamicOCNo true:動的なマーカーラインの基準シリーズ番号 613 */ 614 public void setDynamicOCNo( final String dynamicOCNo ) { 615 int ocNo = StringUtil.nval( getRequestParameter( dynamicOCNo ),-1 ); 616 chDataset.setDynamicOCNo( ocNo ); 617 } 618 619 /** 620 * 【TAG】チャートの縦軸の最小値をセットします(初期値:自動計算)。 621 * 622 * @og.tag 623 * 何も指定しない場合は、データの最小値から、自動的に計算します。 624 * 625 * @param lowerBound 縦軸の最小値 626 */ 627 public void setLowerBound( final String lowerBound ) { 628 chDataset.setLowerBound( getRequestParameter( lowerBound ) ); 629 } 630 631 /** 632 * 【TAG】チャートの縦軸の最大値をセットします(初期値:自動計算)。 633 * 634 * @og.tag 635 * 何も指定しない場合は、データの最大値から、自動的に計算します。 636 * 637 * @param upperBound 縦軸の最大値 638 */ 639 public void setUpperBound( final String upperBound ) { 640 chDataset.setUpperBound( getRequestParameter( upperBound ) ); 641 } 642 643 /** 644 * 【TAG】チャートの縦軸の目盛の幅をセットします(初期値:自動計算)。 645 * 646 * @og.tag 647 * 何も指定しない場合は、データの範囲から、自動的に計算します。 648 * 649 * @og.rev 4.0.3.0 (2008/01/07) 新規追加 650 * 651 * @param size 縦軸のチック(目盛)の幅 652 */ 653 public void setTickSize( final String size ) { 654 chDataset.setTickSize( getRequestParameter( size ) ); 655 } 656 657 /** 658 * 【TAG】バーチャートのグラデーション処理を行うかどうか[true/false]をセットします(初期値:false)。 659 * 660 * @og.tag 661 * 通常のバーチャートは、単一色表示で表されますが、これにグラデーション効果を 662 * 付加するかどうかを指定します。 663 * 通常のバーチャートが、少しきれいに見えます。 664 * 初期値は、false(使用しない)です。 665 * 666 * @param useGradient グラデーション処理 [true:する/false:しない] 667 */ 668 public void setUseGradient( final String useGradient ) { 669 boolean flag = StringUtil.nval( getRequestParameter( useGradient ),false ); 670 chDataset.setUseGradient( flag ); 671 } 672 673 /** 674 * 【TAG】ラインチャートのポイントを四角表示するかどうかを指定します(初期値:true)。 675 * 676 * @og.tag 677 * ラインチャートは、通常、線分で表され、各ポイントについても、線分で接続されます。 678 * shapesVisible を true に設定すると、各ポイントが、線上に四角く表示され、 679 * そのポイントの位置を、容易に判断出来るようになります。 680 * 初期値は、true( LineAndShape )です。 681 * 682 * @param shapesVisible ポイントを四角表示するかどうか 683 */ 684 public void setShapesVisible( final String shapesVisible ) { 685 boolean flag = StringUtil.nval( getRequestParameter( shapesVisible ),true ); 686 chDataset.setShapesVisible( flag ); 687 } 688 689 /** 690 * 【TAG】データ毎にShapeを切り替える時の色の繰返しパターンを文字列配列で指定します。 691 * 692 * @og.tag 693 * HybsLine でのみ使用可能です。 694 * これは、データそのものが、繰返し性のある場合に、その繰返し性に対応した 695 * 形状のShape を表示させる場合に使用します。 696 * 繰返しShapeの形状は、JFreeChart のシリーズ毎の繰返し標準形状を使用します。 697 * 現在のバージョンでは、10個までの繰返しに対応可能です。 698 * 繰返し色を、指定した分だけ、順に使用されていきます。 699 * 700 * 指定文字列は、java.awt.Color クラスのstatic フィールド名で指定します。 701 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY , 702 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) が指定できます。 703 * また、#XXXXXX形式の16bitRGB表記 でも指定可能です。 704 * 705 * @og.rev 4.0.3.0 (2008/01/07) 新規追加 706 * 707 * @param colors データ毎の色の繰返しパターン(文字列配列) 708 * @see java.awt.Color#BLACK 709 */ 710 public void setShapeColors( final String colors ) { 711 String clrs = StringUtil.nval( getRequestParameter( colors ),null ); 712 if( clrs != null ) { 713 chDataset.setShapeColors( StringUtil.csv2Array( clrs ) ); 714 } 715 } 716 717 /** 718 * 【TAG】shapeの大きさを倍率指定で変更します(初期値:null)。 719 * 720 * @og.tag 721 * ラインチャートのShape(各グラフのポイントのマーカー)の大きさは、通常は、 722 * 自動設定されます。 723 * この大きさを、倍率指定で、変更可能です。 724 * 指定は、double 型です。 725 * 初期値は、null は、スケール変更しません(自動設定のままの大きさ) 726 * 727 * @og.rev 4.1.1.0 (2008/02/04) 新規追加 728 * 729 * @param scale shapeの大きさの倍率 730 */ 731 public void setShapeScale( final String scale ) { 732 String shapeScale = StringUtil.nval( getRequestParameter( scale ),null ); 733 if( shapeScale != null ) { 734 chDataset.setShapeScale( shapeScale ); 735 } 736 } 737 738 /** 739 * 【TAG】ラインチャートの線をドットラインにするかどうか[true/false]を指定します(初期値:false[線分])。 740 * 741 * @og.tag 742 * ラインチャートは、通常、線分で表されます。 743 * これに、点線で表すことで、グラフの違いを、色だけでなく形状でも識別 744 * しやすくすることが可能です。 745 * 初期値は、false(線分)です。 746 * 747 * @param useDottedLine ドットラインにするかどうか [true:点線/false:線分] 748 */ 749 public void setUseDottedLine( final String useDottedLine ) { 750 boolean flag = StringUtil.nval( getRequestParameter( useDottedLine ),false ); 751 chDataset.setUseDottedLine( flag ); 752 } 753 754 /** 755 * 【TAG】複数チャート描画時のチャート色の繰返しパターンをCVS形式で複数指定します。 756 * 757 * @og.tag 758 * 通常、複数のチャートを同時に表示させる場合は、縦軸が共通であれば、 759 * 1回のSelect分で複数データを取得します。 760 * この、データをシリーズと呼んでおり、これを区別する為に、色を分けます。 761 * 初期値は、JFreeChart が自動で割り振ります。 762 * これを、外部からCVS形式で、カンマ区切りで色コードを指定します。 763 * 指定データが多い場合は、多い分の色は使用されません。少ない場合は、 764 * 順番に繰り返して使用されます。 765 * 例えば、1色だけ指定した場合は、すべてのシリーズが同じ色で表されます。 766 * 767 * 指定文字列は、java.awt.Color クラスのstatic フィールド名で指定します。 768 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY , 769 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) が指定できます。 770 * 771 * また、#XXXXXX形式の16bitRGB表記 でも指定可能です。 772 * 773 * @param colors チャート色の繰返しパターン(CVS形式) 774 * @see java.awt.Color#BLACK 775 */ 776 public void setSeriesColors( final String colors ) { 777 String clrs = StringUtil.nval( getRequestParameter( colors ),null ); 778 if( clrs != null ) { 779 chDataset.setSeriesColors( StringUtil.csv2Array( clrs ) ); 780 } 781 } 782 783 /** 784 * 【TAG】Value(縦軸)のラベルを表示するかどうかを指定します(初期値:true[表示する])。 785 * 786 * @og.tag 787 * ValueAxis にて設定される、縦軸情報の、ラベルを表示するかどうか指定します。 788 * 初期値は、true(表示する)です。 789 * 790 * @og.rev 4.0.2.0 (2007/12/20) 新規追加 791 * 792 * @param labelsVisible Value(縦軸)のラベルを表示するかどうか 793 */ 794 public void setValueLabelsVisible( final String labelsVisible ) { 795 boolean flag = StringUtil.nval( getRequestParameter( labelsVisible ),true ); 796 chDataset.setValueLabelsVisible( flag ); 797 } 798 799 /** 800 * 【TAG】Value(縦軸)のマーカーを表示するかどうかを指定します(初期値:true[表示する])。 801 * 802 * @og.tag 803 * ValueAxis にて設定される、縦軸情報の、マーカーを表示するかどうか指定します。 804 * 初期値は、true(表示する)です。 805 * 806 * @og.rev 4.0.2.0 (2007/12/20) 新規追加 807 * 808 * @param marksVisible Value(縦軸)のマーカーを表示するかどうか 809 */ 810 public void setValueMarksVisible( final String marksVisible ) { 811 boolean flag = StringUtil.nval( getRequestParameter( marksVisible ),true ); 812 chDataset.setValueMarksVisible( flag ); 813 } 814 815 /** 816 * 【TAG】データの値(itemText)を表示するかどうか[true/false/last]を指定します(初期値:false[表示しない])。 817 * 818 * @og.tag 819 * CategoryItemRenderer 関連のグラフの設定値をグラフ上に表示するかどうかを 820 * 指定します。 821 * true に設定した場合、通常の場合は、すべてのシリーズにラベル表示されます。 822 * false に設定すると、表示されません。 823 * last を設定すると、各シリーズの最後の値のみ表示されます。 824 * ChartCreate クラスに、seriesPikup が設定されている場合は、指定のシリーズ 825 * のみの設定値を表示し、他の値は、表示しません。 826 * 同様に、dynamicOCNo が指定されている場合(動的なマーカーライン) 827 * 最下位のシリーズは、閾値として使用されるため、設定値は表示されません。 828 * ラベルの表示位置は、表示する線グラフの傾きに応じてラベルの表示場所を 829 * 変えます。山形、右坂、谷形、左坂 に応じて、上中、下右、下中、上右 に 830 * 位置を設定します。右にずらすのは、10 ピクセル固定です。 831 * 初期値は、false(表示しない)です。 832 * 833 * @og.rev 4.1.1.0 (2008/02/04) 新規追加 834 * @og.rev 4.1.2.0 (2008/03/12) 文字列のまま、渡すように変更 835 * 836 * @param itemLabelVisible データの値の表示のさせ方(true,false,last) 837 */ 838 public void setItemLabelVisible( final String itemLabelVisible ) { 839 String flag = StringUtil.nval( getRequestParameter( itemLabelVisible ),"false" ); 840 chDataset.setItemLabelVisible( flag ); 841 } 842 843 /** 844 * 【TAG】データの値(itemText)の表示に、桁区切り文字を使用するかどうか[true/false]を指定します(初期値:true[使用する])。 845 * 846 * @og.tag 847 * itemLabelVisible=true 時に、表示されるデータ値ラベルで、 848 * NumberFormat していますが、3桁区切り文字(123,456,789.0) の 849 * 区切り記号を表示するかどうかを指定します。 850 * true を指定すると、表示します。false では、表示しません。 851 * 初期値は、true(使用する)です。 852 * 853 * @og.rev 4.1.2.0 (2008/03/12) 新規追加 854 * 855 * @param used データの桁区切り文字の使用有無 856 */ 857 public void setUseItemLabelSep( final String used ) { 858 boolean useItemLabelSep = StringUtil.nval( getRequestParameter( used ),true ); 859 chDataset.setUseItemLabelSep( useItemLabelSep ); 860 } 861 862 /** 863 * 【TAG】縦軸の表示領域INSET値(double)を指定します。 864 * 865 * @og.tag 866 * 縦軸文字表示領域(NumberAxis)の幅の追加値を設定します。 867 * これは、通常の表示領域の左側にスペースを挿入します。 868 * あくまで、追加する値なので、文字の長さは含まれません。 869 * 何も指定しない場合は、設定しません。 870 * 871 * @og.rev 4.0.3.0 (2008/01/07) 新規追加 872 * 873 * @param inset Value(縦軸)の表示領域INSET値 874 */ 875 public void setValueInset( final String inset ) { 876 String valueInset = StringUtil.nval( getRequestParameter( inset ),null ); 877 chDataset.setValueInset( valueInset ); 878 } 879 880 /** 881 * 【TAG】BOXチャートのバー幅(double)を指定します。 882 * 883 * @og.tag 884 * BOXチャートのバー幅(double)を指定します。 885 * 設定されるのは、org.jfree.chart.renderer.category.BarRenderer を 886 * 使用した描画のみです。 887 * 棒グラフのバー幅指定は、直接、CategoryItemRendererState に設定しています。 888 * 通常は、barMaxWidth(0.0~1.0)とbarItemMargin(0.0~1.0)を用いて比率で指定します。 889 * 何も指定しない場合は、設定しません。 890 * 891 * @og.rev 4.0.3.0 (2008/01/07) 新規追加 892 * 893 * @param width BOXチャートのバー幅(double) 894 */ 895 public void setBarWidth( final String width ) { 896 String barWidth = StringUtil.nval( getRequestParameter( width ),null ); 897 chDataset.setBarWidth( barWidth ); 898 } 899 900 /** 901 * 【TAG】BOXチャートのバー幅の最大値(0.0~1.0)を指定します。 902 * 903 * @og.tag 904 * BOXチャートのバー幅の比率の最大値を指定します。 905 * 表示領域を1として小数点以下の数値で棒の幅を設定します。 906 * 設定した幅に無理がある時は適当なサイズに調整されます。 907 * (小さくしたときには棒が線のようになる) 908 * 設定されるのは、org.jfree.chart.renderer.category.BarRenderer を 909 * 使用した描画のみです。 910 * 何も指定しない場合は、設定しません。 911 * 912 * @og.rev 4.0.2.0 (2007/12/20) 新規追加 913 * 914 * @param barWidth BOXチャートのバー幅の最大値(0.0~1.0) 915 */ 916 public void setBarMaxWidth( final String barWidth ) { 917 String maxBarWidth = StringUtil.nval( getRequestParameter( barWidth ),null ); 918 chDataset.setBarMaxWidth( maxBarWidth ); 919 } 920 921 /** 922 * 【TAG】BOXチャートのバーアイテムのマージン(0.0~1.0)を指定します。 923 * 924 * @og.tag 925 * BOXチャートのバーアイテムのマージンの比率を指定します。 926 * 棒の間を表示領域を1として小数点以下の数値で幅を設定します。 927 * 無理がある時は適当なサイズに調整されます。 928 * barMaxWidth より優先されます。 929 * 設定されるのは、org.jfree.chart.renderer.category.BarRenderer を 930 * 使用した描画のみです。 931 * 何も指定しない場合は、設定しません。 932 * 933 * @og.rev 4.0.2.0 (2007/12/20) 新規追加 934 * 935 * @param margin BOXチャートのバーアイテムのマージン(0.0~1.0) 936 */ 937 public void setBarItemMargin( final String margin ) { 938 String itemMargin = StringUtil.nval( getRequestParameter( margin ),null ); 939 chDataset.setBarItemMargin( itemMargin ); 940 } 941 942 /** 943 * 【TAG】表示下限値(これ以下のデータは未表示)の値(double)を指定します。 944 * 945 * @og.tag 946 * HybsLine でのみ使用可能です。 947 * この設定値以下のデータは、存在しない扱いとします。 948 * Lineを引くとき、このデータと、存在しているデータ間にラインは引かれません。 949 * 何も指定しない場合は、設定しません。 950 * 951 * @og.rev 4.0.3.0 (2008/01/07) 新規追加 952 * 953 * @param limit 表示下限値(これ以下のデータは未表示) 954 */ 955 public void setVisibleLimit( final String limit ) { 956 String visibleLimit = StringUtil.nval( getRequestParameter( limit ),null ); 957 chDataset.setVisibleLimit( visibleLimit ); 958 } 959 960 /** 961 * 【TAG】グラフの書き出し位置の調整比率を指定します。 962 * 963 * @og.tag 964 * HybsStackedBar でのみ使用可能です。 965 * グラフを描画する場合の、書き出し位置を少しずらします。 966 * これは、グラフの幅に対して、比率で指定します。 967 * 0.0(初期値)の場合は、初期描画位置である、CategoryAnchor.Middle と 968 * 同じ箇所から、書き出されます。 969 * 1.0 の場合、中心から、グラフ幅の半分が加算され、END位置に寄ります。 970 * 同様に、-1.0 の場合は、グラフ幅の半分が減算され、START 位置になります。 971 * つまり、中心から、グラフ幅の半分単位で、前方/後方にずらす事が出来ます。 972 * 書き出し位置 = 中心(Middle) + (domainMargin)*幅/2 973 * 初期値は、0.0(真ん中:MIDDLE)です。 974 * 975 * @og.rev 4.1.1.0 (2008/02/14) 新規追加 976 * 977 * @param margin double グラフの書き出し位置の調整比率 978 */ 979 public void setDomainMargin( final String margin ) { 980 String domMgn = StringUtil.nval( getRequestParameter( margin ),null ); 981 if( domMgn != null ) { 982 double domainMargin = Double.parseDouble( domMgn ); 983 chDataset.setDomainMargin( domainMargin ) ; // double margin 984 } 985 } 986 987 /** 988 * 【TAG】時刻を表す場合の表現の仕方[E1/E2/E3/H1/H2/H3]を指定します(初期値:null)。 989 * 990 * @og.tag 991 * HybsNumberAxis にオーバーライドする 時間を表示する DecimalFormat の内部クラスを利用するに当たり、 992 * 時刻の表示方法を指定します。 993 * 外部から与える数字は、連続している必要があるため、10進数です。 994 * たとえば、1700 → 17:00 , 2150 → 21:30 という感じです。 995 * 2400 を超えると日付違いになります。 996 * 997 * 英語表記(:)と日本語表記(時)の区別と、24時間を超える場合の表示方法によって、6種類のパターンが存在します。 998 * E1:そのまま、24:00 となり、加算されていく。 999 * E2:そのまま、0:00 に戻る。(日付は無視) 1000 * E3:そのまま、1 00:00 と日付が付与される。 1001 * H1:そのまま、24時00分 となり、加算されていく。 1002 * H2:そのまま、00時00分 に戻る。(日付は無視) 1003 * H3:そのまま、1日 00時00分 と日付が付与される。 1004 * 初期値は、使用しない(-1)です。 1005 * 1006 * @og.rev 5.5.2.1 (2012/05/07) 新規追加 1007 * 1008 * @param type 時刻の表示方法(E1,E2,E3,H1,H2,H3) 1009 */ 1010 public void setTimeFormatType( final String type ) { 1011 String timeFormatType = StringUtil.nval( getRequestParameter( type ),null ); 1012 chDataset.setTimeFormatType( timeFormatType ); 1013 } 1014 1015 /** 1016 * 【TAG】ラベルの表示向きを縦にするかどうか[false/true]を指定します(初期値:false[横書き])。 1017 * 1018 * @og.tag 1019 * ChartCreate の rotationLabel は、角度を指定できましたが、NumberAxis では、 1020 * 縦にするかどうかの指定しかできません。 1021 * ここでは、true を指定するとラベルは、縦書きになります。 1022 * 初期値は、false(横書き)です。 1023 * 1024 * @og.rev 5.5.2.1 (2012/05/07) 新規追加 1025 * 1026 * @param useVLavels ラベルの表示向き [false:横書き/true:縦書き] 1027 */ 1028 public void setUseVerticalLabels( final String useVLavels ) { 1029 boolean useVerticalLabels = StringUtil.nval( getRequestParameter( useVLavels ),false ); 1030 chDataset.setUseVerticalLabels( useVerticalLabels ); 1031 } 1032 1033 /** 1034 * シリアライズ用のカスタムシリアライズ書き込みメソッド 1035 * 1036 * @og.rev 4.0.0.0 (2006/09/31) 新規追加 1037 * @serialData 一部のオブジェクト(ChartDataset)は、シリアライズされません。 1038 * 1039 * @param strm ObjectOutputStreamオブジェクト 1040 * @throws IOException シリアライズに関する入出力エラーが発生した場合 1041 */ 1042 private void writeObject( final ObjectOutputStream strm ) throws IOException { 1043 strm.defaultWriteObject(); 1044 } 1045 1046 /** 1047 * シリアライズ用のカスタムシリアライズ読み込みメソッド 1048 * 1049 * ここでは、transient 宣言された内部変数の内、初期化が必要なフィールドのみ設定します。 1050 * 1051 * @og.rev 4.0.0.0 (2006/09/31) 新規追加 1052 * @serialData 一部のオブジェクト(ChartDataset)は、読み込まれません。 1053 * 1054 * @param strm ObjectInputStreamオブジェクト 1055 * @see #release2() 1056 * @throws IOException シリアライズに関する入出力エラーが発生した場合 1057 * @throws ClassNotFoundException クラスを見つけることができなかった場合 1058 */ 1059 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 1060 strm.defaultReadObject(); 1061 chDataset = new ChartDataset(); 1062 } 1063 1064 /** 1065 * このオブジェクトの文字列表現を返します。 1066 * 基本的にデバッグ目的に使用します。 1067 * 1068 * @return このクラスの文字列表現 1069 */ 1070 @Override 1071 public String toString() { 1072 StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 1073 1074 rtn.append( "[" ).append( this.getClass().getName() ).append( "]" ).append( HybsSystem.CR ); 1075 rtn.append( "dbid [" ).append( dbid ).append( "]" ).append( HybsSystem.CR ); 1076 rtn.append( "sql [" ).append( sql ).append( "]" ).append( HybsSystem.CR ); 1077 rtn.append( "dataset [" ).append( chDataset ).append( "]" ).append( HybsSystem.CR ); 1078 1079 return rtn.toString(); 1080 } 1081}