001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.hayabusa.taglib;
017
018 import org.opengion.hayabusa.common.HybsSystem;
019 import org.opengion.hayabusa.common.HybsSystemException;
020 import org.opengion.hayabusa.html.ViewTimeTableParam;
021
022 import static org.opengion.fukurou.util.StringUtil.nval ;
023
024 import java.io.ObjectOutputStream;
025 import java.io.ObjectInputStream;
026 import java.io.IOException;
027 import java.util.Map;
028 import java.util.HashMap;
029 import java.util.Arrays;
030 import java.awt.Font ;
031
032 /**
033 * viewタグの viewFormType ã�?ImageTimeBar の場合にパラメータを設定しますã?
034 *
035 * キー、日時ã?状況コードを持つ稼働状況ã?表示を行う、ViewForm_ImageTimeBar クラスに対してã€?
036 * å�?¨®パラメータを設定しますã?
037 * (パラメータを使用するには、viewタグのuseParam 属æ?をtrueに設定するå¿?¦�がありますã?)
038 *
039 * SELECTæ–??、キー、日時ã?状況コードが、å¿??é ?›®で、カラãƒ??並びé ??、完å?に固定ですã?
040 * よって、カラãƒ?½�置を指定するå¿?¦�ã?ありませんがã?SELECTæ–?‚’自由に設定することã‚?
041 * 出来ませんので、ご注意くã�?�•ã�??
042 * こã?固定化に伴ã�??WRITABLE æŒ?®šも使用できません。(そもそも書き込み不可ですï¼?
043 * それ以降ã?カラãƒ?�«つã�?�¦は、å?部処ç�?�¨しては、使用してã�?�¾せんã€?
044 * ただしã?パラメータで、カラー色æŒ?®šã?ラベル表記部、イメージ重ã?合わせã?
045 * ポップアãƒ??表記ã?リンク表記に使えますã?
046 *
047 * ãƒ??タの並びé ?ORDER BY)もã?キー、日時é?にしてくださいã€?
048 * ãƒ??タは、キー単位に?‘レコード作æ?されますã??ˆキーブレイク?‰その間ã?日時é?に
049 * ãƒ??タをå?ç�?�—ますã?
050 *
051 * ãƒ??タの表示は、今ã?レコードã?日時からã?次のレコードã?日時までをä¸?�¤の状態と
052 * して表しますã?今ã?レコードを表示するには、次のレコードがå¿?¦�になりますã?
053 * 画面表示は、表示開始日æ™?minStartTime) から 表示期間(timeSpan)åˆ?‚’表示しますã?
054 * 通常ã€?–‹始時刻は、表示開始時刻より前より始まりã?次のレコードで、終äº?™‚刻が決å®?
055 * されますã?æœ?¾Œã?ãƒ??タは、期間æº?º?�¾で続いてã�?‚‹と仮定されますã?
056 * ãƒ??タが存在しなã�??であれば、ã?存在しなã�?ƒ‡ータ」を作æ?してくださいã€?
057 *
058 * ImageTimeBar では、キーでまとめた値につã�?�¦、各状況コードをカラー化し、積み上げ
059 * 帯グラフ形式でPNG画像化しますã?
060 * こã?画像を、読み込ã‚?HTML をå?力することで、画面上に、積み上げ帯グラフを表示しますã?
061 * 状況コードに対応する色は、標準では自動作æ?ですが、外部から色æ–?—å?を与えることで
062 * 自由にæŒ?®šする事も可能ですã?
063 *
064 * ポップアãƒ??表è¨?tipsClm)、リンク表è¨?linkClm)は、この画像に対するエリアæŒ?®šタグをå?力する事で実現しますã?
065 * 画像ファイルは、å?ãƒ??タに対してã€?¼‘画像だけなので、サイズは大きくなりますがã€?¼‘レコーãƒ?
066 * 単位に画像を作æ?しなã�?�Ÿめã?レスポンスは向上しますã?
067 * それぞれ、viewMarker , viewLink を利用することが可能ですã?特に、リンク表è¨?linkClm) につã�?�¦はã€?
068 * linkタグの hrefTarget 属æ?ã‚?true に設定することで適用できますã?
069 *
070 * 画像ファイルは、java.io.File.createTempFile( File ) で作æ?するため、JavaVM(=Tomcat)ã�?
071 * 正常終äº?�™るときに、削除されますã?異常終äº?™‚には残りますが、temp フォルãƒ?‚’定期çš?�«
072 * 整ç�?�™れã?、それほど大量ã?ファイルが残ることはなã�?�¨思われますã?
073 *
074 * ãƒ??タは、イベント発生時に作æ?されると仮定してã�?�¾すã?つまりã?書き込まれた日時からã?
075 * 状況コードに対応する状況が発生し、次の状æ³?�•ã�??レコードまで継続してã�?‚‹とè€?�ˆますã?
076 * よって、データをé?中でåˆ?‚Š出すå?合ã?åˆ?‚Š出すç¯?›²の前ã?状態がå¿?¦�になりますã?
077 * ä¸?•ªæœ??の状態ã?ã€?不æ?" として扱ã�?�¾すã??ˆ空æ¬?¼�白色??
078 *
079 * <img src="doc-files/ViewTimeBarParamTag.png" alt="ViewTimeBarParamTag" >
080 *
081 * @og.formSample
082 * ●形式ï¼?lt;og:timeBarParam startDate="?¥?¥?¥" timeSpan="?¥?¥?¥" ?¥?¥?¥ />
083 * ●body?šなã�?
084 *
085 * ●Tag定義??
086 * <og:timeBarParam
087 * startDate 【TAG】タイãƒ?ƒ†ーブルの表示開始日時をセãƒ?ƒˆしまã�?å¿??)ã€?
088 * timeSpan 【TAG】タイãƒ?ƒ†ーブルの表示期間を時間でæŒ?®šしまã�?å¿??)ã€?
089 * labelClms 【TAG】ä¸?¦§表のラベル表示部に表示するカラãƒ?‚’CSV形式でæŒ?®šしまã�?初期値:キーのRenderer値)ã€?
090 * colorClm 【TAG】レコードに付ける色を色æ–?—å?でæŒ?®šするå?合ã?カラãƒ?��を指定しまã�?初期値:æŒ?®šしなã�?ã€?
091 * tipsClm 【TAG】レコード単位に、ã?ウスオーバã?時ã?Tips表示を行うカラãƒ?‚’æŒ?®šしまã�?初期値:æŒ?®šしなã�?ã€?
092 * linkClm 【TAG】レコード単位に、クリãƒ?‚«ブルリンクを設定するカラãƒ?‚’æŒ?®šしまã�?初期値:æŒ?®šしなã�?ã€?
093 * useLegend 【TAG】カラーの凡例を使用するかどã�?�‹[true/false]を指定しまã�?初期値:{@og.value #USE_LEGEND})ã€?
094 * maxLabelWidth 【TAG】ラベル表記部のæœ?¤§サイズをpxでæŒ?®šしまã�?初期値:{@og.value #MAX_LABEL_WIDTH})ã€?
095 * maxTimeWidth 【TAG】タイãƒ?¡¨記部のæœ?¤§サイズをpxでæŒ?®šをpxでæŒ?®šしまã�?初期値:{@og.value #MAX_TIME_WIDTH})ã€?
096 * chartHeight 【TAG】1行ã?タイãƒ?ƒ�ャートã?å¹?‚’pxでæŒ?®šしまã�?初期値:{@og.value #CHART_HEIGHT})ã€?
097 * padding 【TAG】イメージ作æ?の 全体テーブルの隙間?ˆパãƒ?‚£ング?‰をpxでæŒ?®šしまã�?初期値:{@og.value #CHART_PADDING})ã€?
098 * margin 【TAG】1レコードã?æ–?—やタイãƒ?ƒ�ャートã?マã?ジンをpxでæŒ?®šしまã�?初期値:{@og.value #RECODE_MARGIN})ã€?
099 * useLastData 【TAG】行ã?æœ?¾Œã?æƒ??がã?継続してã�?‚‹として使ã�?�‹どã�?�‹[true/false]を指å®?初期値:{@og.value #USE_LAST_DATA})ã€?
100 * debug 【TAG】å?部æƒ??をå?力しまã�?初期値:false)ã€?
101 * />
102 *
103 * ●使用ä¾?
104 * ViewFormTag の viewFormType がã?ImageTimeBar の場合に使用しますã?
105 * useParam 属æ?を設定しておかなã�?�¨、使用されませんã€?
106 * <og:view
107 * viewFormType = "ImageTimeBar"
108 * command = "{@command}"
109 * <b>useParam = "true"</b>
110 * >
111 * <og:timeBarParam
112 * startDate = "{@DYFROM}"
113 * timeSpan = "24"
114 * />
115 * </og:view >
116 *
117 * @og.group 画面表示
118 * @og.rev 5.5.5.6 (2012/08/31) 新規追åŠ?
119 *
120 * @version 4.0
121 * @author Kazuhiko Hasegawa
122 * @since JDK5.0,
123 */
124 public class ViewTimeBarParamTag extends ViewParamTag {
125 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
126 private static final String VERSION = "5.6.1.1 (2013/02/08)" ;
127
128 private static final long serialVersionUID = 561120130208L ;
129
130 private static final String START_DATE = null; // タイãƒ?ƒ†ーブルの表示開始日時をセãƒ?ƒˆしまã�?初期値:ãƒ??タのæœ?°�日æ™?ã€?
131 private static final String TIME_SPAN = "24"; // タイãƒ?ƒ†ーブルの表示期間を時間でæŒ?®šしまã�?初期値:{@og.value #TIME_SPAN})ã€?
132
133 // private static final String MIN_START_TIME = "0000"; // タイãƒ?ƒ†ーブルの開始時刻(含ã‚? 0800=08:00 のことã€?H=480M
134 // private static final String MAX_END_TIME = "2400"; // タイãƒ?ƒ†ーブルの終äº?™‚刻(含まなã�? 2000=20:00 のことã€?0H=1200M
135
136 private static final String LABEL_CLMS = null; // ä¸?¦§表のラベル表示部に表示するカラãƒ?‚’CSV形式でæŒ?®šしますã?
137 private static final String COLOR_CLM = null; // レコードに付ける色を色æ–?—å?でæŒ?®šするå?合ã?カラãƒ?��を指定しますã?
138 private static final String TIPS_CLM = null; // レコード単位に、ã?ウスオーバã?時ã?Tips表示を行うカラãƒ?��を指定しますã?
139 private static final String LINK_CLM = null; // レコード単位に、クリãƒ?‚«ブルリンクを設定するカラãƒ?��を指定しますã?
140
141 private static final String USE_LEGEND = "true"; // カラーの凡例を使用するかどã�?�‹[true/false]を指定しますã?
142 private static final String MAX_LABEL_WIDTH = null; // ラベル表記部のæœ?¤§サイズをpxでæŒ?®šã?何もなければ、可変長サイズ
143 private static final String MAX_TIME_WIDTH = "600"; // タイãƒ?¡¨記部のæœ?¤§サイズをpxでæŒ?®šã?
144 private static final String CHART_HEIGHT = "20"; // ?‘レコードã?チャートã?間隔をpxでæŒ?®šã?実際のå¹??、CHART_HEIGHT?‹MARGIN?Šï¼?
145 private static final String CHART_PADDING = "5"; // イメージ作æ?の 全体テーブルの隙間
146 private static final String RECODE_MARGIN = "3"; // å�?ƒ¬コードã?æ–?—等ã?å†?ƒ¨の間隔
147
148 private static final String USE_LAST_DATA = "true"; // 5.6.1.1 (2013/02/08) 行ã?æœ?¾Œã?æƒ??がã?継続してã�?‚‹として使ã�?�‹どã�?�‹[true/false]を指定しますã?
149
150 // private static final String FONT_STYLE = null; // Font クラスのスタイル定数??LAIN、BOLD、ITALIC、またã? BOLD+ITALIC ??
151 // private static final String FONT_SIZE = null; // Font のポイントサイズ?? ポイントã? 1/72 インãƒ?¼?
152
153 // private static final String FILE_DIR = HybsSystem.sys( "CHART_TEMP_DIR" ); // 画像ファイルの作æ?DIR
154
155 /** パラメータの初期値設å®?*/
156 private static final Map<String,String> INIT_PARAM = new HashMap<String,String>();
157 static {
158 INIT_PARAM.put( "START_DATE" , START_DATE );
159 INIT_PARAM.put( "TIME_SPAN" , TIME_SPAN );
160 // INIT_PARAM.put( "MIN_START_TIME" , MIN_START_TIME );
161 // INIT_PARAM.put( "MAX_END_TIME" , MAX_END_TIME );
162 INIT_PARAM.put( "LABEL_CLMS" , LABEL_CLMS );
163 INIT_PARAM.put( "COLOR_CLM" , COLOR_CLM );
164 INIT_PARAM.put( "TIPS_CLM" , TIPS_CLM );
165 INIT_PARAM.put( "LINK_CLM" , LINK_CLM );
166 INIT_PARAM.put( "USE_LEGEND" , USE_LEGEND );
167 INIT_PARAM.put( "MAX_LABEL_WIDTH" , MAX_LABEL_WIDTH );
168 INIT_PARAM.put( "MAX_TIME_WIDTH" , MAX_TIME_WIDTH );
169 INIT_PARAM.put( "CHART_HEIGHT" , CHART_HEIGHT );
170 INIT_PARAM.put( "CHART_PADDING" , CHART_PADDING );
171 INIT_PARAM.put( "RECODE_MARGIN" , RECODE_MARGIN );
172 INIT_PARAM.put( "USE_LAST_DATA" , USE_LAST_DATA ); // 5.6.1.1 (2013/02/08)
173 // INIT_PARAM.put( "FONT_STYLE" , FONT_STYLE );
174 // INIT_PARAM.put( "FONT_SIZE" , FONT_SIZE );
175 INIT_PARAM.put( "TEMP_DIR" , null );
176 INIT_PARAM.put( "TEMP_URL" , null );
177 // INIT_PARAM.put( "TEMP_DIR" , HybsSystem.url2dir( FILE_DIR ) );
178 }
179
180 /** fontStyle 引数に渡す事ã?出来ã‚?フォントスタイル enum */
181 // private enum ENUM_FONT_STYLE {
182 // PLAIN ( Font.PLAIN ),
183 // BOLD ( Font.BOLD ),
184 // ITALIC ( Font.ITALIC ),
185 // BOLD_ITALIC ( Font.BOLD + Font.ITALIC ) ;
186 //
187 // private final String fontStyle ;
188 //
189 // ENUM_FONT_STYLE( final int style ) { fontStyle = String.valueOf( style ); }
190 //
191 // public String getStyle() { return fontStyle; }
192 // }
193
194 /**
195 * Taglibの開始タグが見つかったときに処ç�?�™ã‚?doStartTag() ã‚?オーバã?ライドしますã?
196 *
197 * @return 後続å?ç�??æŒ?¤º
198 */
199 @Override
200 public int doStartTag() {
201 initParam( INIT_PARAM );
202
203 String FILE_DIR = HybsSystem.sys( "CHART_TEMP_DIR" ); // 画像ファイルの作æ?DIR
204
205 putParam( "TEMP_DIR" , HybsSystem.url2dir( FILE_DIR ) );
206 putParam( "TEMP_URL" , getContextPath() + "/" + FILE_DIR );
207
208 return(SKIP_BODY); // Body を評価しなã�?
209 }
210
211 /**
212 * 【TAG】タイãƒ?ƒ†ーブルの表示開始日時をセãƒ?ƒˆしまã�?初期値:ãƒ??タのæœ?°�日æ™?ã€?
213 *
214 * @og.tag
215 * 表示開始日時を起点として、タイãƒ?ƒ†ーブルを表示しますã?
216 * 実際に画面に表示されるã?はã€?–‹始時刻から終äº?™‚刻のç¯?›²å†?� けですがã€?
217 * 起点は、この日時になりますã?
218 *
219 * æŒ?®š方法として、フォーマットされた日付ã?時刻æƒ??も設定可能ですã??ˆå?部çš?�«処ç�?�—ますï¼?
220 * またã?処ç�?¾?例ï¼?0120824102823?‰14ケタ以上ã?場合ã?ã€?¼‘4ケタにカãƒ?ƒˆしますã?
221 * ?˜ケタ以上ã?場合ã?、時刻 000000 を追åŠ?�—ますã?
222 * それ以下ã?場合ã?、設定エラーとして、HybsSystemException ã‚?throw しますã?
223 *
224 * 表示開始日時がæŒ?®šされなã�??合ã?、データのæœ?°�時刻を利用して表示しますã?
225 * 初期値は、データのæœ?°�日æ™?ですã?
226 *
227 * @param startDate タイãƒ?ƒ†ーブルの表示開始日æ™?
228 */
229 public void setStartDate( final String startDate ) {
230 String date = nval( getRequestParameter( startDate ),START_DATE );
231 if( date != null ) {
232 if( date.indexOf( '-' ) >= 0 ) { date = date.replaceAll( "-","" ); }
233 if( date.indexOf( '/' ) >= 0 ) { date = date.replaceAll( "/","" ); }
234 if( date.indexOf( ':' ) >= 0 ) { date = date.replaceAll( ":","" ); }
235 if( date.indexOf( ' ' ) >= 0 ) { date = date.replaceAll( " ","" ); }
236
237 int len = date.length();
238 if( len > 14 ) { date = date.substring( 0,14 ); } // ミリ秒までæŒ?®šされてã�?‚‹と想å®?
239 else if( len > 8 && len < 14 ) { date = ( date + "000000" ).substring( 0,14 ) ; } // 西暦からの日付ã?入ってã�?‚‹とè€?�ˆますã?
240 else {
241 String errMsg = "日付データの設定エラーですã?date=[" + startDate + "]" ;
242 throw new HybsSystemException( errMsg );
243 }
244 }
245 putParam( "START_DATE" , date );
246 }
247
248 /**
249 * 【TAG】タイãƒ?ƒ†ーブルの表示期間を時間でæŒ?®šしまã�?初期値:{@og.value #TIME_SPAN})ã€?
250 *
251 * @og.tag
252 * 表示開始日時からã?どれだけã?時間ç¯?›²を表示対象とするかをæŒ?®šしますã?
253 * æŒ?®šする単位ã?、時間ですã?
254 * 小数点はæŒ?®šできません。またã??‘0日ならã?"240" ã€?¼‘か月(30日?‰ならã?"720"
255 * ?‘年?ˆ365日?‰ならã?"8760" を指定しますã?
256 * 実際に画面に表示されるã?はã€?–‹始時刻から終äº?™‚刻のç¯?›²å†?� けですã?
257 * 初期値はã€?{@og.value #TIME_SPAN}" ですã?
258 *
259 * @param timeSpan タイãƒ?ƒ†ーブルの表示期間(æ™?
260 */
261 public void setTimeSpan( final String timeSpan ) {
262 putParam( "TIME_SPAN" , nval( getRequestParameter( timeSpan ),TIME_SPAN ) );
263 }
264
265 /**
266 * 【TAG】タイãƒ?ƒ†ーブルの開始時刻(含ã‚?をセãƒ?ƒˆしまã�?初期値:{@og.value #MIN_START_TIME})ã€?
267 *
268 * @og.tag
269 * 時間軸の書き始めの時刻(自åˆ??身を含ã‚?™‚åˆ?¼”æ¡?を指定しますã?
270 * こã?時刻はã€?¼??�ï¼?ならã?"0800" となりã??‘ï¼??“ï¼?ならã?"1430" となりますã?
271 * 初期値はã€?{@og.value #MIN_START_TIME}" ですã?
272 *
273 * @param minStTime タイãƒ?ƒ†ーブルの開始時刻(含ã‚?
274 */
275 // public void setMinStartTime( final String minStTime ) {
276 // String time = nval( getRequestParameter( minStTime ),MIN_START_TIME );
277 // if( time.indexOf( ':' ) >= 0 ) { time = time.replaceAll( ":","" ); }
278 //
279 // putParam( "MIN_START_TIME" , time );
280 // }
281
282 /**
283 * 【TAG】タイãƒ?ƒ†ーブルの終äº?™‚刻(含まなã�?をセãƒ?ƒˆしまã�?初期値:{@og.value #MAX_END_TIME})ã€?
284 *
285 * @og.tag
286 * 時間軸のæœ?¾Œã?時刻(自åˆ??身を含まなã�?™‚åˆ?¼”æ¡?を指定しますã?
287 * こã?時刻はã€?¼??�ï¼?ならã?"0900" となりã??‘ï¼??“ï¼?ならã?"1430" となりますã?
288 * 終äº?™‚刻が開始時刻より小さã�??合ã?、翌日の時刻を示してã�?�¾すã?
289 * 0900-0700 は、翌日の0700までの?’2時間å?を指定してã�?�¾すã?
290 * 初期値はã€?{@og.value #MAX_END_TIME}" ですã?
291 *
292 * @param maxEdTime タイãƒ?ƒ†ーブルの終äº?™‚刻(含まなã�?
293 */
294 // public void setMaxEndTime( final String maxEdTime ) {
295 // String time = nval( getRequestParameter( maxEdTime ),MAX_END_TIME );
296 // if( time.indexOf( ':' ) >= 0 ) { time = time.replaceAll( ":","" ); }
297 //
298 // putParam( "MAX_END_TIME" , time );
299 // }
300
301 /**
302 * 【TAG】ä¸?¦§表のラベル表示部に表示するカラãƒ?‚’CSV形式でæŒ?®šしまã�?初期値:キーのRenderer値)ã€?
303 *
304 * @og.tag
305 * ラベル表示部に表示するカラãƒ?‚’カンマ区åˆ?‚Šæ–?—å?でæŒ?®šしますã?
306 * æŒ?®šされたカラãƒ??値の、Renderer値を画面上に表示しますã?
307 * ラベル表記部のæœ?¤§サイズ??axLblWidth?‰をæŒ?®šしなã�??合ã?、ここでæŒ?®šされたカラãƒ??
308 * 値のそれぞれのæœ?¤§長を加算したå?がã?ラベル表記部のæœ?¤§サイズ??axLblWidth?‰になりますã?
309 * 初期値は、キーのRenderer値 ですã?
310 *
311 * @param labelClms ラベル表示部に表示するカラãƒ?CSV形å¼?
312 */
313 public void setLabelClms( final String labelClms ) {
314 putParam( "LABEL_CLMS" , nval( getRequestParameter( labelClms ),LABEL_CLMS ) );
315 }
316
317 /**
318 * 【TAG】レコードに付ける色を色æ–?—å?でæŒ?®šするå?合ã?カラãƒ?��を指定しまã�?初期値:æŒ?®šしなã�?ã€?
319 *
320 * @og.tag
321 * レコード単位に、色を付けるå?合ã?æŒ?®šã?色を付けたい場合に、外部から色æ–?—å?を与えることが可能ですã?
322 * 色æ–?—å?は、java.awt.Color の フィールド定義されてã�?‚‹コードと同じæ–?—å?ですã?
323 * またã?#XXXXXX 形式ã? ?‘6é?æ–?—å?を与えることで、任意ã?色を指定可能ですã?
324 *
325 * 初期値はã€?æŒ?®šしなã�? ですã?
326 *
327 * @param colorClm 色æ–?—å?でæŒ?®šするå?合ã?カラãƒ?��
328 */
329 public void setColorClm( final String colorClm ) {
330 putParam( "COLOR_CLM" , nval( getRequestParameter( colorClm ),COLOR_CLM ) );
331 }
332
333 /**
334 * 【TAG】レコード単位に、ã?ウスオーバã?時ã?Tips表示を行うカラãƒ?‚’æŒ?®šしまã�?初期値:æŒ?®šしなã�?ã€?
335 *
336 * @og.tag
337 * レコード単位に、画像にマウスオーバã?時ã?ãƒ??ルチップ表示のためのãƒ??タを作æ?しますã?
338 * HTMLのareaタグの alt 属æ?をå?力しますã?
339 *
340 * 通常は、è¤?•°のæ–?—å?を使用しますã?で、viewMarker タグ等で整形してくださいã€?
341 * 何もæŒ?®šしなã�??合ã?、リンクがなければ、なにもå?力しませんã€?
342 * 初期値はã€?æŒ?®šしなã�? ですã?
343 *
344 * @param tipsClm マウスオーバã?時ã?Tips表示を行うカラãƒ?��
345 */
346 public void setTipsClm( final String tipsClm ) {
347 putParam( "TIPS_CLM" , nval( getRequestParameter( tipsClm ),TIPS_CLM ) );
348 }
349
350 /**
351 * 【TAG】レコード単位に、クリãƒ?‚«ブルリンクを設定するカラãƒ?‚’æŒ?®šしまã�?初期値:æŒ?®šしなã�?ã€?
352 *
353 * @og.tag
354 * レコード単位に、画像にクリãƒ?‚«ブルリンクを設定するためã?ãƒ??タを作æ?しますã?
355 * HTMLのareaタグ の href 属æ?をå?力しますã?
356 *
357 * 通常は、viewLink タグ等でリンクを作æ?してくださいã€?
358 * 何もæŒ?®šしなã�??合ã?、Tipsがなければ、なにもå?力しませんã€?
359 * 初期値はã€?æŒ?®šしなã�? ですã?
360 *
361 * @param linkClm クリãƒ?‚«ブルリンクを設定するカラãƒ?��
362 */
363 public void setLinkClm( final String linkClm ) {
364 putParam( "LINK_CLM" , nval( getRequestParameter( linkClm ),LINK_CLM ) );
365 }
366
367 /**
368 * 【TAG】カラーの凡例を使用するかどã�?�‹[true/false]を指定しまã�?初期値:{@og.value #USE_LEGEND})ã€?
369 *
370 * @og.tag
371 * 状況コードã?またã?、色æ–?—å?等でグラフ作æ?した場合ã?色に対する凡例を使用するかどã�?�‹を指定しますã?
372 * 凡例ã?表示位置は、グラフã?上å?でã€?¼‘レコードå?出力しますã?
373 *
374 * 初期値はã€?{@og.value #USE_LEGEND}" ですã?
375 *
376 * @param useLegend カラーの凡例を使用するかどã�?�‹[true/false]
377 */
378 public void setUseLegend( final String useLegend ) {
379 putParam( "USE_LEGEND" , nval( getRequestParameter( useLegend ),USE_LEGEND ) );
380 }
381
382 /**
383 * 【TAG】ラベル表記部のæœ?¤§サイズをpxでæŒ?®šしまã�?初期値:{@og.value #MAX_LABEL_WIDTH})ã€?
384 *
385 * @og.tag
386 * 画像ã??‘行ã?、ラベル表記部と、タイãƒ?ƒ�ャート部にåˆ?�‹れますã?
387 * そã?、ラベル表記部のæœ?¤§サイズを指定しますã?
388 * 何もæŒ?®šしなければ、可変長サイズ?ˆラベルの大きさに合わせた値?‰になりますã?
389 * 単位ã? px ですã???xは記述不要ですï¼?
390 * 初期値はã€?{@og.value #MAX_LABEL_WIDTH}" ですã?
391 *
392 * @param maxLblWidth ラベル表記部のæœ?¤§サイズ(px)
393 */
394 public void setMaxLabelWidth( final String maxLblWidth ) {
395 putPxParam( "MAX_LABEL_WIDTH" , maxLblWidth , MAX_LABEL_WIDTH );
396 }
397
398 /**
399 * 【TAG】タイãƒ?¡¨記部のæœ?¤§サイズをpxでæŒ?®šをpxでæŒ?®šしまã�?初期値:{@og.value #MAX_TIME_WIDTH})ã€?
400 *
401 * @og.tag
402 * 画像ã??‘行ã?、ラベル表記部と、タイãƒ?ƒ�ャート部にåˆ?�‹れますã?
403 * そã?タイãƒ?ƒ�ャート部のæœ?¤§サイズを指定しますã?
404 * こã?å¹??、ここでæŒ?®šしたå¹?�«固定されるため、時間ç¯?›²が多けれã?ã€?¼‘時間当たりã?表示å¹?�Œ
405 * 小さくなりますã?
406 * たとえã?ã€?H??0H=12H ã‚?600px で表示すればã€?¼‘時é–??•0px になりますしã€?4H 表示ならã?ã€?
407 * 半å?の ?’5px ã€?H ならã?、å?の 100px がã??‘時間ã?表示å¹?�«なりますã?
408 *
409 * 単位ã? px ですã???xは記述不要ですï¼?
410 * 初期値はã€?{@og.value #MAX_TIME_WIDTH}" ですã?
411 *
412 * @param maxTmWidth タイãƒ?¡¨記部のæœ?¤§サイズ(px)
413 */
414 public void setMaxTimeWidth( final String maxTmWidth ) {
415 putPxParam( "MAX_TIME_WIDTH" , maxTmWidth , MAX_TIME_WIDTH );
416 }
417
418 /**
419 * 【TAG】1行ã?タイãƒ?ƒ�ャートã?å¹?‚’pxでæŒ?®šしまã�?初期値:{@og.value #CHART_HEIGHT})ã€?
420 *
421 * @og.tag
422 * 画像ã??‘行ã?間隔は、上下ã?RECODE_MARGIN と、このチャート本体ã?å¹?�«なりますï¼?HART_HEIGHT?‹RECODE_MARGIN?Š2)ã?
423 * ここでは、チャート本体ã?å¹?‚’æŒ?®šしますã?
424 *
425 * 単位ã? px ですã???xは記述不要ですï¼?
426 * 初期値はã€?{@og.value #CHART_HEIGHT}" ですã?
427 *
428 * @param chartHeight タイãƒ?ƒ�ャートã?å¹?
429 */
430 public void setChartHeight( final String chartHeight ) {
431 putPxParam( "CHART_HEIGHT" , chartHeight , CHART_HEIGHT );
432 }
433
434 /**
435 * 【TAG】イメージ作æ?の 全体テーブルの隙間?ˆパãƒ?‚£ング?‰をpxでæŒ?®šしまã�?初期値:{@og.value #CHART_PADDING})ã€?
436 *
437 * @og.tag
438 * イメージは、データの全行を含んだ?‘枚の画像ファイルになりますã?
439 * 画像ファイル自体ã?大きさと、書き込まれた画像ã?大きさは異なりますã?
440 * こã?、padding は、画像ã?周りに、余白としてæŒ?®šするサイズをpx単位でæŒ?®šしますã?
441 * ここでは、上下左右に、均等にとりますã?
442 *
443 * 単位ã? px ですã???xは記述不要ですï¼?
444 * 初期値はã€?{@og.value #CHART_PADDING}" ですã?
445 *
446 * @param padding 全体テーブルの隙間?ˆパãƒ?‚£ング??
447 */
448 public void setPadding( final String padding ) {
449 putPxParam( "CHART_PADDING" , padding , CHART_PADDING );
450 }
451
452 /**
453 * 【TAG】1レコードã?æ–?—やタイãƒ?ƒ�ャートã?マã?ジンをpxでæŒ?®šしまã�?初期値:{@og.value #RECODE_MARGIN})ã€?
454 *
455 * @og.tag
456 * イメージはã€?¼‘レコードづつ書き込まれますが、そのレコードã?å¹??、chartHeight でæŒ?®šされた
457 * タイãƒ?ƒ�ャートã?å¹?¼‹ã?ージン?Šï¼?になりますã?
458 * 同様に、ラベル表記部のæ–?—ã?書きå?し位置もã?こã?、ã?ージンが適用されますã?
459 * ?ˆ文字ã?場合ã?、上下左右に適用され、チャート部は、上下ã?み適用されますã???
460 *
461 * 単位ã? px ですã???xは記述不要ですï¼?
462 * 初期値はã€?{@og.value #RECODE_MARGIN}" ですã?
463 *
464 * @param margin タイãƒ?ƒ�ャートã?マã?ジン
465 */
466 public void setMargin( final String margin ) {
467 putPxParam( "RECODE_MARGIN" , margin , RECODE_MARGIN );
468 }
469
470 /**
471 * 【TAG】行ã?æœ?¾Œã?æƒ??がã?継続してã�?‚‹として使ã�?�‹どã�?�‹[true/false]を指定しまã�?初期値:{@og.value #USE_LAST_DATA})ã€?
472 *
473 * @og.tag
474 * ãƒ??タはã€?–‹始時刻を与えられ、次のãƒ??タの開始時刻が前のãƒ??タの終äº?™‚刻として
475 * 処ç�?�—てã�?�¾すã?行ã?æœ?¾Œã?ãƒ??タは、表示ç¯?›²ã�?�£ぱã�?�¾で、続いてã�?‚‹と認識するå?合ã?ã€?
476 * こã?値ã‚?true としますã?つまりã?æœ?¾Œã?ãƒ??タは利用されますã?
477 * æœ?¾Œã?ãƒ??タがそこで処ç�?‚’停止したイベントã?場合ã?そã?ãƒ??タは使われませんã€?
478 * そã?場合ã?、false に設定しますã?イベント色としてはã€?不æ?"?ˆ空æ¬?¼�白色??として扱ã�?�¾すã?
479 *
480 * 初期値はã€?{@og.value #USE_LAST_DATA}" ですã?
481 *
482 * @og.rev 5.6.1.1 (2013/02/08) 新規追åŠ?
483 *
484 * @param useLastData タイãƒ?ƒ�ャートã?マã?ジン
485 */
486 public void setUseLastData( final String useLastData ) {
487 putPxParam( "USE_LAST_DATA" , useLastData , USE_LAST_DATA );
488 }
489
490 /**
491 * 【TAG】ラベル表記部のフォントをæŒ?®šします[PLAIN,BOLD,ITALIC,BOLD_ITALIC](初期値:{@og.value #FONT_STYLE})ã€?
492 *
493 * @og.tag
494 * ラベル表記部のフォントをæŒ?®šしますã?ここでは、PLAIN,BOLD,ITALIC,BOLD_ITALIC の中からしか選べませんã€?
495 *
496 * 初期値はã€?{@og.value #FONT_STYLE}" ですã?
497 *
498 * @param fontStyle Font クラスのスタイル定数[PLAIN,BOLD,ITALIC,BOLD_ITALIC]
499 */
500 // public void setFontStyle( final String fontStyle ) {
501 // String fStyle = nval( getRequestParameter( fontStyle ),FONT_STYLE );
502 // if( fStyle != null ) {
503 // try {
504 // ENUM_FONT_STYLE enumFont = ENUM_FONT_STYLE.valueOf( fStyle );
505 // putParam( "FONT_STYLE" , enumFont.getStyle() );
506 // }
507 // catch( IllegalArgumentException ex ) {
508 // String errMsg = "フォント名は、以下ã?ç¯?›²でæŒ?®šしてくださいã€?"
509 // + Arrays.toString( ENUM_FONT_STYLE.values() ) + "]"
510 // + HybsSystem.CR
511 // + " fontStyle=" + fontStyle ;
512 // throw new HybsSystemException( errMsg,ex );
513 // }
514 // }
515 // }
516
517 /**
518 * 【TAG】ラベル表記部のフォントサイズを指定しまã�?初期値:{@og.value #FONT_SIZE})ã€?
519 *
520 * @og.tag
521 * ラベル表記部のフォントサイズを指定しますã?
522 *
523 * 初期値はã€?{@og.value #FONT_SIZE}" ですã?
524 *
525 * @param fontSize フォントサイズ
526 */
527 // public void setFontSize( final String fontSize ) {
528 // putParam( "FONT_SIZE" , nval( getRequestParameter( fontSize ),FONT_SIZE ) );
529 // }
530
531 /**
532 * 引数の "px" æ–?—å?を取り除くå?通メソãƒ?ƒ‰ã€?
533 *
534 * æŒ?®šã?パラメータにã€?px" æ–?—å?を含ã‚??合ã?"px"æ–?—å?以降を削除しますã?
535 * HTML上には、px を付けた方がå?かりã‚?�™ã�?‚±ースがè?えられるためですã?
536 * ここでは、putParam( String , String ) するためにå¿?¦�な、キー、å?期å?も指定する事でã€?
537 * 呼び出しå?の処ç�?‚’簡ç´?Œ–しますã?
538 * こã?処ç�?�§は、val 引数をã?getRequestParameter 処ç�?�—、結果をã?nval で 初期値設定したあとã€?
539 * null 判定で、null でなければ、putParam にセãƒ?ƒˆする処ç�?‚’おこなã�?�¾すã?
540 * こã?処ç�??中でã€?px" 削除処ç�?‚’おこなã�?�¾すã?
541 *
542 * @param key putParam する場合ã?キー
543 * @param val "px"æ–?—å?があれã?、取り除く引数ã€?
544 * @param def 引数ã�?null の場合ã?、å?期å?
545 * @see #putParam( String , String )
546 */
547 private void putPxParam( final String key , final String val , final String def ) {
548 String tmp = nval( getRequestParameter( val ),def );
549 if( tmp != null ) {
550 int idx = tmp.indexOf( "px" );
551 if( idx > 0 ) { tmp = tmp.substring( 0,idx ); }
552
553 putParam( key , tmp );
554 }
555 }
556
557 /**
558 * タグの名称をã?返しますã?
559 * 自åˆ??身のクラス名よりã?自動的に取り出せなã�?�Ÿめã?こã?メソãƒ?ƒ‰をオーバã?ライドしますã?
560 *
561 * @return タグの名称
562 */
563 @Override
564 protected String getTagName() {
565 return "timeBarParam" ;
566 }
567
568 /**
569 * シリアライズ用のカスタãƒ?‚·リアライズ書き込みメソãƒ?ƒ‰
570 *
571 * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
572 *
573 * @param strm ObjectOutputStreamオブジェクãƒ?
574 * @throws IOException 入出力エラーが発生したå?å�?
575 */
576 private void writeObject( final ObjectOutputStream strm ) throws IOException {
577 strm.defaultWriteObject();
578 }
579
580 /**
581 * シリアライズ用のカスタãƒ?‚·リアライズ読み込みメソãƒ?ƒ‰
582 *
583 * ここでは、transient 宣è¨?�•れたå†?ƒ¨変数のå†??初期化がå¿?¦�なフィールドã?み設定しますã?
584 *
585 * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
586 *
587 * @param strm ObjectInputStreamオブジェクãƒ?
588 * @see #release2()
589 * @throws IOException シリアライズに関する入出力エラーが発生したå?å�?
590 * @throws ClassNotFoundException クラスを見つけることができなかったå?å�?
591 */
592 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
593 strm.defaultReadObject();
594 }
595 }