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             * @throws IOException  入出力エラーが発生したå?å�?
244             */
245            private void writeObject( final ObjectOutputStream strm ) throws IOException {
246                    strm.defaultWriteObject();
247            }
248    
249            /**
250             * シリアライズ用のカスタãƒ?‚·リアライズ読み込みメソãƒ?ƒ‰
251             *
252             * ここでは、transient 宣è¨?�•れたå†?ƒ¨変数のå†??初期化がå¿?¦�なフィールドã?み設定しますã?
253             *
254             * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
255             * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
256             *
257             * @param       strm    ObjectInputStreamオブジェクãƒ?
258             * @see #release2()
259             * @throws IOException  シリアライズに関する入出力エラーが発生したå?å�?
260             * @throws ClassNotFoundException       クラスを見つけることができなかったå?å�?
261             */
262            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
263                    strm.defaultReadObject();
264            }
265    }