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 = "HTMLCalendar"</b>
056 * command = "{@command}"
057 * startNo = "0"
058 * pageSize = "20"
059 * <b>useParam = "true"</b>
060 * >
061 * <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 * />
071 * </og:view >
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 }