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     * 出æ¥ã¾ã›ã‚“ã®ã§ã€ã”注æ„ãã?•ã??<br/>
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ç”»åƒåŒ–ã—ã¾ã™ã?<br/>
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" />
080     *
081     * @og.formSample
082     * â—å½¢å¼ï¼?lt;og:timeBarParam startDate="?¥?¥?¥" timeSpan="?¥?¥?¥" ?¥?¥?¥ /&gt;
083     * â—body?šãªã?
084     *
085     * â—Tag定義??
086     *   &lt;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     *   /&gt;
102     *
103     * â—使用ä¾?
104     *     ViewFormTag ã® viewFormType ãŒã?ImageTimeBar ã®å ´åˆã«ä½¿ç”¨ã—ã¾ã™ã?
105     *     useParam 属æ?を設定ã—ã¦ãŠã‹ãªã?¨ã€ä½¿ç”¨ã•れã¾ã›ã‚“ã€?
106     *     &lt;og:view
107     *         viewFormType = "ImageTimeBar"
108     *         command      = "{&#064;command}"
109     *         <b>useParam     = "true"</b>
110     *     &gt;
111     *         &lt;og:timeBarParam
112     *             startDate   = "{&#064;DYFROM}"
113     *             timeSpan    = "24"
114     *         /&gt;
115     *     &lt;/og:view &gt;
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             * 表示開始日時を起点ã¨ã—ã¦ã€ã‚¿ã‚¤ãƒ?ƒ†ãƒ¼ãƒ–ルを表示ã—ã¾ã™ã?<br/>
216             * 実際ã«ç”»é¢ã«è¡¨ç¤ºã•れるã?ã¯ã€?–‹å§‹æ™‚刻ã‹ã‚‰çµ‚äº?™‚刻ã®ç¯?›²å†? ã‘ã§ã™ãŒã€?
217             * 起点ã¯ã€ã“ã®æ—¥æ™‚ã«ãªã‚Šã¾ã™ã?
218             * 
219             * æŒ?®šæ–¹æ³•ã¨ã—ã¦ã€ãƒ•ォーマットã•ã‚ŒãŸæ—¥ä»˜ã?時刻æƒ??も設定å¯èƒ½ã§ã™ã??ˆå?部çš?«å‡¦ç?—ã¾ã™ï¼?
220             * ã¾ãŸã?処ç?¾?例ï¼?0120824102823?‰ï¼‘4ケタ以上ã?å ´åˆã?ã€?¼‘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             * å°æ•°ç‚¹ã¯æŒ?®šã§ãã¾ã›ã‚“。ã¾ãŸã??‘ï¼æ—¥ãªã‚‰ã?"240" ã€?¼‘ã‹æœˆï¼ˆï¼“ï¼æ—¥?‰ãªã‚‰ã?"720"
255             * ?‘å¹´?ˆï¼“65日?‰ãªã‚‰ã?"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             * æ™‚é–“è»¸ã®æ›¸ãå§‹ã‚ã®æ™‚刻(自åˆ??身をå«ã‚?™‚åˆ?¼”æ¡?を指定ã—ã¾ã™ã?<br/>
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             * æ™‚é–“è»¸ã®æœ?¾Œã?時刻(自åˆ??身をå«ã¾ãªã?™‚åˆ?¼”æ¡?を指定ã—ã¾ã™ã?<br/>
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 å½¢å¼ã? ?‘ï¼–é?æ–?­—å?を与ãˆã‚‹ã“ã¨ã§ã€ä»»æ„ã?色を指定å¯èƒ½ã§ã™ã?
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 ã§è¡¨ç¤ºã™ã‚Œã°ã€?¼‘時é–??•ï¼px ã«ãªã‚Šã¾ã™ã—ã€?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?Šï¼’)ã?
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             */
575            private void writeObject( final ObjectOutputStream strm ) throws IOException {
576                    strm.defaultWriteObject();
577            }
578    
579            /**
580             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèª­ã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
581             *
582             * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨­å®šã—ã¾ã™ã?
583             *
584             * @serialData
585             *
586             * @param       strm    ObjectInputStreamオブジェク�
587             * @see #release2()
588             */
589            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
590                    strm.defaultReadObject();
591            }
592    }