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 static org.opengion.fukurou.util.StringUtil.nval ;
019 import org.opengion.hayabusa.common.HybsSystem;
020 import org.opengion.hayabusa.common.HybsSystemException;
021 import org.opengion.hayabusa.io.ChartCreate;
022 import org.opengion.hayabusa.io.ChartDataset;
023 import org.opengion.hayabusa.io.HybsURLTagFragmentGenerator;
024
025 import java.io.File;
026 import java.io.IOException;
027 import java.io.ObjectOutputStream;
028 import java.io.ObjectInputStream;
029 import java.util.List;
030 import java.util.ArrayList;
031 import java.util.Map ;
032 import java.util.HashMap ;
033
034 import org.jfree.chart.JFreeChart;
035 import org.jfree.chart.ChartUtilities;
036
037 import org.jfree.chart.ChartRenderingInfo;
038 import org.jfree.chart.entity.StandardEntityCollection;
039 import org.jfree.chart.imagemap.ImageMapUtilities;
040 import org.jfree.chart.imagemap.StandardToolTipTagFragmentGenerator;
041 import org.jfree.chart.imagemap.ToolTipTagFragmentGenerator;
042 import org.jfree.chart.imagemap.URLTagFragmentGenerator;
043
044 /**
045 * BODYéƒ¨ã«æŒ?®šã?SQLã®æ¤œç´¢çµæžœã‚’ãƒãƒ£ãƒ¼ãƒ?å†??棒ã?ç·?ã§è¡¨ç¤ºã™ã‚‹ã‚¿ã‚°ã§ã™ã?
046 *
047 * ãƒãƒ£ãƒ¼ãƒˆåŒ–ã«ã¯ã€JFreeChart (http://www.jfree.org/jfreechart/) を使用ã—ã¦ã?¾ã™ã?
048 * ãƒãƒ£ãƒ¼ãƒˆã?種類ã?ã€chartDataset ã‚¿ã‚°ã§æŒ?®šã—ã¾ã™ã?ã“れã¯ã€è¤?•°ã®ç•°ãªã‚‹ãƒãƒ£ãƒ¼ãƒˆã‚’
049 * åˆæ?表示ã™ã‚‹æ©Ÿè?ãŒã?JFreeChart ã«ã‚る為ã§ã™ã?ãŸã ã—ã?å°‚é–€çš?«ã¯ã€CategoryDataset ã®ã¿
050 * ã?¾ã¯ã€åˆæˆãŒå¯èƒ½ã§ã™ã?
051 * 処ç??実行ã«ã‚ãŸã‚Šã?ã‚ャãƒ?‚·ãƒ¥ãŒæœ‰åй(useCache="true")ã§ã‚れã°ã€ã‚ャãƒ?‚·ãƒ¥ãƒ??ã‚¿ã‚?
052 * 使用ã—ã¾ã™ã?ã‚ャãƒ?‚·ãƒ¥ã¯ã€masterKey 属æ?ã§æŒ?®šã•れãŸã‚ーワード毎ã«ã€JFreeChart
053 * オブジェクトをã‚ャãƒ?‚·ãƒ¥ã—ã¾ã™ã?ã¾ãŸã?seriesPikup é•ã„ã®å ´åˆã?ã€å?検索ã›ãšã«ã€?
054 * ã‚ャãƒ?‚·ãƒ¥ãŒä½¿ç”¨ã§ãã¾ã™ã?ã•らã«ã€seriesPikup ãŒåŒã˜å?å?masterKey ã‚‚åŒã?ã¯ã€?
055 * ã™ã§ã«ç”»åƒãƒ•ァイルãŒä½œæ?済ã¿ãªã®ã§ã€ç”»åƒãƒ•ァイルã®ã¿ã‚’è¿”ã—ã¾ã™ã?
056 *
057 * å?±žæ?ã¯ã€{@XXXX} 変数ãŒä½¿ç”¨ã§ãã¾ã™ã?
058 * ã“れã¯ã€ServletRequest ã‹ã‚‰ã€XXXX ã‚’ã‚ーã«å€¤ã‚’å–りå?ã?ã“ã?変数ã«å‰²ã‚Šå½“ã¦ã¾ã™ã?
059 * ã¤ã¾ã‚Šã?ã“ã?XXXXã‚’ã‚ーã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆã™ã‚Œã?ã€ã“ã®å¤‰æ•°ã«å€¤ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
060 *
061 * @og.formSample
062 * â—å½¢å¼ï¼?lt;og:chartCreate title="…" … />
063 * â—body?šã‚ã‚?EVAL_BODY_BUFFERED:BODYを評価ã—ã?{@XXXX} ã‚’è§£æžã—ã¾ã?
064 *
065 * â—Tag定義??
066 * <og:chartCreate
067 * title ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?タイトルをセãƒ?ƒˆã—ã¾ã?
068 * width ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?横å¹?‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:200)
069 * height ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?縦å¹?‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:200)
070 * domainLabel ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ドメインラベルを指定ã—ã¾ã?
071 * showLegend ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?凡例ã?表示å¯å¦[true/false]ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])
072 * rectangleEdge ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?表示ç®?‰€ã‚’ã?[TOP/BOTTOM/RIGHT/LEFT]ã§æŒ?®šã—ã¾ã?åˆæœŸå€¤:BOTTOM)
073 * plotOrientation ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?プãƒãƒ?ƒˆ(Plot)表示方å‘ã‚’ã€[VERTICAL(or V),HORIZONTAL(or H)]ã§æŒ?®šã—ã¾ã?
074 * chartBackColor ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?背景色を指定ã—ã¾ã?
075 * plotBackColor ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?æç”»é ˜åŸŸã®è‰²ã‚’指定ã—ã¾ã?
076 * rotationLabel ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ã‚«ãƒ?‚´ãƒªãƒ¼ãƒ©ãƒ™ãƒ«ã®æ–¹å‘ã‚’æŒ?®šã—ã¾ã™[1:180度 ã€?:90度 ã€?:60度 ã€?:45度 ã€?:30度 ?¥?¥?¥ ](åˆæœŸå€¤:3:60度)
077 * useVerticalLabels ã€TAG】横軸ラベルã®è¡¨ç¤ºå‘ãを縦ã«ã™ã‚‹ã‹ã©ã?‹[false/true]を指定ã—ã¾ã?åˆæœŸå€¤:false)
078 * domainMarker ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?横軸ã®å€¤(ドメイン)ã«åˆè?ã™ã‚‹ä½ç½®ã«ãƒžã?カーラインをè¨å®šã—ã¾ã?
079 * useDomainLabel ã€TAG】横軸ラベルã®ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)
080 * useMarkerLabel ã€TAG】ã?ーカーラインã«ã€ãã®è¨å®šå?を表示ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)
081 * useCache ã€TAG】JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
082 * masterKey ã€TAG】ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžã‚¹ã‚¿ã‚ーを指定ã—ã¾ã?
083 * seriesPikup ã€TAG】è¤?•°ã‚·ãƒªãƒ¼ã‚ºã®ãƒ”ックアãƒ??を行ã†å ´åˆã?シリーズ番å·ã‚’指定ã—ã¾ã?
084 * imageMapUrl ã€TAG】クリãƒ?‚«ãƒ–ル・マップ用URLを指定ã—ã¾ã?
085 * imageMapTarget ã€TAG】クリãƒ?‚«ãƒ–ル・マップ用TARGETを指定ã—ã¾ã?
086 * categoryMargin ã€TAG】カãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)を指定ã—ã¾ã?
087 * lowerMargin ã€TAG】下方マã?ジン(0.0??.0)を指定ã—ã¾ã?
088 * upperMargin ã€TAG】上方マã?ジン(0.0??.0)を指定ã—ã¾ã?
089 * useDomainLine ã€TAG】横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?を指定ã—ã¾ã?åˆæœŸå€¤:false)
090 * domainLineColor ã€TAG】横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色を指定ã—ã¾ã?
091 * categorySkip ã€TAG】横軸ラベルをスã‚ãƒ??ã™ã‚‹é–“隔を指定ã—ã¾ã?
092 * categoryCutNo ã€TAGã€‘æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイクを指定ã—ã¾ã?
093 * categoryAnchor ã€TAG】横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®(START,MIDDLE,END)を指定ã—ã¾ã?
094 * useRangeLine ã€TAG】縦軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(æ°´å¹³ç·?を指定ã—ã¾ã?åˆæœŸå€¤:true)
095 * useToolTip ã€TAG】ツールãƒãƒƒãƒ—スã®ä½¿ç”¨å¯å¦[true:利用ã™ã‚‹/false:利用ã—ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:false)
096 * rangeLineColor ã€TAG】縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色を指定ã—ã¾ã?
097 * rangeSkip ã€TAG】縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·?æ°´å¹³ç·?をスã‚ãƒ??ã™ã‚‹é–“隔を指定ã—ã¾ã?
098 * dateAxisFormat ã€TAG】Time,XYTime Polt関係ã?時間軸を表ã™å?åˆã?フォーマットをæŒ?®šã—ã¾ã?åˆæœŸå€¤:MM/dd)
099 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
100 * > ... Body ...
101 * </og:chartCreate>
102 *
103 * â—使用ä¾?
104 * <og:chartCreate
105 * title = "JFreeChart Test" ãƒãƒ£ãƒ¼ãƒˆã‚¿ã‚¤ãƒˆãƒ«
106 * domainLabel = "ドメインラベル" 横軸ラベル
107 * width = "200" ãƒãƒ£ãƒ¼ãƒˆè¡¨ç¤ºå¹?
108 * height = "200" ãƒãƒ£ãƒ¼ãƒˆè¡¨ç¤ºé«˜ã•
109 * showLegend = "[true/false]" 凡例ã?表示å¯å¦[true/false]
110 * rectangleEdge = "[TOP|BOTTOM|RIGHT|LEFT]" 凡例ã?表示ç®?‰€
111 * plotOrientation = "[VERTICAL|HORIZONTAL]" ãƒãƒ£ãƒ¼ãƒˆã?軸表示方å?
112 * chartBackColor = "WHITE" 背景色
113 * plotBackColor = "LIGHT_GRAY" æç”»é ˜åŸŸè‰²
114 * rotationLabel = "3" 横軸ラベルã®å‚¾ã?
115 * useVerticalLabels = "false" 横軸ラベルã®å‘ã(true:縦/false:横)
116 * domainMarker = "KING" 横軸ã®ãƒžã?カーライン(縦æ£?
117 * useMarkerLabel = "[true/false]" マã?ã‚«ãƒ¼ãƒ©ã‚¤ãƒ³ã®æ–?—有無
118 * useDomainLabel = "[true/false]" 横軸ラベルã®è¡¨ç¤ºæœ‰ç„¡
119 * categorySkip = "3" 横軸ラベルをスã‚ãƒ??ã™ã‚‹é–“éš”
120 * categoryCutNo = "6" æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイク
121 * categoryAnchor = "[START|MIDDLE|END]" 横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®
122 * useDomainLine = "[false/true]" 横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?
123 * domainLineColor = "LIGHT_GRAY" 横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
124 * useRangeLine = "[true/false]" 縦軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(æ°´å¹³ç·?
125 * rangeLineColor = "LIGHT_GRAY" 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
126 * rangeSkip = "-5" 縦軸ã®ã‚°ãƒªãƒ?ƒ‰(æ°´å¹³ç·?をスã‚ãƒ??ã™ã‚‹é–“éš”
127 * useCache = "[false|true]" ã‚ャãƒ?‚·ãƒ¥ã®æœ‰ç„¡
128 * masterKey = "{@XXXX}" ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžã‚¹ã‚¿ã‚ー
129 * seriesPikup = "2" ピックアãƒ??ã™ã‚‹ã‚·ãƒªãƒ¼ã‚ºNo
130 * imageMapUrl = "link.jsp,BLOCK" クリãƒ?‚«ãƒ–ル・マップ用URL
131 * imageMapTarget = "CONTENTS" クリãƒ?‚«ãƒ–ル・マップ用TARGET
132 * categoryMargin = "[0.0??.0]" ã‚«ãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)
133 * lowerMargin = "[0.0??.0]" 下方マã?ジン(0.0??.0)
134 * upperMargin = "[0.0??.0]" 上方マã?ジン(0.0??.0)
135 * >
136 * <og:chartDataset
137 * chartType = "{@chartType}"
138 * valueLabel = "{@valueLabel}"
139 * lowerBound = "{@lowerBound}"
140 * upperBound = "{@upperBound}"
141 * markValues = "{@markValues}"
142 * markColors = "{@markColors}"
143 * useGradient = "{@useGradient}"
144 * shapesVisible = "{@shapesVisible}"
145 * useDottedLine = "{@useDottedLine}"
146 * seriesColors = "{@seriesColors}"
147 * valueLabelsVisible = "[true|false]"
148 * valueMarksVisible = "[true|false]"
149 * >
150 * {@SQL}
151 * </og:chartDataset>
152 * </og:chartCreate>
153 *
154 * è¤?•°ã®ã‚°ãƒ©ãƒ•ã‚’é‡ã?åˆã‚ã›ã‚‹å ´åˆã?ã€chartDataset ã‚¿ã‚°ã‚?chartCreate ã®BODY部ã«
155 * è¤?•°è¨˜è¿°ã—ã¾ã™ã?
156 * <og:chartCreate
157 * title = "{@title}"
158 * domainLabel = "{@domainLabel}"
159 * width = "{@width}"
160 * height = "{@height}" >
161 * <og:chartDataset
162 * chartType = "{@chartType1}"
163 * valueLabel = "{@valueLabel1}"
164 * lowerBound = "{@lowerBound1}"
165 * upperBound = "{@upperBound1}"
166 * markValues = "{@markValues1}"
167 * markColors = "{@markColors1}"
168 * >
169 * {@SQL1}
170 * </og:chartDataset>
171 * <og:chartDataset
172 * chartType = "{@chartType2}"
173 * valueLabel = "{@valueLabel2}"
174 * lowerBound = "{@lowerBound2}"
175 * upperBound = "{@upperBound2}"
176 * markValues = "{@markValues2}"
177 * markColors = "{@markColors2}"
178 * >
179 * {@SQL2}
180 * </og:chartDataset>
181 * </og:chartCreate>
182 *
183 * rectangleEdge属æ? ã¯ã€å?例ã?表示ç®?‰€ã‚’示ã™ã?RectangleEdge クラスã®å€¤ã‚’è¨å®šã—ã¾ã™ã?
184 * [rectangleEdge属æ?]
185 * TOP 上å?
186 * BOTTOM 下å?
187 * RIGHT å³å´
188 * LEFT å·¦å´
189 *
190 * plotOrientation属æ? ã¯ã€ãƒãƒ£ãƒ¼ãƒˆã?軸表示方å‘ã‚’è¨å®šã—ã¾ã™ã?
191 * [renderer属æ?]
192 * VERTICAL 縦方å?
193 * HORIZONTAL 横方å?
194 *
195 * @og.group ç”»é¢è¡¨ç¤º
196 *
197 * @version 0.9.0 2007/06/19
198 * @author Nakamura
199 * @since JDK1.4,
200 */
201 public class ChartCreateTag extends CommonTagSupport {
202 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */
203 private static final String VERSION = "5.6.4.3 (2013/05/24)" ;
204
205 private static final long serialVersionUID = 564320130524L ; // 5.6.4.3 (2013/05/24)
206
207 private static final String FILE_URL = HybsSystem.sys( "CHART_TEMP_DIR" );
208
209 private List<ChartDataset> chartDataset = null;
210
211 private static final String CHART_CACHE_KEY = HybsSystem.JF_CHART_CACHE_KEY;
212
213 private String title = null;
214 private int width = 200;
215 private int height = 200;
216 private String domainLabel = null;
217 private boolean showLegend = true;
218 private String rectangleEdge = "BOTTOM";
219 private String plotOrientation = "VERTICAL";
220 private String chartBackColor = null; // 背景色ã®è¨å®?
221 private String plotBackColor = null; // æç”»é ˜åŸŸã®è¨å®?
222 private int rotationLabel = 3; // 横軸ラベルã®å‚¾ã?1:180度 ã€?:90度 ã€?:60度 ã€?:45度 ã€?:30度 ?¥?¥?¥ )
223 private boolean useVerticalLabels = false; // 5.6.4.3 (2013/05/24) 横軸ラベルã®è¡¨ç¤ºå‘ã(横書ã?false/縦書ã?true)
224 private String domainMarker = null; // 横軸ã®ãƒžã?カーライン
225 private boolean useDomainLabel = true; // 横軸ラベルã®è¡¨ç¤ºæœ‰ç„¡
226 private boolean useMarkerLabel = true; // マã?カーライン時ã?æ–?—有無
227 private boolean useCache = false; // JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‹ã©ã?‹
228 private int seriesPikup = -1; // ピックアãƒ??ã™ã‚‹ã‚·ãƒªãƒ¼ã‚ºç•ªå·
229 private String masterKey = null; // ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžã‚¹ã‚¿ã‚ー
230 private transient Map<String,ChartCache> map = null; // ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžãƒƒãƒ?
231 private transient ChartCache cache = null; // ã‚ャãƒ?‚·ãƒ¥
232 private String imgTag = null; // ã‚ャãƒ?‚·ãƒ¥ç”¨ç”»åƒãƒ•ァイル
233 private String imageMapUrl = null; // クリãƒ?‚«ãƒ–ル・マップ用URL
234 private String imageMapTarget = null; // クリãƒ?‚«ãƒ–ル・マップ用TARGET
235 // 3.5.4.7 (2004/02/06) 実行時間測定用ã®DIVè¦ç´?‚’出力ã—ã¾ã™ã?
236 private long dyStart = 0;
237
238 // 4.0.2.0 (2007/12/20)
239 private String categoryMargin = null; // ã‚«ãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)
240 private String lowerMargin = null; // 下方マã?ジン(0.0??.0)
241 private String upperMargin = null; // 上方マã?ジン(0.0??.0)
242 // private String[] shapeColors = null; // 4.0.3.0 (2008/01/07) ãƒ??タ毎ã«Shapeã‚’å?り替ãˆã‚‹æ™‚ã?色æŒ?®?
243
244 private boolean useDomainLine = false; // 4.0.3.0 (2008/01/07) 横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?
245 private String domainLineColor = null; // 4.0.3.0 (2008/01/07) 横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
246 private boolean useRangeLine = true; // 4.0.3.0 (2008/01/07) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(æ°´å¹³ç·?
247 private String rangeLineColor = null; // 4.0.3.0 (2008/01/07) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
248 private int categorySkip = 1; // 4.0.3.0 (2008/01/07) 横軸ラベルをスã‚ãƒ??ã™ã‚‹é–“éš”
249 private int categoryCutNo = -1; // 4.1.1.0 (2008/02/04) æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイク
250 private String categoryAnchor = null; // 4.1.1.0 (2008/02/14) 横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®(START,MIDDLE,END)
251 // private double lineOffset = 0.0; // 4.1.1.0 (2008/02/04) DomainLineã®æ›¸ãå?ã—ä½ç½®
252 private int rangeSkip = 1; // 4.1.1.0 (2008/02/04) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ã‚’スã‚ãƒ??ã™ã‚‹é–“éš”
253 private boolean useToolTip = false; // 4.3.1.0 (2008/08/09) ãƒ??ルãƒãƒƒãƒ—スを利用ã™ã‚‹ã?
254
255 private String dateAxisFormat = "MM/dd"; // 5.6.1.0 (2013/02/01) Time,XYTime Polt関係ã?時間軸を表ã™å?åˆã?フォーマッãƒ?
256
257 /**
258 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
259 *
260 * @return 後続å?ç??æŒ?¤º
261 */
262 @SuppressWarnings(value={"unchecked"})
263 @Override
264 public int doStartTag() {
265 dyStart = System.currentTimeMillis();
266
267 if( useCache ) {
268 // ã‚ャãƒ?‚·ãƒ¥ã‹ã‚‰ã€å–りå?ã™ã?
269 map = (Map<String,ChartCache>)getSessionAttribute( CHART_CACHE_KEY );
270 if( map != null ) {
271 cache = map.get( masterKey );
272 if( cache != null && cache.isAvailable() ) { // ã‚ャãƒ?‚·ãƒ¥æœ‰åй
273 String subKey = String.valueOf( seriesPikup );
274 // ã‚ャãƒ?‚·ãƒ¥ã‹ã‚‰ã€ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’å–りå?ã™ã?å˜åœ¨ã—ãªã‘れã°ã€null
275 imgTag = cache.getFileAddress( subKey );
276 return(SKIP_BODY); // ã‚ャãƒ?‚·ãƒ¥ä½¿ç”¨
277 }
278 }
279 }
280
281 return EVAL_BODY_BUFFERED;
282 }
283
284 /**
285 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
286 *
287 * @og.rev 5.2.1.0 (2010/10/01) debugPrint() メソãƒ?ƒ‰ã®å‡¦ç?¡ä»¶è¦‹ç›´ã?
288 *
289 * @return 後続å?ç??æŒ?¤º
290 */
291 @Override
292 public int doEndTag() {
293 // if( isDebug() ) { debugPrint(); }
294 debugPrint(); // 5.2.1.0 (2010/10/01) debugPrint() メソãƒ?ƒ‰è‡ªä½“ã«ã€isDebug() ãŒçµ?¿è¾¼ã¾ã‚Œã¦ã?‚‹ã€?
295
296 long queryEnd = System.currentTimeMillis();
297 jspPrint( "<div id=\"queryTime\" value=\"" + (queryEnd-dyStart) + "\"></div>" ); // 3.5.6.3 (2004/07/12)
298
299 // ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ãŒã‚れã?ã€ãれを返ã™ã€?
300 if( imgTag != null ) {
301 jspPrint( imgTag );
302 }
303 else {
304 JFreeChart chart ;
305 if( cache != null ) {
306 // ã‚ャãƒ?‚·ãƒ¥ãŒã‚れã?ã€ãƒãƒ£ãƒ¼ãƒˆã‚’å–り出ã™ã?
307 chart = cache.getJFreeChart() ;
308 // ãƒãƒ£ãƒ¼ãƒˆã?ã€å¤‰æ›´(modifying)ã®ã¿è¡Œã†ã€?
309 chart = ChartCreate.modifying( chart,seriesPikup );
310 }
311 else {
312 // ãƒãƒ£ãƒ¼ãƒˆãŒãªã??ã¾ãŸã?ã€ç„¡åйã«ãªã£ã¦ã?‚‹å ´åˆã?ã€æ–°è¦ä½œæ?ã™ã‚‹ã€?
313 ChartCreate chartCreate = create();
314 chart = chartCreate.getChart();
315 }
316
317 File file = getTempFile( FILE_URL );
318 try {
319 // クリãƒ?‚«ãƒ–ル・マッãƒ?
320 String fname = file.getName();
321 String filename = getContextPath() + "/" + FILE_URL + fname;
322 String keyword = fname.substring( 0, fname.length() - 4 ); // ".png" åˆ?‚’削除
323 ToolTipTagFragmentGenerator toolTipGen = null;
324 URLTagFragmentGenerator urlGen = null;
325 // 4.3.1.0 (2008/08/09) ãƒ??ルãƒãƒƒãƒ—スã®ãƒžãƒƒãƒ—æƒ…å ±å–å¾?
326 if( useToolTip ) {
327 toolTipGen = new StandardToolTipTagFragmentGenerator();
328 }
329 if( imageMapUrl != null ) {
330 urlGen = new HybsURLTagFragmentGenerator( imageMapTarget );
331 }
332 if( ( imageMapUrl != null ) || ( useToolTip ) ) {
333 ChartRenderingInfo objCri = new ChartRenderingInfo( new StandardEntityCollection() );
334 ChartUtilities.saveChartAsPNG( file, chart, width, height, objCri );
335 imgTag = ImageMapUtilities.getImageMap( keyword, objCri, toolTipGen, urlGen ) + makeTag2( filename, keyword );
336 }
337 else {
338 ChartUtilities.saveChartAsPNG( file, chart, width, height );
339 imgTag = makeTag2( filename, null );
340 }
341 }
342 catch(IOException ex) {
343 String errMsg = "ファイル I/O ãŒå®Ÿè¡Œã§ãã¾ã›ã‚“ã§ã—ãŸã€?
344 + HybsSystem.CR + file + HybsSystem.CR
345 + ex.getMessage();
346 throw new HybsSystemException( errMsg,ex );
347 }
348
349 jspPrint( imgTag );
350
351 // ã‚ャãƒ?‚·ãƒ¥æ™‚ã«ã‚»ãƒ¼ãƒ–ã™ã‚‹ã?
352 if( useCache ) {
353 if( cache == null ) {
354 cache = new ChartCache( masterKey );
355 cache.setJFreeChart( chart );
356 }
357 String subKey = String.valueOf( seriesPikup );
358 cache.putFileAddress( subKey,imgTag );
359 if( map == null ) {
360 map = new HashMap<String,ChartCache>();
361 }
362 map.put( masterKey,cache );
363 setSessionAttribute( CHART_CACHE_KEY,map );
364 }
365 else {
366 // map = (Map<String,ChartCache>)getSessionAttribute( CHART_CACHE_KEY );
367 // if( map != null ) { map.clear() ; }
368 removeSessionAttribute( CHART_CACHE_KEY );
369 }
370 }
371
372 // 3.5.4.7 (2004/02/06)
373 long dyEnd = System.currentTimeMillis();
374 jspPrint( "<div id=\"viewTime\" value=\"" + (dyEnd-dyStart) + "\"></div>" ); // 3.5.6.3 (2004/07/12)
375 return EVAL_PAGE;
376 }
377
378 /**
379 * タグリブオブジェクトをリリースã—ã¾ã™ã?
380 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã?
381 *
382 * @og.rev 4.0.1.0 (2007/12/13) categoryMarginã€lowerMarginã€upperMargin 属æ?を追åŠ?
383 * @og.rev 4.1.1.0 (2008/02/04) categoryCutNo , categoryAnchor , rangeSkip 属æ?を追åŠ?
384 * @og.rev 5.6.1.0 (2013/02/01) dateAxisFormat 属æ?を追åŠ?
385 * @og.rev 5.6.4.3 (2013/05/24) useVerticalLabels 属æ?を追åŠ?
386 */
387 @Override
388 protected void release2() {
389 super.release2();
390 chartDataset = null;
391 title = null;
392 width = 200;
393 height = 200;
394 domainLabel = null;
395 showLegend = true;
396 rectangleEdge = "BOTTOM";
397 plotOrientation = "VERTICAL";
398 chartBackColor = null; // 背景色ã®è¨å®?
399 plotBackColor = null; // æç”»é ˜åŸŸã®è¨å®?
400 rotationLabel = 3; // 横軸ラベルã®å‚¾ã?1:180度 ã€?:90度 ã€?:60度 ã€?:45度 ã€?:30度 ?¥?¥?¥ )
401 useVerticalLabels = false; // 5.6.4.3 (2013/05/24) 横軸ラベルã®è¡¨ç¤ºå‘ã(横書ã?false/縦書ã?true)
402 domainMarker = null; // 横軸ã®ãƒžã?カーライン
403 useDomainLabel = true; // 横軸ラベルã®è¡¨ç¤ºæœ‰ç„¡
404 useMarkerLabel = true; // マã?カーライン時ã?æ–?—有無
405 useCache = false; // ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‹ã©ã?‹
406 seriesPikup = -1; // ピックアãƒ??ã™ã‚‹ã‚·ãƒªãƒ¼ã‚ºç•ªå·
407 masterKey = null; // ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžã‚¹ã‚¿ã‚ー
408 map = null; // ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžãƒƒãƒ?
409 cache = null; // ã‚ャãƒ?‚·ãƒ¥
410 imgTag = null; // ã‚ャãƒ?‚·ãƒ¥ç”¨ç”»åƒãƒ•ァイル
411 imageMapUrl = null; // クリãƒ?‚«ãƒ–ル・マッãƒ?
412 imageMapTarget = null; // クリãƒ?‚«ãƒ–ル・マップ用TARGET
413 categoryMargin = null; // 4.0.2.0 (2007/12/20) ã‚«ãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)
414 lowerMargin = null; // 4.0.2.0 (2007/12/20) 下方マã?ジン(0.0??.0)
415 upperMargin = null; // 4.0.2.0 (2007/12/20) 上方マã?ジン(0.0??.0)
416 // shapeColors = null; // 4.0.3.0 (2008/01/07) ãƒ??タ毎ã«Shapeã‚’å?り替ãˆã‚‹æ™‚ã?色æŒ?®?
417 useDomainLine = false; // 4.0.3.0 (2008/01/07) 横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?
418 domainLineColor = null; // 4.0.3.0 (2008/01/07) 横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
419 useRangeLine = true; // 4.0.3.0 (2008/01/07) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(æ°´å¹³ç·?
420 rangeLineColor = null; // 4.0.3.0 (2008/01/07) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
421 categorySkip = 1; // 4.0.3.0 (2008/01/07) 横軸ラベルをスã‚ãƒ??ã™ã‚‹é–“éš”
422 categoryCutNo = -1; // 4.1.1.0 (2008/02/04) æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイク
423 categoryAnchor = null; // 4.1.1.0 (2008/02/14) 横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®(START,MIDDLE,END)
424 // lineOffset = 0.0; // 4.1.1.0 (2008/02/04) DomainLineã®æ›¸ãå?ã—ä½ç½®
425 rangeSkip = 1; // 4.1.1.0 (2008/02/04) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ã‚’スã‚ãƒ??ã™ã‚‹é–“éš”
426 dateAxisFormat = "MM/dd"; // 5.6.1.0 (2013/02/01) Time,XYTime Polt関係ã?時間軸を表ã™å?åˆã?フォーマッãƒ?
427 }
428
429 /**
430 * ãƒãƒ£ãƒ¼ãƒˆã‚’表示ã™ã‚‹ãŸã‚ã®ã‚¿ã‚°ã‚’作æ?ã—ã¾ã™ã?
431 *
432 * @param filename ç”»åƒãƒ•ァイル
433 * @param keyword クリãƒ?‚«ãƒ–ル・マップã?対応ã¥ã‘る為ã®ã‚ーワーãƒ?
434 *
435 * @return ã‚¿ã‚°æ–?—å?
436 */
437 private String makeTag2( final String filename,final String keyword ) {
438 StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
439
440 rtn.append( "<img" );
441 if( keyword != null ) {
442 rtn.append( " usemap=\"#").append( keyword ).append( "\"");
443 }
444 rtn.append( " width=\"" ).append( width ).append( "px\"");
445 rtn.append( " height=\"" ).append( height ).append( "px\"");
446 rtn.append( " src=\"" ).append( filename ).append( "\" /> ");
447
448 return rtn.toString();
449 }
450
451 /**
452 * ChartCreate ã®ã‚ªãƒ–ジェクトを生æ?ã—ã¾ã™ã?
453 *
454 * @og.rev 4.1.1.0 (2008/02/04) categoryCutNo , categoryAnchor 属æ?を追åŠ?
455 * @og.rev 5.6.1.0 (2013/02/01) dateAxisFormat 属æ?を追åŠ?
456 * @og.rev 5.6.1.0 (2013/02/01) useVerticalLabels 属æ?を追åŠ?
457 *
458 * @return ChartCreateオブジェク�
459 */
460 private ChartCreate create() {
461 ChartCreate tempCreate = new ChartCreate();
462
463 tempCreate.setTitle( title );
464 tempCreate.setDomainLabel( domainLabel );
465 tempCreate.setShowLegend( showLegend );
466 tempCreate.setRectangleEdge( rectangleEdge );
467 tempCreate.setPlotOrientation( plotOrientation );
468 tempCreate.setChartBackColor( chartBackColor ); // 背景色ã®è¨å®?
469 tempCreate.setPlotBackColor( plotBackColor ); // æç”»é ˜åŸŸã®è¨å®?
470 tempCreate.setRotationLabel( rotationLabel ); // 横軸ラベルã®å‚¾ã?
471 tempCreate.setUseVerticalLabels( useVerticalLabels ); // 5.6.4.3 (2013/05/24)) ラベルã®è¡¨ç¤ºå‘ã
472 tempCreate.setDomainMarker( domainMarker ); // ドメインマã?カー
473 tempCreate.setUseDomainLabel( useDomainLabel ); // 横軸ラベルã®è¡¨ç¤ºæœ‰ç„¡
474 tempCreate.setUseMarkerLabel( useMarkerLabel ); // マã?カーã®è¨å®šå?表示
475 tempCreate.setSeriesPikup( seriesPikup ); // ピックアãƒ??ã™ã‚‹ã‚·ãƒªãƒ¼ã‚ºç•ªå·
476 tempCreate.setImageMapUrl( imageMapUrl ); // クリãƒ?‚«ãƒ–ル・マップ用URL
477 tempCreate.setCategoryMargin( categoryMargin ); // 4.0.2.0 (2007/12/20) ã‚«ãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)
478 tempCreate.setLowerMargin( lowerMargin ); // 4.0.2.0 (2007/12/20) 下方マã?ジン(0.0??.0)
479 tempCreate.setUpperMargin( upperMargin ); // 4.0.2.0 (2007/12/20) 上方マã?ジン(0.0??.0)
480 // tempCreate.setShapeColors( shapeColors ); // 4.0.2.0 (2007/12/20) 上方マã?ジン(0.0??.0)
481 tempCreate.setUseDomainLine( useDomainLine ); // 4.0.3.0 (2008/01/07) 横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?
482 tempCreate.setDomainLineColor( domainLineColor ); // 4.0.3.0 (2008/01/07) 横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
483 tempCreate.setUseRangeLine( useRangeLine ); // 4.0.3.0 (2008/01/07) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(æ°´å¹³ç·?
484 tempCreate.setRangeLineColor( rangeLineColor ); // 4.0.3.0 (2008/01/07) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
485 tempCreate.setCategorySkip( categorySkip ); // 4.0.3.0 (2008/01/07) 横軸ラベルをスã‚ãƒ??ã™ã‚‹é–“éš”
486 tempCreate.setCategoryCutNo( categoryCutNo ); // 4.1.1.0 (2008/02/04) æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイク
487 tempCreate.setCategoryAnchor( categoryAnchor ); // 4.1.1.0 (2008/02/04) æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイク
488 // tempCreate.setDomainLineOffset( lineOffset ); // 4.1.1.0 (2008/02/14) 横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®(START,MIDDLE,END)
489 tempCreate.setRangeSkip( rangeSkip ); // 4.1.1.0 (2008/02/04) 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·?æ°´å¹³ç·?をスã‚ãƒ??ã™ã‚‹é–“éš”
490 tempCreate.setUseToolTip( useToolTip ); // 4.3.1.0 (2008/08/09) ãƒ??ルãƒãƒƒãƒ—スã®åˆ©ç”¨
491 tempCreate.setDateAxisFormat( dateAxisFormat ); // 5.6.1.0 (2013/02/01) Time,XYTime Polt関係ã?時間軸を表ã™å?åˆã?フォーマット指å®?
492
493 if( isDebug() ) { tempCreate.setDebug( true ); } // 4.0.2.0 (2007/12/20)
494
495 tempCreate.setDatasetList( chartDataset );
496
497 return tempCreate ;
498 }
499
500 /**
501 * ãƒ?ƒ³ãƒãƒ©ãƒªFile ã‚’å–å¾—ã—ã¾ã™ã?
502 *
503 * ã“ã“ã§ã¯ã€ä¸?ˆ¬çš?ªãƒ•ァイル出力をè€??ã—㟠ãƒ?ƒ³ãƒãƒ©ãƒªFile を作æ?ã—ã¾ã™ã?
504 *
505 * @param fileURL ファイルを作æ?ã™ã‚‹ãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒª
506 *
507 * @return ãƒ?ƒ³ãƒãƒ©ãƒªFile
508 */
509 private File getTempFile( final String fileURL ) {
510 final File file ;
511
512 String directory = HybsSystem.url2dir( fileURL );
513 File dir = new File( directory );
514 if( ! dir.exists() && ! dir.mkdirs() ) {
515 String errMsg = "ãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä½œæ?ã«å¤±æ•—ã—ã¾ã—ãŸã€?" + directory + "]";
516 throw new HybsSystemException( errMsg );
517 }
518
519 try {
520 file = File.createTempFile( "JFree",".png",dir );
521 file.deleteOnExit();
522 }
523 catch( IOException ex ) {
524 String errMsg = "ファイルåãŒã‚ªãƒ¼ãƒ—ン出æ¥ã¾ã›ã‚“ã§ã—ãŸã€?
525 + HybsSystem.CR
526 + "Url:" + fileURL ;
527 throw new HybsSystemException( errMsg,ex );
528 }
529
530 return file ;
531 }
532
533 /**
534 * ã€TAG】コマンド[NEW/RENEW]ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:NEW)ã€?
535 *
536 * @og.tag
537 * コマンドã?,HTMLã‹ã‚‰(get/post)æŒ?®šã•れã¾ã™ã?ã§,CMD_xxx ã§è¨å®šã•れる
538 * フィールド定数値ã®ã?¥ã‚Œã‹ã‚’ã?æŒ?®šã§ãã¾ã™ã?
539 * command ãŒã?NEW ã¾ãŸã?ã€RENEW ã®å ´åˆã?ã¿ã€æ–°è¦ã«ã‚ªãƒ–ジェクトã?構築を行ã„ã¾ã™ã?
540 *
541 * @param cmd コマンãƒ?public static final 宣è¨?•れã¦ã?‚‹æ–?—å?)
542 * @see <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.ChartCreateTag.CMD_NEW">コマンド定数</a>
543 */
544 // public void setCommand( String cmd ) {
545 // String cmd2 = getRequestParameter( cmd );
546 // if( cmd2 != null && cmd2.length() != 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
547 // }
548
549 /**
550 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?タイトルをセãƒ?ƒˆã—ã¾ã™ã?
551 *
552 * @og.tag ãƒãƒ£ãƒ¼ãƒˆã?タイトルをセãƒ?ƒˆã—ã¾ã™ã?
553 *
554 * @param ttl タイトル
555 */
556 public void setTitle( final String ttl ) {
557 title = nval( getRequestParameter( ttl ),title );
558 }
559
560 /**
561 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?横å¹?‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:200)ã€?
562 *
563 * @og.tag
564 * タイトルã‚??例もå«ã‚“ã 大ãã•ã§ã™ã?ãƒ??ã‚¿é ˜åŸŸã¯è‡ªå‹•計算ã•れã¾ã™ã?
565 *
566 * @og.rev 4.0.1.0 (2007/12/13) 引数㫠"px" を使用ã§ãるよã†ã«ã™ã‚‹ã€?
567 *
568 * @param wd 横�
569 */
570 public void setWidth( final String wd ) {
571 // 引数ã«ã€?px" ãŒä½¿ç”¨ã•れã¦ã?Ÿå ´åˆã?ã€ãれをå–り除ãã?
572 if( wd != null && wd.length() >= 3 && wd.endsWith( "px" ) ) {
573 width = Integer.valueOf( wd.substring( 0,wd.length()-2 ) );
574 }
575 else {
576 width = nval( getRequestParameter( wd ),width );
577 }
578 }
579
580 /**
581 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?縦å¹?‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:200)ã€?
582 *
583 * @og.tag
584 * タイトルã‚??例もå«ã‚“ã 大ãã•ã§ã™ã?ãƒ??ã‚¿é ˜åŸŸã¯è‡ªå‹•計算ã•れã¾ã™ã?
585 *
586 * @og.rev 4.0.1.0 (2007/12/13) 引数㫠"px" を使用ã§ãるよã†ã«ã™ã‚‹ã€?
587 *
588 * @param ht 縦�
589 */
590 public void setHeight( final String ht ) {
591 // 引数ã«ã€?px" ãŒä½¿ç”¨ã•れã¦ã?Ÿå ´åˆã?ã€ãれをå–り除ãã?
592 if( ht != null && ht.length() >= 3 && ht.endsWith( "px" ) ) {
593 height = Integer.valueOf( ht.substring( 0,ht.length()-2 ) );
594 }
595 else {
596 height = nval( getRequestParameter( ht ),height );
597 }
598 }
599
600 /**
601 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ドメインラベルを指定ã—ã¾ã™ã?
602 *
603 * @og.tag
604 * ãƒãƒ£ãƒ¼ãƒˆã?ドメインラベルを指定ã—ã¾ã™ã?
605 *
606 * @param dmLbl ãƒãƒ£ãƒ¼ãƒˆã?ドメインラベル
607 */
608 public void setDomainLabel( final String dmLbl ) {
609 domainLabel = nval( getRequestParameter( dmLbl ),domainLabel );
610 }
611
612 /**
613 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?凡例ã?表示å¯å¦[true/false]ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:true[表示ã™ã‚‹])ã€?
614 *
615 * @og.tag
616 * åˆæœŸå€¤ã¯ã€è¡¨ç¤ºã™ã‚‹(true) ã§ã™ã?
617 *
618 * @param swLegend 凡例ã?表示å¯å¦ [true:表示ã™ã‚‹/ãれ以å¤?ã—ãªã„]
619 */
620 public void setShowLegend( final String swLegend ) {
621 showLegend = nval( getRequestParameter( swLegend ),showLegend );
622 }
623
624 /**
625 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?表示ç®?‰€ã‚’ã?[TOP/BOTTOM/RIGHT/LEFT]ã§æŒ?®šã—ã¾ã?åˆæœŸå€¤:BOTTOM)ã€?
626 *
627 * @og.tag
628 * 表示ç®?‰€ã¯ã€org.jfree.ui.RectangleEdge クラスã®è¨å®šå?を使用ã—ã¾ã™ã?
629 * æŒ?®šã§ãã‚‹ã®ã¯ã€TOPã€BOTTOMã€RIGHTã€LEFT ã§ã€å„æ–?—ã?é ä¸?–‡å—ã§
630 * 判定ã—ã¦ã¾ã™ã?ã¤ã¾ã‚Šã?T,B,R,L ã§ã€åˆ¤å®šã‚’行ã„ã€ãれ以外ã?エラーã«ãªã‚Šã¾ã™ã?
631 * åˆæœŸå€¤ã¯ã€BOTTOM ã§ã™ã?
632 *
633 * @param rectEdge 凡例表示方å???(TOPã€BOTTOMã€RIGHTã€LEFT)
634 */
635 public void setRectangleEdge( final String rectEdge ) {
636 rectangleEdge = nval( getRequestParameter( rectEdge ),rectangleEdge );
637 }
638
639 /**
640 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?プãƒãƒ?ƒˆ(Plot)表示方å‘ã‚’ã€[VERTICAL(or V),HORIZONTAL(or H)]ã§æŒ?®šã—ã¾ã?åˆæœŸå€¤:VERTICAL)ã€?
641 *
642 * @og.tag
643 * 軸表示方å‘ã?ã€org.jfree.chart.plot.PlotOrientation クラスã®è¨å®šå?を使用ã—ã¾ã™ã?
644 * æŒ?®šã§ãã‚‹ã®ã¯ã€VERTICALã€HORIZONTALã§ã€å„æ–?—ã?é ä¸?–‡å—ã§
645 * 判定ã—ã¦ã¾ã™ã?ã¤ã¾ã‚Šã?V,H ã§ã€åˆ¤å®šã‚’行ã„ã€ãれ以外ã?エラーã«ãªã‚Šã¾ã™ã?
646 * åˆæœŸå€¤ã¯ã€VERTICAL ã§ã™ã?
647 *
648 * @param orientation プãƒãƒ?ƒˆè¡¨ç¤ºæ–¹å???VERTICAL(or V) , HORIZONTAL(or H)
649 */
650 public void setPlotOrientation( final String orientation ) {
651 plotOrientation = nval( getRequestParameter( orientation ),plotOrientation );
652 }
653
654 /**
655 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?背景色を指定ã—ã¾ã™ã?
656 *
657 * @og.tag
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 * @param chBackClr ãƒãƒ£ãƒ¼ãƒˆã?背景色
664 * @see java.awt.Color#BLACK
665 */
666 public void setChartBackColor( final String chBackClr ) {
667 chartBackColor = nval( getRequestParameter( chBackClr ),chartBackColor );
668 }
669
670 /**
671 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?æç”»é ˜åŸŸã®è‰²ã‚’指定ã—ã¾ã™ã?
672 *
673 * @og.tag
674 * æŒ?®šæ–‡å—å?ã¯ã€java.awt.Color クラスã®static フィールドåã§æŒ?®šã—ã¾ã™ã?
675 * BLACK , BLUE , CYAN , DARK_GRAY , GRAY , GREEN , LIGHT_GRAY ,
676 * MAGENTA , ORANGE , PINK , RED , WHITE , YELLOW , (PURPLE) ãŒæŒ‡å®šã§ãã¾ã™ã?
677 * ã¾ãŸã?#XXXXXXå½¢å¼ã?16bitRGB表è¨?ã§ã‚‚指定å¯èƒ½ã§ã™ã?
678 *
679 * @param plBackClr ãƒãƒ£ãƒ¼ãƒˆã?æç”»é ˜åŸŸè‰²
680 * @see java.awt.Color#BLACK
681 */
682 public void setPlotBackColor( final String plBackClr ) {
683 plotBackColor = nval( getRequestParameter( plBackClr ),plotBackColor );
684 }
685
686 /**
687 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?ã‚«ãƒ?‚´ãƒªãƒ¼ãƒ©ãƒ™ãƒ«ã®æ–¹å‘ã‚’æŒ?®šã—ã¾ã?3:60度)ã€?
688 *
689 * @og.tag
690 * æ–¹å‘ã?ã€ä¸Šæ–¹å‘ã«å¯¾ã—ã¦ã€?PI / æŒ?¤ºæ•°) ã§æ±‚ã¾ã‚‹å?ã«è¨å®šã—ã¾ã™ã?
691 * ã“ã?æŒ?¤ºæ•°ã«ç›¸å½“ã™ã‚‹å?ã‚’è¨å®šã—ã¾ã™ã?
692 * 1:180度 ã€?:90度 ã€?:60度 ã€?:45度 ã€?:30度 ?¥?¥?¥
693 * マイナスã¯ã€ã—ãŸæ–¹å‘ã«å›žè»¢ã•ã›ã¾ã™ã?
694 * 0 を指定ã—ãŸå?åˆã?ã€ä½•ã‚‚è¨å®šã—ã¾ã›ã‚“ã€?
695 * åˆæœŸå€¤ã¯ã€?:60度ã§ã™ã?
696 *
697 * @param rttLabel ã‚«ãƒ?‚´ãƒªãƒ¼ãƒ©ãƒ™ãƒ«ã®æ–¹å?
698 */
699 public void setRotationLabel( final String rttLabel ) {
700 rotationLabel = nval( getRequestParameter( rttLabel ),rotationLabel );
701 }
702
703 /**
704 * ã€TAG】ラベルã®è¡¨ç¤ºå‘ãを縦ã«ã™ã‚‹ã‹ã©ã?‹[false/true]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
705 *
706 * @og.tag
707 * ChartCreate ã® rotationLabel ã¯ã€è§’度を指定ã§ãã¾ã—ãŸãŒã?NumberAxis,DateAxis ã§ã¯ã€?
708 * 縦ã«ã™ã‚‹ã‹ã©ã?‹ã®æŒ?®šã—ã‹ã§ãã¾ã›ã‚“ã€?
709 * ã“ã“ã§ã¯ã€true を指定ã™ã‚‹ã¨ãƒ©ãƒ™ãƒ«ã¯ã€ç¸¦æ›¸ãã«ãªã‚Šã¾ã™ã?
710 * åˆæœŸå€¤ã¯ã€false(横書ã?ã§ã™ã?
711 *
712 * @og.rev 5.6.4.3 (2013/05/24)) æ–°è¦è¿½åŠ?
713 *
714 * @param useVLavels ラベルã®è¡¨ç¤ºå‘ã [false:横書ã?true:縦書ã]
715 */
716 public void setUseVerticalLabels( final String useVLavels ) {
717 useVerticalLabels = nval( getRequestParameter( useVLavels ),useVerticalLabels );
718 }
719
720 /**
721 * ã€TAG】ãƒãƒ£ãƒ¼ãƒˆã?横軸ã®å€¤(ドメイン)ã«åˆè?ã™ã‚‹ä½ç½®ã«ãƒžã?カーラインをè¨å®šã—ã¾ã™ã?
722 *
723 * @og.tag
724 * ã“ã?属æ?ã«ã¯ã€ã?ーカーラインをè¨å®šã™ã‚‹å?を記述ã—ã¾ã™ã?
725 *
726 * @param marker ドメインã®ãƒžã?カーライン
727 */
728 public void setDomainMarker( final String marker ) {
729 domainMarker = nval( getRequestParameter( marker ),domainMarker );
730 }
731
732 /**
733 * ã€TAG】横軸ラベルã®ãƒ©ãƒ™ãƒ«ã‚’表示ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€?
734 *
735 * @og.tag
736 * ドメイン(横軸)ãŒã?多数å˜åœ¨ã™ã‚‹å ´åˆã?ドメインラベルãŒè¦‹ãˆã«ãããªã‚Šã¾ã™ã?
737 * ãã?よã†ãªã‚±ãƒ¼ã‚¹ã§ã€æ¨ªè»¸ã®ãƒ©ãƒ™ãƒ«ãã?ã‚‚ã?を表示ã—ãªã??åˆã«ã€false ã‚?
738 * è¨å®šã—ã¾ã™ã?
739 * åˆæœŸå€¤ã¯ã€è¡¨ç¤ºã™ã‚‹(true)ã§ã™ã?
740 *
741 * @param flag 横軸ラベルã®è¡¨ç¤ºæœ‰ç„¡ [true:表示ã™ã‚‹/false:表示ã—ãªã„]
742 */
743 public void setUseDomainLabel( final String flag ) {
744 useDomainLabel = nval( getRequestParameter( flag ),useDomainLabel );
745 }
746
747 /**
748 * ã€TAG】ã?ーカーラインã«ã€ãã®è¨å®šå?を表示ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€?
749 *
750 * @og.tag
751 * ドメイン(横軸)ãŒã?多数å˜åœ¨ã™ã‚‹å ´åˆã?ドメインラベルãŒè¦‹ãˆãªã??åˆãŒã‚りã¾ã™ã?
752 * ãã?よã†ãªã‚±ãƒ¼ã‚¹ã§ã€è¦‹ãŸã??ã«ãƒžã?カーラインをè¨å®šã—ã€ãã®æ¨ªã«ã€ãƒ‰ãƒ¡ã‚¤ãƒ³ãƒ©ãƒ™ãƒ«
753 * を表示ã™ã‚‹äº‹ã§ã€ãƒ”ãƒ?‚¯ã‚¢ãƒ??ã—ã¦ã?‚‹è»¸ã®å€¤ã‚’容易ã«çŸ¥ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
754 * åˆæœŸå€¤ã¯ã€è¡¨ç¤ºã™ã‚‹(true)ã§ã™ã?
755 *
756 * @param flag マã?カーラインã®è¨å®šå?表示 true:表示ã™ã‚‹/false:表示ã—ãªã„]
757 */
758 public void setUseMarkerLabel( final String flag ) {
759 useMarkerLabel = nval( getRequestParameter( flag ),useMarkerLabel );
760 }
761
762 /**
763 * ã€TAG】JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
764 *
765 * @og.tag
766 * useCache="true" ã‚’è¨å®šã™ã‚‹ã¨ã€session ã«ã€HybsSystem.JF_CHART_CACHE_KEY
767 * ã‚ーã§ã€ã‚ャãƒ?‚·ãƒ¥ã•れã¾ã™ã?
768 * ãã?ã¨ãã«ã€domainMarker 属æ?ã¨ã€seriesPikup 属æ?ã?‘ã€å?è¨å®šå¯èƒ½ã«ãªã£ã¦ã?¾ã™ã?
769 *
770 * åˆæœŸå€¤ã¯ã€ã‚ャãƒ?‚·ãƒ¥ã—ãªã?false)ã§ã™ã?
771 *
772 * @param flag JFreeChartã‚’ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‹ã©ã?‹ true:ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹/false:ã‚ャãƒ?‚·ãƒ¥ã—ãªã„]
773 * @see #setDomainMarker( String )
774 * @see #setSeriesPikup( String )
775 */
776 public void setUseCache( final String flag ) {
777 useCache = nval( getRequestParameter( flag ),useCache );
778 }
779
780 /**
781 * ã€TAG】è¤?•°ã‚·ãƒªãƒ¼ã‚ºã®ãƒ”ックアãƒ??を行ã†å ´åˆã?シリーズ番å·ã‚’指定ã—ã¾ã™ã?
782 *
783 * @og.tag
784 * è¤?•°ã‚·ãƒªãƒ¼ã‚º(検索時ã«è¤?•°é ?›®ã‚’åŒæ™‚ã«æ¤œç´¢ã™ã‚‹å ´å?ã§ã¯ã€ãƒãƒ£ãƒ¼ãƒˆä¸Šã«
785 * è¤?•°ã®ã‚°ãƒ©ãƒ•ãŒè¡¨ç¤ºã•れã¾ã™ãŒã€ãã®ä¸ã®ä¸?¤ã‚’ピãƒ?‚¯ã‚¢ãƒ??ã™ã‚‹å ´åˆã«ã€?
786 * シリーズ番å·ã‚’指定ã—ã¾ã™ã?
787 * シリーズ番å·ã¯ã€? ã‹ã‚‰å§‹ã¾ã‚‹æ•°å—ã§ã™ã?
788 * ã“ã“ã§ã¯ã€ãƒ”ãƒ?‚¯ã‚¢ãƒ??ã•れãŸã‚·ãƒªãƒ¼ã‚ºã¯ã€èµ¤è‰²ã§è¡¨ç¤ºã•れã¾ã™ã?
789 * ãれ以外ã?ã€ã‚°ãƒ¬ãƒ¼è‰²ã§ã®è¡¨ç¤ºã«ãªã‚Šã¾ã™ã?
790 * seriesPikup を使用ã™ã‚‹ã¨ã€chartDataset ã‚¿ã‚°ã® useValueVisible 属æ?ã?
791 * 影響をå—ã‘ã¾ã™ã?ã“ã?属æ?ã¯ã€ãƒ‡ãƒ¼ã‚¿ã®å€¤(itemText)を表示ã—ã¾ã™ãŒã€?
792 * seriesPikup ãŒæŒ‡å®šã•れãŸå ´åˆã?ã€ãã®ã‚·ãƒªãƒ¼ã‚ºã®ã¿ã«ãƒ©ãƒ™ãƒ«è¡¨ç¤ºã—ã¾ã™ã?
793 *
794 * @param pikup シリーズ番å·
795 */
796 public void setSeriesPikup( final String pikup ) {
797 seriesPikup = nval( getRequestParameter( pikup ),seriesPikup );
798 }
799
800 /**
801 * ã€TAG】ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžã‚¹ã‚¿ã‚ーを指定ã—ã¾ã™ã?
802 *
803 * @og.tag
804 * useCache="true" ã«è¨å®šã—ãŸå?åˆã?ã‚ャãƒ?‚·ãƒ¥ã‚’使用ã§ãã‚‹ã‹ç¢ºèªã—ã¾ã™ã?
805 * ã“ã?å ´åˆã?seriesPikup é•ã„ã®å ´åˆã?ã€JFreeChart オブジェクトãã®ã‚‚ã?ã‚?
806 * ã‚ャãƒ?‚·ãƒ¥ã—ã¦ãŠã‘ã°ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ã?スアクセスãªã—ã§ã€ã‚°ãƒ©ãƒ•ã‚’å†æç”»
807 * ã•ã›ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
808 * ã“ã?ã€åŒä¸?JFreeChart を指定ã™ã‚‹ãŸã‚ã?ã‚ーをã?ã“ã“ã§è¨å®šã—ã¾ã™ã?
809 * ã“ã?ã‚ーã®å€‹æ•°ã?‘ã€JFreeChart ãŒã‚ャãƒ?‚·ãƒ¥ã•れã¾ã™ã?
810 * ãªãŠã?ã‚ャãƒ?‚·ãƒ¥ä¿æŒæ™‚é–“ã¯ã€?¼•å?固定ã§ã™ã?
811 *
812 * @param mkey ã‚ャãƒ?‚·ãƒ¥ç”¨ãƒžã‚¹ã‚¿ã‚ー
813 */
814 public void setMasterKey( final String mkey ) {
815 masterKey = nval( getRequestParameter( mkey ),masterKey );
816 }
817
818 /**
819 * ã€TAG】クリãƒ?‚«ãƒ–ル・マップ用URLを指定ã—ã¾ã™ã?
820 *
821 * @og.tag
822 * ç”»åƒã«ã€ã‚¯ãƒªãƒ?‚«ãƒ–ル・マップを作æ?ã™ã‚‹å ´åˆã?ã€URL を指定ã—ã¾ã™ã?
823 * ã“れã¯ã€ç”»åƒä¸Šã«ã‚¨ãƒªã‚¢æŒ?®šã§ãƒªãƒ³ã‚¯å¼•数を作æ?ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
824 * URL 自身ã¯ã€? 付ãã§å›ºå®šå?ã®å¼•æ•°ã‚’é?çµã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
825 * クリãƒ?‚¯ã—ãŸã‚¨ãƒªã‚¢ã®ã‚«ãƒ?‚´ãƒªã‚?‚¤ãƒ³ãƒ?ƒƒã‚¯ã‚¹ã®å€¤(引数)ã¯ã€è?å‹•çš„ã«
826 * è¨å®šã•れã¾ã™ã?(æŒ?®šã—ãªã??åˆã?ãƒãƒ£ãƒ¼ãƒˆã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã?
827 * <pre>
828 * ・Pie ?šcategoryã€pieIndex
829 * ・XY ?šseriesã€item
830 * ・Category ?šseriesã€category
831 * </pre>
832 * ã“ã?引数㮠URL ã®å称を変更ã—ãŸã??åˆã?ã€URL ã«ç¶šã‘ã¦ã€ã‚«ãƒ³ãƒ?,) ã§ã€?
833 * å称を記述ã—ã¦ãã ã•ã„ã€?
834 * 例:link.jsp,BLOCK
835 *
836 * @param imap クリãƒ?‚«ãƒ–ル・マップ用URL
837 * @see #setImageMapTarget( String )
838 */
839 public void setImageMapUrl( final String imap ) {
840 imageMapUrl = nval( getRequestParameter( imap ),imageMapUrl );
841 }
842
843 /**
844 * ã€TAG】クリãƒ?‚«ãƒ–ル・マップ用TARGETを指定ã—ã¾ã™ã?
845 *
846 * @og.tag
847 * ç”»åƒã«ã€ã‚¯ãƒªãƒ?‚«ãƒ–ル・マップを作æ?ã™ã‚‹å ´åˆã?ã€TARGET を指定ã—ã¾ã™ã?
848 * ã“れã¯ã€ç”»åƒä¸Šã«ã‚¨ãƒªã‚¢æŒ?®šã§ãƒªãƒ³ã‚¯ã‚’作æ?ã™ã‚‹å ´åˆã?フレーãƒ?Œ‡å®šã§ã™ã?
849 *
850 * @param target クリãƒ?‚«ãƒ–ル・マップ用TARGET
851 * @see #setImageMapUrl( String )
852 */
853 public void setImageMapTarget( final String target ) {
854 imageMapTarget = nval( getRequestParameter( target ),imageMapTarget );
855 }
856
857 /**
858 * ã€TAG】カãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)を指定ã—ã¾ã™ã?
859 *
860 * @og.tag
861 * ã‚«ãƒ?‚´ãƒª(グラフã?横軸ã«ç›¸å½?ã®è¡¨ç¤ºé–“éš”(マã?ジン)ã®æ¯”率を指定ã—ã¾ã™ã?
862 * ã“ã?比率ã¯ã€?¼?ã§ã¯ãªãã?æ•°å?double)ã§ã®è¨å®šã«ãªã‚Šã¾ã™ã?
863 * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ•ォルトã§è‡ªå‹•調整ã•れã¾ã™ã?
864 *
865 * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
866 *
867 * @param margin ã‚«ãƒ?‚´ãƒªãƒžã?ジン(0.0??.0)
868 */
869 public void setCategoryMargin( final String margin ) {
870 categoryMargin = nval( getRequestParameter( margin ),categoryMargin );
871 }
872
873 /**
874 * ã€TAG】下方マã?ジン(0.0??.0)を指定ã—ã¾ã™ã?
875 *
876 * @og.tag
877 * ã‚«ãƒ?‚´ãƒª(グラフã?横軸ã«ç›¸å½?ã®ä¸‹æ–¹å´(å·¦å´)ã®ãƒžã?ã‚¸ãƒ³ã®æ¯”率を指定ã—ã¾ã™ã?
878 * ã“ã?比率ã¯ã€?¼?ã§ã¯ãªãã?æ•°å?double)ã§ã®è¨å®šã«ãªã‚Šã¾ã™ã?
879 * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ•ォルトã§è‡ªå‹•調整ã•れã¾ã™ã?
880 *
881 * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
882 *
883 * @param margin 下方マã?ジン(0.0??.0)
884 */
885 public void setLowerMargin( final String margin ) {
886 lowerMargin = nval( getRequestParameter( margin ),lowerMargin );
887 }
888
889 /**
890 * ã€TAG】上方マã?ジン(0.0??.0)を指定ã—ã¾ã™ã?
891 *
892 * @og.tag
893 * ã‚«ãƒ?‚´ãƒª(グラフã?横軸ã«ç›¸å½?ã®ä¸Šæ–¹å´(å³å´)ã®ãƒžã?ã‚¸ãƒ³ã®æ¯”率を指定ã—ã¾ã™ã?
894 * ã“ã?比率ã¯ã€?¼?ã§ã¯ãªãã?æ•°å?double)ã§ã®è¨å®šã«ãªã‚Šã¾ã™ã?
895 * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ•ォルトã§è‡ªå‹•調整ã•れã¾ã™ã?
896 *
897 * @og.rev 4.0.2.0 (2007/12/20) æ–°è¦è¿½åŠ?
898 *
899 * @param margin 上方マã?ジン(0.0??.0)
900 */
901 public void setUpperMargin( final String margin ) {
902 upperMargin = nval( getRequestParameter( margin ),upperMargin );
903 }
904
905 /**
906 * ã€TAG】横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
907 *
908 * @og.tag
909 * ドメイン(横軸)ã«å¯¾ã™ã‚‹ã€ã‚°ãƒªãƒ?ƒ‰ãƒ©ã‚¤ãƒ³ã‚’表示ã™ã‚‹ã‹ã©ã?‹æŒ?®šã—ã¾ã™ã?
910 *
911 * 何もæŒ?®šã—ãªã??åˆã?ã€è¡¨ç¤ºã—ã¾ã›ã‚“ã€?false)
912 *
913 * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
914 *
915 * @param useLine 横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?
916 */
917 public void setUseDomainLine( final String useLine ) {
918 useDomainLine = nval( getRequestParameter( useLine ),useDomainLine );
919 }
920
921 /**
922 * ã€TAG】横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色を指定ã—ã¾ã™ã?
923 *
924 * @og.tag
925 * ドメイン(横軸)ã«å¯¾ã™ã‚‹ã€ã‚°ãƒªãƒ?ƒ‰ãƒ©ã‚¤ãƒ³ã®è¡¨ç¤ºè‰²ã‚’指定ã—ã¾ã™ã?
926 * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ•ォルトã§è‡ªå‹•è¨å®šã•れã¾ã™ã?
927 *
928 * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
929 *
930 * @param color 横軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
931 */
932 public void setDomainLineColor( final String color ) {
933 domainLineColor = nval( getRequestParameter( color ),domainLineColor );
934 }
935
936 /**
937 * ã€TAG】横軸ラベルをスã‚ãƒ??ã™ã‚‹é–“隔を指定ã—ã¾ã™ã?
938 *
939 * @og.tag
940 * 横軸ラベル(ã‚«ãƒ?‚´ãƒªãƒ©ãƒ™ãƒ«è¡¨ç¤º)ã™ã‚‹éš›ã«ã€ã‚¹ã‚ãƒ??ã™ã‚‹é–“隔を指定ã—ã¾ã™ã?
941 * "1" (åˆæœŸå€¤)ã§ã¯ã€?¼‘ã¤ã¥ã¤è¡¨ç¤º(ã¤ã¾ã‚Šã?ã™ã¹ã¦è¡¨ç¤ºã™ã‚‹)ã—ã¾ã™ã?
942 * "2" ã¨ã™ã‚‹ã¨ã€?¼‘ã¤ãŠãã«ã€?3" ã¨ã™ã‚‹ã¨ã€?¼’ã¤ãŠãã«è¡¨ç¤ºã—ã¾ã™ã?
943 * åˆæœŸå€¤ã¯ã€?1" (ã™ã¹ã¦è¡¨ç¤º)ã§ã™ã?
944 * ãªãŠã?å…ˆé?ã‹ã‚‰è¡¨ç¤ºã‚’é–‹å§‹ã—ã¾ã™ã?
945 *
946 * 注æ„:ã“れã¨ã¯åˆ¥ã«ã€ãƒ©ãƒ™ãƒ«å…ˆé?ã« "_" を付ã‘ãŸå?åˆã?ã€ãƒ©ãƒ™ãƒ«ã‚’表示ã—ã¾ã›ã‚“ã€?
947 * ã¾ãŸã?categoryCutNo ãŒæŒ‡å®šã•れãŸå ´åˆã?ã€categorySkip ã¯ä½¿ç”¨ã•れã¾ã›ã‚“ã€?
948 *
949 * @param step スã‚ãƒ??ã™ã‚‹é–“éš”
950 * @see #setCategoryCutNo( String )
951 */
952 public void setCategorySkip( final String step ) {
953 categorySkip = nval( getRequestParameter( step ),categorySkip );
954 }
955
956 /**
957 * ã€TAGã€‘æ¨ªè»¸ãƒ©ãƒ™ãƒ«ã®æ–?—ä½ç½®æŒ?®šã?ã‚ーブレイクを指定ã—ã¾ã™ã?
958 *
959 * @og.tag
960 * 横軸ラベル(ã‚«ãƒ?‚´ãƒªãƒ©ãƒ™ãƒ«è¡¨ç¤º)ã™ã‚‹éš›ã«ã€ãƒ©ãƒ™ãƒ«ã®å…ˆé?ã‹ã‚‰ã€ã“ã®æŒ?®šæ–‡å—æ•°ã?‘
961 * ã‚«ãƒ?ƒˆã—ã¦ã€è¡¨ç¤ºã—ã¾ã™ã?
962 * ãã?éš›ã?å‰å›žä½œæ?ã—ãŸã‚«ãƒ?ƒˆãƒ©ãƒ™ãƒ«ã¨ã€åŒä¸?ƒ©ãƒ™ãƒ«ã®å ´åˆã?ã€è¡¨ç¤ºã—ã¾ã›ã‚“ã€?
963 * 例ãˆã°ã€ãƒ‡ãƒ¼ã‚¿ã¯ã€å¹´æœˆæ—¥ã§ã€å¹´ã¨æœˆã?ã¿(å…ˆé??–æ–‡å?を指定ã™ã‚‹ã¨ã€?
964 * æ—¥ã®ãƒ??ã‚¿ã¯ã€ãƒ©ãƒ™ãƒ«ãŒè¡¨ç¤ºã•れã¾ã›ã‚“ã€?
965 * æŒ?®šã•れる数å—ã?ã€?¼‘以上ã?æ•´æ•°ã¨ã—ã¦ãã ã•ã„ã€?
966 * åˆæœŸå€¤ã¯ã€ã™ã¹ã¦è¡¨ç¤ºã§ã™ã?
967 *
968 * 注æ„:ã“れã¨ã¯åˆ¥ã«ã€ãƒ©ãƒ™ãƒ«å…ˆé?ã« "_" を付ã‘ãŸå?åˆã?ã€ãƒ©ãƒ™ãƒ«ã‚’表示ã—ã¾ã›ã‚“ã€?
969 *
970 * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
971 *
972 * @param cutNo ã‚ーブレイクä½ç½®
973 * @see #setCategorySkip( String )
974 */
975 public void setCategoryCutNo( final String cutNo ) {
976 categoryCutNo = nval( getRequestParameter( cutNo ),categoryCutNo );
977 }
978
979 /**
980 * ã€TAG】横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®(START,MIDDLE,END)を指定ã—ã¾ã™ã?
981 *
982 * @og.tag
983 * 横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã‚’ã?グラフã?ã©ã®ä½ç½®ã«è¨˜è¿°ã™ã‚‹ã‹ã‚’æŒ?®šã—ã¾ã™ã?
984 * 具体的ãªå€¤ã¯ã€CategoryAnchor オブジェクトã?値ã«ãªã‚Šã¾ã™ã?
985 * ã“ã“ã§ã¯ã€æ–‡å—å?ã§(START,MIDDLE,END)を指定ã—ã¾ã™ã?(å…ˆé?ä¸?–‡å—ã§åˆ¤å®?
986 * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ•ォルãƒ?MIDDLE)ã§ã™ã?
987 *
988 * @og.rev 4.1.1.0 (2008/02/14) æ–°è¦è¿½åŠ?
989 *
990 * @param anchor 横軸ã®ã‚°ãƒªãƒ?ƒ‰(垂直ç·?ã®æ›¸ãå?ã—ä½ç½®(START,MIDDLE,END)
991 */
992 public void setCategoryAnchor( final String anchor ) {
993 categoryAnchor = nval( getRequestParameter( anchor ),categoryAnchor );
994
995 if( categoryAnchor != null && categoryAnchor.length() > 0 ) {
996 if( ! "START".equals( categoryAnchor ) &&
997 ! "MIDDLE".equals( categoryAnchor ) &&
998 ! "END".equals( categoryAnchor ) ) {
999 String errMsg = "æŒ?®šã?Anchorã¯é©ç”¨ã§ãã¾ã›ã‚“ã€?" + anchor + "]"
1000 + HybsSystem.CR
1001 + "START,MIDDLE,END ã®ä¸ã‹ã‚‰ã€æŒ‡å®šã—ã¦ãã ã•ã„ã€? ;
1002 throw new HybsSystemException( errMsg );
1003 }
1004 }
1005 }
1006
1007 /**
1008 * ã€TAG】DomainLineã®æ›¸ãå?ã—ä½ç½®Offsetを指定ã—ã¾ã™ã?
1009 *
1010 * @og.tag
1011 * 横軸ライン(ã‚«ãƒ?‚´ãƒªãƒ©ã‚¤ãƒ³è¡¨ç¤º)ã™ã‚‹éš›ã«ã€ãƒ©ã‚¤ãƒ³ã®æç”»ä½ç½®ã‚’ã?
1012 * å…ˆé?ã‹ã‚‰ã€ã“ã®æŒ?®šæ•°ã?‘ãšã‚‰ã—ã¾ã™ã?
1013 * プラスã®å ´åˆã?ã€å³ã¸ã€ã?イナスã®å ´åˆã?ã€å·¦ã¸ãšã‚‰ã—ã¾ã™ã?
1014 *
1015 * ã“れã«ã‚ˆã‚Šã€ãƒ©ã‚¤ãƒ³(縦ç·?ã®ä½ç½®ã‚’ã?グラフã?ä¸å¿?‹ã‚‰ã?ãšã‚‰ã™äº‹ãŒ
1016 * å¯èƒ½ã«ãªã‚Šã¾ã™ã?
1017 *
1018 * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
1019 *
1020 * @param domainLineOffset DomainLineã®æ›¸ãå?ã—ä½ç½®Offset
1021 */
1022 // public void setDomainLineOffset( final String domainLineOffset ) {
1023 // String offset = StringUtil.nval( getRequestParameter( domainLineOffset ),null );
1024 // if( offset != null ) {
1025 // lineOffset = Double.parseDouble( offset );
1026 // }
1027 // }
1028
1029 /**
1030 * ã€TAG】縦軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(æ°´å¹³ç·?を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€?
1031 *
1032 * @og.tag
1033 * レンジ(縦軸)ã«å¯¾ã™ã‚‹ã€ã‚°ãƒªãƒ?ƒ‰ãƒ©ã‚¤ãƒ³ã‚’表示ã™ã‚‹ã‹ã©ã?‹æŒ?®šã—ã¾ã™ã?
1034 *
1035 * 何もæŒ?®šã—ãªã??åˆã?ã€è¡¨ç¤ºã—ã¾ã›ã‚“ã€?false)
1036 *
1037 * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
1038 *
1039 * @param useLine 横軸ã®ã‚°ãƒªãƒ?ƒ‰è¡¨ç¤ºæœ‰ç„¡(垂直ç·?
1040 */
1041 public void setUseRangeLine( final String useLine ) {
1042 useRangeLine = nval( getRequestParameter( useLine ),useRangeLine );
1043 }
1044
1045 /**
1046 * ã€TAG】縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色を指定ã—ã¾ã™ã?
1047 *
1048 * @og.tag
1049 * レンジ(縦軸)ã«å¯¾ã™ã‚‹ã€ã‚°ãƒªãƒ?ƒ‰ãƒ©ã‚¤ãƒ³ã®è¡¨ç¤ºè‰²ã‚’指定ã—ã¾ã™ã?
1050 * 何もæŒ?®šã—ãªã??åˆã?ã€ãƒ‡ãƒ•ォルトã§è‡ªå‹•è¨å®šã•れã¾ã™ã?
1051 *
1052 * @og.rev 4.0.3.0 (2008/01/07) æ–°è¦è¿½åŠ?
1053 *
1054 * @param color 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·šã?色
1055 */
1056 public void setRangeLineColor( final String color ) {
1057 rangeLineColor = nval( getRequestParameter( color ),rangeLineColor );
1058 }
1059
1060 /**
1061 * ã€TAG】縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·?æ°´å¹³ç·?をスã‚ãƒ??ã™ã‚‹é–“隔を指定ã—ã¾ã™ã?
1062 *
1063 * @og.tag
1064 * 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·?æ°´å¹³ç·?を表示ã™ã‚‹éš›ã«ã€ã‚¹ã‚ãƒ??ã™ã‚‹é–“隔を指定ã—ã¾ã™ã?
1065 * 通常ã¯ã€ãƒ©ãƒ™ãƒ«ã¨åŒã˜ã?‘ã®ã‚°ãƒªãƒ?ƒ‰ç·šãŒæŽ›ã‹ã‚Œã¾ã™ãŒã€ãƒ©ãƒ™ãƒ«ã‚ˆã‚Šã‚?
1066 * å°‘ãªã?•°ã®ã‚°ãƒªãƒ?ƒ‰ç·?例ãˆã°ã€?¼’ã¤ãŠã)ã‚’å?ã™å?åˆã«ã€å?ã‚’è¨å®šã—ã¾ã™ã?
1067 * "1" (åˆæœŸå€¤)ã§ã¯ã€?¼‘ã¤ã¥ã¤è¡¨ç¤º(ã¤ã¾ã‚Šã?ã™ã¹ã¦è¡¨ç¤ºã™ã‚‹)ã—ã¾ã™ã?
1068 * "2" ã¨ã™ã‚‹ã¨ã€?¼‘ã¤ãŠãã«ã€?3" ã¨ã™ã‚‹ã¨ã€?¼’ã¤ãŠãã«è¡¨ç¤ºã—ã¾ã™ã?
1069 * åˆæœŸå€¤ã¯ã€?1" (ã™ã¹ã¦è¡¨ç¤º)ã§ã™ã?
1070 * ãªãŠã?å…ˆé?ã‹ã‚‰è¡¨ç¤ºã‚’é–‹å§‹ã—ã¾ã™ã?
1071 *
1072 * @og.rev 4.1.1.0 (2008/02/04) æ–°è¦è¿½åŠ?
1073 *
1074 * @param rngSkip 縦軸ã®ã‚°ãƒªãƒ?ƒ‰ç·?æ°´å¹³ç·?をスã‚ãƒ??ã™ã‚‹é–“éš”
1075 */
1076 public void setRangeSkip( final String rngSkip ) {
1077 rangeSkip = nval( getRequestParameter( rngSkip ),rangeSkip );
1078 }
1079
1080 /**
1081 * ã€TAG】ツールãƒãƒƒãƒ—スã®ä½¿ç”¨å¯å¦[true:利用ã™ã‚‹/false:利用ã—ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
1082 *
1083 * @og.tag
1084 * ラベルを利用ã™ã‚‹éš›ã«ã€ãƒ©ãƒ™ãƒ«ã¨å›³é¢ã€?š£ã®ãƒ©ãƒ™ãƒ«åŒå£«ãŒé‡ãªã‚‹ã“ã¨ãŒã‚りã¾ã™ã?
1085 * ã“ã?å ´åˆã?ãƒ??ルãƒãƒƒãƒ—スã®åˆ©ç”¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã?
1086 * åˆæœŸå€¤ã¯'false'ã§ã™ã?
1087 *
1088 * @og.rev 4.3.1.0 (2008/08/09) æ–°è¦è¿½åŠ?
1089 *
1090 * @param toolTip ãƒ??ルãƒãƒƒãƒ—ス [true:利用/false:利用ã—ãªã„]
1091 */
1092 public void setUseToolTip( final String toolTip ) {
1093 useToolTip = nval( getRequestParameter( toolTip ), useToolTip );
1094 }
1095
1096 /**
1097 * ã€TAG】Time,XYTime Polt関係ã?時間軸を表ã™å?åˆã?フォーマットをæŒ?®šã—ã¾ã?åˆæœŸå€¤:MM/dd)ã€?
1098 *
1099 * @og.tag
1100 * TimeSeries 関連ã®ãƒ??タを扱ã??åˆã?æ¨ªè»¸ã®æ—¥ä»˜ãƒ•ォーマットをæŒ?®šã—ã¾ã™ã?
1101 * 日付フォーマットã?ã€java.text.SimpleDateFormat ã§ä½¿ã‚れã‚?yyyy/MM/dd HH:mm:ss 表記ã§ã™ã?
1102 *
1103 * åˆæœŸå€¤ã¯ã€?MM/dd" ã§ã™ã?
1104 *
1105 * @og.rev 5.6.1.0 (2013/02/01) æ–°è¦è¿½åŠ?
1106 * @og.rev 5.6.1.0 (2013/02/01) æ–°è¦è¿½åŠ?
1107 *
1108 * @param dtFormat Time,XYTime Polt関係ã?時間軸を表ã™å?åˆã?フォーマッãƒ?
1109 */
1110 public void setDateAxisFormat( final String dtFormat ) {
1111 dateAxisFormat = nval( getRequestParameter( dtFormat ), dateAxisFormat );
1112 // if( dtFormat != null && dtFormat.length() > 0 ) {
1113 // dateAxisFormat = dtFormat;
1114 // }
1115 }
1116
1117 /**
1118 * BODYè¦ç´?«è¨˜è¿°ã—ãŸã€chartDataset ã‚¿ã‚°ã®å±žæ?è¨å®šã‚¯ãƒ©ã‚¹ã‚’Listã«è¿½åŠ?—ã¾ã™ã?
1119 *
1120 * BODY部ã«è¨˜è¿°ã•れãŸã?chartDataset ã‚¿ã‚°ã®å±žæ?ã¯ã€ãƒãƒ£ãƒ¼ãƒˆã?ãƒ??ã‚¿å–å¾—Queryã‚??
1121 * ãƒãƒ£ãƒ¼ãƒˆã?種類ãªã©ã®æƒ??を管ç?—ã¦ã?¾ã™ã?
1122 * ãƒãƒ£ãƒ¼ãƒˆã?種é¡?Categoryç³»)ã«ã‚ˆã£ã¦ã¯ã€ãƒãƒ£ãƒ¼ãƒˆã‚’åˆæ?ã—ã¦è¡¨ç¤ºã•ã›ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
1123 * ãれらã?è¤?•°ã®ãƒãƒ£ãƒ¼ãƒˆã?æŒ?®šãŒã€chartDataset ã‚¿ã‚° ã§è¡Œã‚れã¾ã™ã?
1124 *
1125 * @param chDataset chartDatasetã‚¿ã‚°ã®å±žæ?è¨å®šã‚¯ãƒ©ã‚¹
1126 */
1127 protected void addChartDataset( final ChartDataset chDataset ) {
1128 if( chartDataset == null ) { chartDataset = new ArrayList<ChartDataset>(); }
1129 chartDataset.add( chDataset );
1130 }
1131
1132 /**
1133 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
1134 *
1135 * @og.rev 4.0.0.0 (2007/11/29) æ–°è¦è¿½åŠ?
1136 * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクãƒ?Map<String,ChartCache>,ChartCache)ã¯ã€ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºã•れã¾ã›ã‚“ã€?
1137 *
1138 * @param strm ObjectOutputStreamオブジェク�
1139 * @throws IOException シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
1140 */
1141 private void writeObject( final ObjectOutputStream strm ) throws IOException {
1142 strm.defaultWriteObject();
1143 }
1144
1145 /**
1146 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
1147 *
1148 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã?
1149 *
1150 * @og.rev 4.0.0.0 (2007/11/29) æ–°è¦è¿½åŠ?
1151 * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクãƒ?Map<String,ChartCache>,ChartCache)ã¯ã€èªã¿è¾¼ã¾ã‚Œã¾ã›ã‚“ã€?
1152 *
1153 * @param strm ObjectInputStreamオブジェク�
1154 * @see #release2()
1155 * @throws IOException シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
1156 * @throws ClassNotFoundException クラスを見ã¤ã‘ã‚‹ã“ã¨ãŒã§ããªã‹ã£ãŸå?å?
1157 */
1158 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
1159 strm.defaultReadObject();
1160 }
1161
1162 /**
1163 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
1164 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
1165 *
1166 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?表ç¾
1167 */
1168 @Override
1169 public String toString() {
1170 StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
1171
1172 rtn.append( "[" ).append( this.getClass().getName() ).append( "]" ).append( HybsSystem.CR );
1173 rtn.append( "title [" ).append( title ).append( "]" ).append( HybsSystem.CR );
1174 rtn.append( "width [" ).append( width ).append( "]" ).append( HybsSystem.CR );
1175 rtn.append( "height [" ).append( height ).append( "]" ).append( HybsSystem.CR );
1176 rtn.append( "domainLabel [" ).append( domainLabel ).append( "]" ).append( HybsSystem.CR );
1177 rtn.append( "showLegend [" ).append( showLegend ).append( "]" ).append( HybsSystem.CR );
1178 rtn.append( "rectangleEdge [" ).append( rectangleEdge ).append( "]" ).append( HybsSystem.CR );
1179 rtn.append( "plotOrientation [" ).append( plotOrientation ).append( "]" ).append( HybsSystem.CR );
1180 rtn.append( "chartBackColor [" ).append( chartBackColor ).append( "]" ).append( HybsSystem.CR );
1181 rtn.append( "plotBackColor [" ).append( plotBackColor ).append( "]" ).append( HybsSystem.CR );
1182
1183 return rtn.toString();
1184 }
1185
1186 /**
1187 * JFreeChart ã‚?ç”»åƒãƒ•ァイルã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‚¯ãƒ©ã‚¹ã§ã™ã?
1188 * ã“ã?ã‚ャãƒ?‚·ãƒ¥ã¯ã€JFreeChart å˜ä½ã«ä¿æŒã•れã¾ã™ã?
1189 * JFreeChart ã¨ã€ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã‚’行ã„ã¾ã™ã?
1190 * JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã—ãªãŠã—ãŸã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ã€?
1191 * ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã¯åˆæœŸåŒ?クリア)ã•れã¾ã™ã?
1192 * ã‚ャãƒ?‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME ã§å®šç¾©ã—ã¾ã™ã?
1193 */
1194 private static final class ChartCache {
1195 private static final int CACHE_TIME = HybsSystem.sysInt( "CHART_CACHE_TIME" );
1196 private static final long MAX_CACHE_TIME = CACHE_TIME * 1000L;
1197
1198 private final Map<String,String> fileAdrs = new HashMap<String,String>();
1199 private final String mkey ;
1200 private long createLimitTime = 0L;
1201 private JFreeChart chart = null ;
1202
1203 /**
1204 * コンストラクター
1205 * JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‚ーを指定ã—ã¾ã™ã?
1206 * å†?ƒ¨çš?«ã¯ã€ã“ã®ã‚ー(mkey)ã§ã€æ¯”è¼?‚„ hashCode ãŒè¨ˆç®—ã•れã¦ã?¾ã™ã?
1207 *
1208 * @param mkey ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‚ー
1209 */
1210 public ChartCache( final String mkey ) {
1211 this.mkey = mkey;
1212 }
1213
1214 /**
1215 * JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã—ã¾ã™ã?
1216 * ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã¯åˆæœŸåŒ?クリア)ã•れã¾ã™ã?
1217 * ã“ã?ã‚ャãƒ?‚·ãƒ¥ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ã€ã‚ャãƒ?‚·ãƒ¥æ™‚é–“ã‚’å?期化ã—ã¾ã™ã?
1218 *
1219 * @param chart JFreeChartオブジェク�
1220 */
1221 public void setJFreeChart( final JFreeChart chart ) {
1222 this.chart = chart;
1223 fileAdrs.clear();
1224 createLimitTime = System.currentTimeMillis() + MAX_CACHE_TIME;
1225 }
1226
1227 /**
1228 * JFreeChart オブジェクトを返ã—ã¾ã™ã?
1229 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦ã?‚Œã°ã€ãã®ã‚ャãƒ?‚·ãƒ¥ã‚’ã?ãã†ã§ãªã‘れã°ã€null ã‚?
1230 * è¿”ã—ã¾ã™ã?
1231 * ã‚ャãƒ?‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME ã§å®šç¾©ã—ã¾ã™ã?
1232 * オブジェクトã?作æ?時間ãŒã?ãれをè¶?ˆã‚‹å?åˆã?ã€ã‚ャãƒ?‚·ãƒ¥ã‚’å?期化ã—ã¾ã™ã?
1233 *
1234 * @return JFreeChart JFreeChartオブジェク�
1235 */
1236 public JFreeChart getJFreeChart() {
1237 return chart;
1238 }
1239
1240 /**
1241 * ç”»åƒãƒ•ァイルをã‚ャãƒ?‚·ãƒ¥ã—ã¾ã™ã?
1242 * ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã¯ã‚µãƒ–ã‚ーå˜ä½ã«è¡Œã‚れã¾ã™ã?
1243 * ã¤ã¾ã‚Šã?ã“ã?オブジェクトã?ä¸ã«ã€è¤?•°ã®ç”»åƒãƒ•ァイルã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã?
1244 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦ã?¾ã™ã?
1245 *
1246 * @param chart JFreeChartオブジェク�
1247 */
1248 public void putFileAddress( final String skey,final String adrs ) {
1249 fileAdrs.put( skey,adrs );
1250 }
1251
1252 /**
1253 * ç”»åƒãƒ•ァイルã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’è¿”ã—ã¾ã™ã?
1254 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦ã?‚Œã°ã€ãã®ã‚ャãƒ?‚·ãƒ¥ã‚’ã?ãã†ã§ãªã‘れã°ã€null ã‚?
1255 * è¿”ã—ã¾ã™ã?
1256 * ã‚ャãƒ?‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME ã§å®šç¾©ã—ã¾ã™ã?
1257 * オブジェクトã?作æ?時間ãŒã?ãれをè¶?ˆã‚‹å?åˆã?ã€ã‚ャãƒ?‚·ãƒ¥ã‚’å?期化ã—ã¾ã™ã?
1258 *
1259 * @return JFreeChart JFreeChartオブジェク�
1260 */
1261 public String getFileAddress( final String skey ) {
1262 return fileAdrs.get( skey ) ;
1263 }
1264
1265 /**
1266 * ã‚ャãƒ?‚·ãƒ¥ãŒã?有効ã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã?(有効:true)
1267 * ã‚ャãƒ?‚·ãƒ¥ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME (ç§?パラメータ
1268 * æŒ?®šã•ã‚ŒãŸæ™‚é–“ãŒçµŒéŽã™ã‚‹ã¨ã€ç„¡åйã¨åˆ¤æ–ã•れã¾ã™ã?
1269 * 有効ã§ã‚れã°ã€true ã‚’è¿”ã—ã¾ã™ã?
1270 *
1271 * @return 有効ã‹ã©ã?‹(有効:true/無効:false)
1272 */
1273 public boolean isAvailable() {
1274 return ( System.currentTimeMillis() < createLimitTime ) ;
1275 }
1276
1277 /**
1278 * ã“ã?オブジェクトã¨ä»–ã?オブジェクトãŒç‰ã—ã?‹ã©ã?‹ã‚’示ã—ã¾ã™ã?
1279 * ã‚ャãƒ?‚·ãƒ¥ã®ã‚ーãŒç‰ã—ã?‹ã©ã?‹ã§åˆ¤æ–ã—ã¾ã™ã?
1280 *
1281 * @param object 比è¼?¯¾è±¡ã®å‚ç?オブジェクãƒ?
1282 * @return obj å¼•æ•°ã«æŒ?®šã•れãŸã‚ªãƒ–ジェクトã¨ã“ã?オブジェクトãŒç‰ã—ã??åˆã? trueã€ãã?§ãªã??åˆã? false
1283 */
1284 public boolean equals( final Object object ) {
1285 if( object instanceof ChartCache ) {
1286 return this.mkey.equals( ((ChartCache)object).mkey );
1287 }
1288 return false ;
1289 }
1290
1291 /**
1292 * オブジェクトã?ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰å?ã‚’è¿”ã—ã¾ã™ã?
1293 * ã“ã?メソãƒ?ƒ‰ã¯ã€java.util.Hashtable ã«ã‚ˆã£ã¦æä¾›ã•れるよã†ãª
1294 * ãƒãƒƒã‚·ãƒ¥ãƒ??ブルã§ä½¿ç”¨ã™ã‚‹ãŸã‚ã«ç”¨æ„ã•れã¦ã?¾ã™ã?
1295 * equals( Object ) メソãƒ?ƒ‰ã‚’オーãƒã?ライトã—ãŸå?åˆã?ã€hashCode() メソãƒ?ƒ‰ã‚?
1296 * å¿?š 記述ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
1297 * ã“ã?実è£?§ã¯ã€mkey.hashCode() ã¨åŒå?ã‚’è¿”ã—ã¾ã™ã?
1298 *
1299 * @return ã“ã?オブジェクトã?ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰å?
1300 */
1301 public int hashCode() {
1302 return mkey.hashCode() ;
1303 }
1304 }
1305 }