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