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.html.ViewCalendarParam;
019    
020    import static org.opengion.fukurou.util.StringUtil.nval ;
021    
022    import java.io.ObjectOutputStream;
023    import java.io.ObjectInputStream;
024    import java.io.IOException;
025    
026    /**
027     * viewã‚¿ã‚°ã® viewFormType ã?HTMLCalendar ã®å ´åˆã«ãƒ‘ラメータを設定ã—ã¾ã™ã?
028     *
029     * カレンãƒ??を表示ã™ã‚‹ã€ViewForm_HTMLCalendar クラスã«å¯¾ã—ã¦ã€å„種パラメータã‚?
030     * 設定ã—ã¾ã™ã?
031     * パラメータãŒè¨­å®šã•れã¦ã?ªã??åˆã?ã€ViewCalendarParam ã®åˆæœŸå€¤ãŒä½¿ç”¨ã•れã¾ã™ã?
032     * (パラメータを使用ã™ã‚‹ã«ã¯ã€viewã‚¿ã‚°ã®useParam 属æ?ã‚’trueã«è¨­å®šã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?)
033     *
034     * @og.formSample
035     * â—å½¢å¼ï¼?lt;og:calendarParam ymKey="YYYYMM" dayKey="DY" firstWeek="0" />
036     * â—body?šãªã?
037     *
038     * â—Tag定義??
039     *   <og:calendarParam
040     *       viewKeys           ã€TAG】行ã?キーã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã‚’è¤?•°æŒ?®šã—ã¾ã?事業æ‰?‚„WCãªã©)
041     *       ymKey              ã€TAG】行ã?キーã¨ãªã‚‹å¹´æœˆã‚’表ã™ã‚«ãƒ©ãƒ?を指定ã—ã¾ã?
042     *       dayKey             ã€TAG】日付ã‘(休日フラグ)ã®ã‚­ãƒ¼ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã?DY1 ??DY31)
043     *       valueKey           ã€TAG】データã®å€¤ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤ã¯ä½¿ç”¨ã—ã¾ã›ã‚“)
044     *       valueBRFlag        ã€TAG】データã®å€¤ã‚’使用ã™ã‚‹å ´åˆã«ã€æ—¥ä»˜ã‘ã¨ã®é–¢ä¿‚ã§ã€BR ã‚’å?れるã‹ã©ã?‹æŒ?®šã—ã¾ã?
045     *       firstWeek          ã€TAG】カレンãƒ?¡¨ç¤ºã®é€±ã®åˆã‚を指定ã—ã¾ã? 0ã¯ã€æ—¥æ›œæ—¥ã‹ã‚‰ã€?ã¯æœˆæ›œæ—¥ã‹ã‚‰)
046     *       headerLocale       ã€TAG】é?表示ヘッãƒ??を表示ã™ã‚‹æ™‚ã?ã€Locale(language ã®ã¿) を指定ã—ã¾ã?
047     *       columnSize         ã€TAG】カレンãƒ?‚’横ã«ä¸¦ã¹ã‚‹å?åˆã?æ•°é‡ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤: 3)
048     *       debug              ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
049     *   />
050     *
051     * â—使用ä¾?
052     *     ViewFormTag ã® viewFormType ãŒã?ViewCalendarParam ã®å ´åˆã«ä½¿ç”¨ã—ã¾ã™ã?
053     *     useParam 属æ?を設定ã—ã¦ãŠã‹ãªã?¨ã€ä½¿ç”¨ã•れã¾ã›ã‚“ã€?
054     *     <og:view
055     *         <b>viewFormType = &quot;HTMLCalendar&quot;</b>
056     *         command      = &quot;{&#064;command}&quot;
057     *         startNo      = &quot;0&quot;
058     *         pageSize     = &quot;20&quot;
059     *         <b>useParam     = &quot;true&quot;</b>
060     *     &gt;
061     *         &lt;og:calendarParam
062     *              viewKeys     = "CDJGS"
063     *              ymKey        = "YYYYMM"
064     *              dayKey       = "DY"
065     *              valueKey     = ""
066     *              valueBRFlag  = "true"
067     *              firstWeek    = "0"
068     *              headerLocale = "en"
069     *              columnSize   = "3"
070     *         /&gt;
071     *     &lt;/og:view &gt;
072     *
073     * @og.rev 3.5.6.0 (2004/06/18) æ–°è¦ä½œæ?
074     * @og.group ç”»é¢è¡¨ç¤º
075     *
076     * @version  4.0
077     * @author       Kazuhiko Hasegawa
078     * @since    JDK5.0,
079     */
080    public class ViewCalendarParamTag extends ViewParamTag {
081            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
082            private static final String VERSION = "4.0.0.0 (2006/09/31)" ;
083    
084            private static final long serialVersionUID = 400020060931L ;
085    
086            /**
087             * ã€TAG】行ã?キーã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã‚’è¤?•°æŒ?®šã—ã¾ã?事業æ‰?‚„WCãªã©)ã€?
088             *
089             * @og.tag
090             * エンジン標準カレンãƒ?GE13)ã§ã¯ã€å¹´æœ?YYYYMM)ã¨äº‹æ¥­æ‰?‚³ãƒ¼ãƒ?CDJGS)
091             * ã§ãƒ¦ãƒ‹ã?クキーã«ãªã‚Šã¾ã™ã?ã¾ãŸã?能力カレンãƒ?ªã©ã§ã¯ã€äº‹æ¥­æ‰??ワークセンタ
092             * ã§ã€ãƒ¦ãƒ‹ã?クã«ãªã‚Šã¾ã™ã?
093             * ãれらã?キーé ?›®ã‚’ç·¨é›?§ãるよã†ã«ã€ã‚«ãƒ©ãƒ?‚’カンマ区åˆ?‚Šã§æŒ?®šã—ã¾ã™ã?
094             *
095             * @og.rev 3.5.6.0 (2004/06/18) æ–°è¦ä½œæ?
096             *
097             * @param       viewKeys 行ã?キーã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã‚’è¤?•°æŒ?®?
098             */
099            public void setViewKeys( final String viewKeys ) {
100                    putParam( ViewCalendarParam.VIEW_KEYS ,
101                                       nval( getRequestParameter( viewKeys ),null ) );
102            }
103    
104            /**
105             * ã€TAG】行ã?キーã¨ãªã‚‹å¹´æœˆã‚’表ã™ã‚«ãƒ©ãƒ?を指定ã—ã¾ã™ã?
106             *
107             * @og.tag
108             * ç¾ã‚«ãƒ¬ãƒ³ãƒ??ã¯ã€å¹´æœˆæ¯Žã«ã€?¼“1å?ã®æ—¥ä»˜ã‘フィールドをæŒã£ãŸãƒ‡ãƒ¼ã‚¿ã‚?
109             * 剿ã¨ã—ã¦ã?¾ã™ã?工場ã‚?º‹æ¥­æ‰?ªã©ã®åŒºåˆ??ã€å–得時ã«ã¯ç¢ºå®šã•ã›ã¦ãŠãå¿?¦ãŒã‚りã¾ã™ã?
110             * åˆæœŸå€¤ã¯ã€ViewCalendarParam ã«ä¾å­˜ã—ã¾ã™ã?(例:YYYYMM)
111             *
112             * @param       ymKey 行ã?キーã¨ãªã‚‹å¹´æœˆã‚’表ã™ã‚«ãƒ©ãƒ?
113             */
114            public void setYmKey( final String ymKey ) {
115                    putParam( ViewCalendarParam.YM_KEY ,
116                                      nval( getRequestParameter( ymKey ),null ) );
117            }
118    
119            /**
120             * ã€TAG】日付ã‘(休日フラグ)ã®ã‚­ãƒ¼ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã?DY1 ??DY31)ã€?
121             *
122             * @og.tag
123             * カレンãƒ??を表示ã™ã‚‹å ´åˆã?ã€å„æ—¥ä»˜ã‘æ¬??カラãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã™ã?
124             * ç¾ã‚«ãƒ¬ãƒ³ãƒ??ã¯ã€å¹´æœˆæ¯Žã«ã€?¼“1å?ã®æ—¥ä»˜ã‘フィールドをæŒã£ãŸãƒ‡ãƒ¼ã‚¿ã‚?
125             * 剿ã¨ã—ã¦ã?¾ã™ã?よã£ã¦ã€ã“ã®ã‚«ãƒ©ãƒ?(英字部åˆ??‹æ—¥ä»˜ã‘(?‘~3ï¼?ã‚?
126             * å‹•çš„ã«ä½œæ?ã—ã¦ã€æ—¥ä»˜ã‘カラãƒ?¨ã—ã¦å–å¾—ã—ã¾ã™ã?
127             * 例ãˆã°ã€?DY" ã¨ã?†æ–?­—ã‚’æŒ?®šã—ãŸå?åˆã?DY1 ??DY31 ã®ã‚«ãƒ©ãƒ?ã‚?
128             * 使用ã—ã¦ã€æ¤œç´¢çµæžœã® DBTableModel より値をå–å¾—ã—ã¾ã™ã?
129             * åˆæœŸå€¤ã¯ã€ViewCalendarParam ã«ä¾å­˜ã—ã¾ã™ã?(例:DY)
130             *
131             * @param       dayKey 日付ã‘(休日フラグ)ã®ã‚­ãƒ¼ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?
132             */
133            public void setDayKey( final String dayKey ) {
134                    putParam( ViewCalendarParam.DAY_KEY ,
135                                      nval( getRequestParameter( dayKey ),null ) );
136            }
137    
138            /**
139             * ã€TAG】データã®å€¤ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤ã¯ä½¿ç”¨ã—ã¾ã›ã‚“)ã€?
140             *
141             * @og.tag
142             * カレンãƒ??を表示ã™ã‚‹å ´åˆã?ã€å„æ—¥ä»˜ã‘æ¬??値ã®ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã™ã?
143             * ç¾ã‚«ãƒ¬ãƒ³ãƒ??ã¯ã€å¹´æœˆæ¯Žã«ã€?¼“1å?ã®å€¤ãƒ•ィールドをæŒã£ãŸãƒ‡ãƒ¼ã‚¿ã‚?
144             * 剿ã¨ã—ã¦ã?¾ã™ã?よã£ã¦ã€ã“ã®ã‚«ãƒ©ãƒ?(英字部åˆ??‹æ—¥ä»˜ã‘(?‘~3ï¼?ã‚?
145             * å‹•çš„ã«ä½œæ?ã—ã¦ã€å?カラãƒ?¨ã—ã¦å–å¾—ã—ã¾ã™ã?
146             * 例ãˆã°ã€?VAL" ã¨ã?†æ–?­—ã‚’æŒ?®šã—ãŸå?åˆã?VAL1 ??VAL31 ã®ã‚«ãƒ©ãƒ?ã‚?
147             * 使用ã—ã¦ã€æ¤œç´¢çµæžœã® DBTableModel より値をå–å¾—ã—ã¾ã™ã?
148             * åˆæœŸå€¤ã¯ã€ViewCalendarParam ã«ä¾å­˜ã—ã¾ã™ã?(例:使用ã—ã¦ã?¾ã›ã‚“)
149             *
150             * @param       valueKey ãƒ??ã‚¿ã®å€¤ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤ã¯ä½¿ç”¨ã—ã¾ã›ã‚“)
151             */
152            public void setValueKey( final String valueKey ) {
153                    putParam( ViewCalendarParam.VALUE_KEY ,
154                                      nval( getRequestParameter( valueKey ),null ) );
155            }
156    
157            /**
158             * ã€TAG】データã®å€¤ã‚’使用ã™ã‚‹å ´åˆã«ã€æ—¥ä»˜ã‘ã¨ã®é–¢ä¿‚ã§ã€BR ã‚’å?れるã‹ã©ã?‹æŒ?®šã—ã¾ã™ã?
159             *
160             * @og.tag
161             * ãƒ??タを表示ã™ã‚‹å ´åˆã?日付ã‘ã®æ¨ªã«ã¤ã‘ã‚‹ã‹ã?日付ã‘ã®ä¸‹ã«ä»˜ã‘ã‚‹ã‹ã‚’指定ã—ã¾ã™ã?
162             * ãŸã ã—ã?valueKey ã§ã€å?カラãƒ?‚’æŒ?®šã—ãŸå?åˆã?ã¿ã€æœ‰åйã«ãªã‚Šã¾ã™ã?
163             * åˆæœŸå€¤ã¯ã€ViewCalendarParam ã«ä¾å­˜ã—ã¾ã™ã?(例:true)
164             *
165             * @param       valueBRFlag 日付ã‘(休日フラグ)ã®ã‚­ãƒ¼ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã®è‹±å­—部åˆ?
166             */
167            public void setValueBRFlag( final String valueBRFlag ) {
168                    putParam( ViewCalendarParam.VALUE_BR_FLAG_KEY ,
169                                      nval( getRequestParameter( valueBRFlag ),null ) );
170            }
171    
172            /**
173             * ã€TAG】カレンãƒ?¡¨ç¤ºã®é€±ã®åˆã‚を指定ã—ã¾ã? 0ã¯ã€æ—¥æ›œæ—¥ã‹ã‚‰ã€?ã¯æœˆæ›œæ—¥ã‹ã‚‰)ã€?
174             *
175             * @og.tag
176             * カレンãƒ??週表示ã§ã€ã©ã®æ›œæ—¥ã‹ã‚‰è¡¨ç¤ºã‚’å§‹ã‚ã‚‹ã‹ã‚’指定ã—ã¾ã™ã?
177             * 0ã¯ã€æ—¥æ›œæ—¥ã‹ã‚‰ã€?ã¯æœˆæ›œæ—¥ã‹ã‚‰è¡¨ç¤ºã‚’é–‹å§‹ã—ã¾ã™ã?
178             * åˆæœŸå€¤ã¯ã€ViewCalendarParam ã«ä¾å­˜ã—ã¾ã™ã?(例ï¼? 日曜日ã‹ã‚‰)
179             *
180             * @param       firstWeek カレンãƒ?¡¨ç¤ºã®é€±ã®åˆã‚
181             */
182            public void setFirstWeek( final String firstWeek ) {
183                    putParam( ViewCalendarParam.FIRSTWEEK_KEY ,
184                                       nval( getRequestParameter( firstWeek ),null ) );
185            }
186    
187            /**
188             * ã€TAG】é?表示ヘッãƒ??を表示ã™ã‚‹æ™‚ã?ã€Locale(language ã®ã¿) を指定ã—ã¾ã™ã?
189             *
190             * @og.tag
191             * ç¾å®Ÿè£?§ã¯ã€?ja" 㨠"en" ã®ã¿æŒ?®šå¯èƒ½ã§ã™ã?
192             * å°?¥çš?«ã¯ã€SimpleDateFormat を使用ã—ã?多è¨?ªžå¯¾å¿œã—ã¾ã™ãŒã€ç¾æ®µéšŽã§ã¯ã€?
193             * (æ—¥ã€æœˆã€ç«ã€æ°´ã€æœ¨ã€?ßã€åœŸ)ã¨ã€?SUN,MON,TUE,WED,THU,FRI,SAT)ã®
194             * ?’種類をåˆ?‚Šæ›¿ãˆã¦ã?‚‹ã?‘ã§ã™ã?
195             * ã©ã®æ›œæ—¥ã‹ã‚‰è¡¨ç¤ºã‚’å§‹ã‚ã‚‹ã‹ã¯ã€firstWeek 属æ?ã§è¨­å®šã—ã¾ã™ã?
196             * åˆæœŸå€¤ã¯ã€ViewCalendarParam ã«ä¾å­˜ã—ã¾ã™ã?(例ï¼?en")
197             *
198             * @param       headerLocale ヘッãƒ??ã® Locale(language ã®ã¿)
199             */
200            public void setHeaderLocale( final String headerLocale ) {
201                    putParam( ViewCalendarParam.HEADER_LOCALE_KEY ,
202                                       nval( getRequestParameter( headerLocale ),null ) );
203            }
204    
205            /**
206             * ã€TAG】カレンãƒ?‚’横ã«ä¸¦ã¹ã‚‹å?åˆã?æ•°é‡ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤: 3)ã€?
207             *
208             * @og.tag
209             * カレンãƒ?‚’è¤?•°ä¸¦ã¹ã‚‹å?åˆã?横方å‘ã?件数を指定ã—ã¾ã™ã?
210             * ?‘年を表ã™å?åˆã??“*ï¼?ã‚??’*ï¼?ã®ã‚«ãƒ¬ãƒ³ãƒ?Œä¸?ˆ¬çš?§ã™ã?
211             * ã“ã“ã§ã¯ã€æ¨ªæ–¹å??“ã‚„??ã®ä»¶æ•°ã‚’指定ã™ã‚‹ã“ã¨ã§ã€ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’
212             * æŒ?®šã—ã¾ã™ã?
213             *
214             * @og.rev 3.5.6.0 (2004/06/18) æ–°è¦ä½œæ?
215             *
216             * @param       columnSize カレンãƒ?‚’横ã«ä¸¦ã¹ã‚‹å?åˆã?æ•°é‡?åˆæœŸå€¤: 3)
217             */
218            public void setColumnSize( final String columnSize ) {
219                    putParam( ViewCalendarParam.COLUMN_SIZE_KEY ,
220                                       nval( getRequestParameter( columnSize ),null ) );
221            }
222    
223            /**
224             * ã‚¿ã‚°ã®åç§°ã‚’ã?è¿”ã—ã¾ã™ã?
225             * 自åˆ??身ã®ã‚¯ãƒ©ã‚¹åよりã?自動的ã«å–り出ã›ãªã?Ÿã‚ã?ã“ã?メソãƒ?ƒ‰ã‚’オーãƒã?ライドã—ã¾ã™ã?
226             *
227             * @og.rev 4.0.0.0 (2005/01/31) æ–°è¦è¿½åŠ?
228             *
229             * @return  ã‚¿ã‚°ã®åç§°
230             */
231            @Override
232            protected String getTagName() {
233                    return "calendarParam" ;
234            }
235    
236            /**
237             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
238             *
239             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
240             * @serialData
241             *
242             * @param       strm    ObjectOutputStreamオブジェク�
243             */
244            private void writeObject( final ObjectOutputStream strm ) throws IOException {
245                    strm.defaultWriteObject();
246            }
247    
248            /**
249             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèª­ã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
250             *
251             * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨­å®šã—ã¾ã™ã?
252             *
253             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
254             * @serialData
255             *
256             * @param       strm    ObjectInputStreamオブジェク�
257             * @see #release2()
258             */
259            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
260                    strm.defaultReadObject();
261            }
262    }