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="{@docRoot}/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 1137 * 1138 * @param strm ObjectOutputStreamオブジェクãƒ? 1139 */ 1140 private void writeObject( final ObjectOutputStream strm ) throws IOException { 1141 strm.defaultWriteObject(); 1142 } 1143 1144 /** 1145 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 1146 * 1147 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã? 1148 * 1149 * @og.rev 4.0.0.0 (2007/11/29) æ–°è¦è¿½åŠ? 1150 * @serialData 1151 * 1152 * @param strm ObjectInputStreamオブジェクãƒ? 1153 * @see #release2() 1154 */ 1155 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 1156 strm.defaultReadObject(); 1157 } 1158 1159 /** 1160 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 1161 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 1162 * 1163 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 1164 */ 1165 @Override 1166 public String toString() { 1167 StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 1168 1169 rtn.append( "[" ).append( this.getClass().getName() ).append( "]" ).append( HybsSystem.CR ); 1170 rtn.append( "title [" ).append( title ).append( "]" ).append( HybsSystem.CR ); 1171 rtn.append( "width [" ).append( width ).append( "]" ).append( HybsSystem.CR ); 1172 rtn.append( "height [" ).append( height ).append( "]" ).append( HybsSystem.CR ); 1173 rtn.append( "domainLabel [" ).append( domainLabel ).append( "]" ).append( HybsSystem.CR ); 1174 rtn.append( "showLegend [" ).append( showLegend ).append( "]" ).append( HybsSystem.CR ); 1175 rtn.append( "rectangleEdge [" ).append( rectangleEdge ).append( "]" ).append( HybsSystem.CR ); 1176 rtn.append( "plotOrientation [" ).append( plotOrientation ).append( "]" ).append( HybsSystem.CR ); 1177 rtn.append( "chartBackColor [" ).append( chartBackColor ).append( "]" ).append( HybsSystem.CR ); 1178 rtn.append( "plotBackColor [" ).append( plotBackColor ).append( "]" ).append( HybsSystem.CR ); 1179 1180 return rtn.toString(); 1181 } 1182 1183 /** 1184 * JFreeChart ã‚?ç”»åƒãƒ•ァイルã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‚¯ãƒ©ã‚¹ã§ã™ã? 1185 * ã“ã?ã‚ャãƒ?‚·ãƒ¥ã¯ã€JFreeChart å˜ä½ã«ä¿æŒã•れã¾ã™ã? 1186 * JFreeChart ã¨ã€ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã‚’行ã„ã¾ã™ã? 1187 * JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã—ãªãŠã—ãŸã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ã€? 1188 * ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã¯åˆæœŸåŒ?クリア)ã•れã¾ã™ã? 1189 * ã‚ャãƒ?‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME ã§å®šç¾©ã—ã¾ã™ã? 1190 */ 1191 private static final class ChartCache { 1192 private static final int CACHE_TIME = HybsSystem.sysInt( "CHART_CACHE_TIME" ); 1193 private static final long MAX_CACHE_TIME = CACHE_TIME * 1000L; 1194 1195 private final Map<String,String> fileAdrs = new HashMap<String,String>(); 1196 private final String mkey ; 1197 private long createLimitTime = 0L; 1198 private JFreeChart chart = null ; 1199 1200 /** 1201 * コンストラクター 1202 * JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‚ーを指定ã—ã¾ã™ã? 1203 * å†?ƒ¨çš?«ã¯ã€ã“ã®ã‚ー(mkey)ã§ã€æ¯”è¼?‚„ hashCode ãŒè¨ˆç®—ã•れã¦ã?¾ã™ã? 1204 * 1205 * @param mkey ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã‚ー 1206 */ 1207 public ChartCache( final String mkey ) { 1208 this.mkey = mkey; 1209 } 1210 1211 /** 1212 * JFreeChart オブジェクトをã‚ャãƒ?‚·ãƒ¥ã—ã¾ã™ã? 1213 * ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã¯åˆæœŸåŒ?クリア)ã•れã¾ã™ã? 1214 * ã“ã?ã‚ャãƒ?‚·ãƒ¥ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ã€ã‚ャãƒ?‚·ãƒ¥æ™‚é–“ã‚’å?期化ã—ã¾ã™ã? 1215 * 1216 * @param chart JFreeChartオブジェクãƒ? 1217 */ 1218 public void setJFreeChart( final JFreeChart chart ) { 1219 this.chart = chart; 1220 fileAdrs.clear(); 1221 createLimitTime = System.currentTimeMillis() + MAX_CACHE_TIME; 1222 } 1223 1224 /** 1225 * JFreeChart オブジェクトを返ã—ã¾ã™ã? 1226 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦ã?‚Œã°ã€ãã®ã‚ャãƒ?‚·ãƒ¥ã‚’ã?ãã†ã§ãªã‘れã°ã€null ã‚? 1227 * è¿”ã—ã¾ã™ã? 1228 * ã‚ャãƒ?‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME ã§å®šç¾©ã—ã¾ã™ã? 1229 * オブジェクトã?作æ?時間ãŒã?ãれをè¶?ˆã‚‹å?åˆã?ã€ã‚ャãƒ?‚·ãƒ¥ã‚’å?期化ã—ã¾ã™ã? 1230 * 1231 * @return JFreeChart JFreeChartオブジェクãƒ? 1232 */ 1233 public JFreeChart getJFreeChart() { 1234 return chart; 1235 } 1236 1237 /** 1238 * ç”»åƒãƒ•ァイルをã‚ャãƒ?‚·ãƒ¥ã—ã¾ã™ã? 1239 * ç”»åƒãƒ•ァイルã®ã‚ャãƒ?‚·ãƒ¥ã¯ã‚µãƒ–ã‚ーå˜ä½ã«è¡Œã‚れã¾ã™ã? 1240 * ã¤ã¾ã‚Šã?ã“ã?オブジェクトã?ä¸ã«ã€è¤?•°ã®ç”»åƒãƒ•ァイルã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã? 1241 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦ã?¾ã™ã? 1242 * 1243 * @param chart JFreeChartオブジェクãƒ? 1244 */ 1245 public void putFileAddress( final String skey,final String adrs ) { 1246 fileAdrs.put( skey,adrs ); 1247 } 1248 1249 /** 1250 * ç”»åƒãƒ•ァイルã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’è¿”ã—ã¾ã™ã? 1251 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦ã?‚Œã°ã€ãã®ã‚ャãƒ?‚·ãƒ¥ã‚’ã?ãã†ã§ãªã‘れã°ã€null ã‚? 1252 * è¿”ã—ã¾ã™ã? 1253 * ã‚ャãƒ?‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME ã§å®šç¾©ã—ã¾ã™ã? 1254 * オブジェクトã?作æ?時間ãŒã?ãれをè¶?ˆã‚‹å?åˆã?ã€ã‚ャãƒ?‚·ãƒ¥ã‚’å?期化ã—ã¾ã™ã? 1255 * 1256 * @return JFreeChart JFreeChartオブジェクãƒ? 1257 */ 1258 public String getFileAddress( final String skey ) { 1259 return fileAdrs.get( skey ) ; 1260 } 1261 1262 /** 1263 * ã‚ャãƒ?‚·ãƒ¥ãŒã?有効ã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã?(有効:true) 1264 * ã‚ャãƒ?‚·ãƒ¥ã¯ã€ã‚·ã‚¹ãƒ?ƒ リソース㮠CHART_CACHE_TIME (ç§?パラメータ 1265 * æŒ?®šã•ã‚ŒãŸæ™‚é–“ãŒçµŒéŽã™ã‚‹ã¨ã€ç„¡åйã¨åˆ¤æ–ã•れã¾ã™ã? 1266 * 有効ã§ã‚れã°ã€true ã‚’è¿”ã—ã¾ã™ã? 1267 * 1268 * @return 有効ã‹ã©ã?‹(有効:true/無効:false) 1269 */ 1270 public boolean isAvailable() { 1271 return ( System.currentTimeMillis() < createLimitTime ) ; 1272 } 1273 1274 /** 1275 * ã“ã?オブジェクトã¨ä»–ã?オブジェクトãŒç‰ã—ã?‹ã©ã?‹ã‚’示ã—ã¾ã™ã? 1276 * ã‚ャãƒ?‚·ãƒ¥ã®ã‚ーãŒç‰ã—ã?‹ã©ã?‹ã§åˆ¤æ–ã—ã¾ã™ã? 1277 * 1278 * @param object 比è¼?¯¾è±¡ã®å‚ç?オブジェクãƒ? 1279 * @return obj å¼•æ•°ã«æŒ?®šã•れãŸã‚ªãƒ–ジェクトã¨ã“ã?オブジェクトãŒç‰ã—ã??åˆã? trueã€ãã?§ãªã??åˆã? false 1280 */ 1281 public boolean equals( final Object object ) { 1282 if( object instanceof ChartCache ) { 1283 return this.mkey.equals( ((ChartCache)object).mkey ); 1284 } 1285 return false ; 1286 } 1287 1288 /** 1289 * オブジェクトã?ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰å?ã‚’è¿”ã—ã¾ã™ã? 1290 * ã“ã?メソãƒ?ƒ‰ã¯ã€java.util.Hashtable ã«ã‚ˆã£ã¦æä¾›ã•れるよã†ãª 1291 * ãƒãƒƒã‚·ãƒ¥ãƒ??ブルã§ä½¿ç”¨ã™ã‚‹ãŸã‚ã«ç”¨æ„ã•れã¦ã?¾ã™ã? 1292 * equals( Object ) メソãƒ?ƒ‰ã‚’オーãƒã?ライトã—ãŸå?åˆã?ã€hashCode() メソãƒ?ƒ‰ã‚? 1293 * å¿?š 記述ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã? 1294 * ã“ã?実è£?§ã¯ã€mkey.hashCode() ã¨åŒå?ã‚’è¿”ã—ã¾ã™ã? 1295 * 1296 * @return ã“ã?オブジェクトã?ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰å? 1297 */ 1298 public int hashCode() { 1299 return mkey.hashCode() ; 1300 } 1301 } 1302 }