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.ViewGanttTableParam;
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 ã�?HTMLGanttTable の場合にパラメータを設定しますã?
028 *
029 * ガントチャートを表示する、ViewForm_HTMLGanttTable クラスに対して、各種パラメータã‚?
030 * 設定しますã?
031 * パラメータが設定されてã�?�ªã�??合ã?、ViewGanttTableParam の初期値ã�?
032 * 使用されますã?
033 * (パラメータを使用するには、viewタグのuseParam 属æ?をtrueに設定するå¿?¦�がありますã?)
034 *
035 * @og.formSample
036 * ●形式ï¼?lt;og:ganttParam groupColumns="PRJCODE,RESOURCE_ID" minDuration="0.5" />
037 * ●body?šなã�?
038 *
039 * ●Tag定義??
040 * <og:ganttParam
041 * groupColumns 【TAG】各タスクを1行にまとめる時ã?カラãƒ?��(カンマ区åˆ?‚Š)をセãƒ?ƒˆしまã�?(初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[=PRJCODE,RESOURCE_ID])
042 * durationColumn 【TAG】期間æ¬??カラãƒ?��をセãƒ?ƒˆしまã�?
043 * dystartColumn 【TAG】開始日付けのカラãƒ?��をセãƒ?ƒˆしまã�?(初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[=DYSTART])
044 * dystartFormat 【TAG】開始日付けのフォーマットをæŒ?®šしまã�?(初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[=yyyyMMdd])
045 * minDuration 【TAG】最小期é–?少数可)をセãƒ?ƒˆしまã�?初期値:1)
046 * headerDuration 【TAG】ã?ãƒ?ƒ€ーの表示期間(少数可)をセãƒ?ƒˆしまã�?初期値:æœ?°�期é–?minDuration) と同じ)
047 * headerLocale 【TAG】ã?ãƒ?ƒ€ーを表示する時ã?、Locale(language のみ) を指定しまã�?(初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[=ja])
048 * useSeqDay 【TAG】ã?ãƒ?ƒ€ー日付けの連続表示を行うかどã�?�‹[true/false]を指定しまã�?初期値:false)
049 * startDay 【TAG】ã?ãƒ?ƒ€ー日付けの開始日を指定しまã�?
050 * endDay 【TAG】ã?ãƒ?ƒ€ー日付けの終äº?—¥を指定しまã�?
051 * debug 【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
052 * />
053 *
054 * ●使用ä¾?
055 * ViewFormTag の viewFormType がã?ViewForm_HTMLGanttTable の場合に使用しますã?
056 * <og:view
057 * viewFormType = "HTMLGanttTable"
058 * command = "{@command}"
059 * startNo = "0"
060 * pageSize = "20"
061 * <b>useParam = "true"</b>
062 * >
063 * <og:ganttParam
064 * groupColumns = "PRJCODE,RESOURCE_ID"
065 * durationColumn = "DURATION"
066 * dystartColumn = "DYSTART"
067 * dystartFormat = "yyyyMMdd"
068 * minDuration = "0.5"
069 * headerDuration = "1"
070 * headerLocale = "en"
071 * useSeqDay = "true"
072 * startDay = "20041020"
073 * endDay = "20041028"
074 * />
075 * </og:view >
076 *
077 * @og.rev 3.5.5.8 (2004/05/20) 新規作æ?
078 * @og.group 画面表示
079 *
080 * @version 4.0
081 * @author Kazuhiko Hasegawa
082 * @since JDK5.0,
083 */
084 public class ViewGanttParamTag extends ViewParamTag {
085 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
086 private static final String VERSION = "4.0.0.0 (2006/09/31)" ;
087
088 private static final long serialVersionUID = 400020060931L ;
089
090 /**
091 * 【TAG】各タスクを1行にまとめる時ã?カラãƒ?��(カンマ区åˆ?‚Š)をセãƒ?ƒˆしまã�?
092 * (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[={@og.value ViewGanttTableParam#GROUP_COLUMNS_VALUE}])ã€?
093 *
094 * @og.tag
095 * ガントチャートで、同ä¸?¦�件のタスクを1行にまとめて表示しますã?
096 * そã?場合ã?グルーピングのキーとなるカラãƒ?��を指定しますã?
097 * è¤?•°ある場合ã?、カンマ区åˆ?‚ŠでæŒ?®šできますã?
098 * 日付けでの重è¤??è€??されてã�?�¾せんので、データ側でチェãƒ?‚¯しておいて下さã�??
099 * (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[={@og.value ViewGanttTableParam#GROUP_COLUMNS_VALUE}])ã€?
100 *
101 * @param groupColumns ãƒ??タを1行にまとめる時ã?カラãƒ?��(カンマ区åˆ?‚Š)
102 * @see org.opengion.hayabusa.html.ViewGanttTableParam#GROUP_COLUMNS_VALUE
103 */
104 public void setGroupColumns( final String groupColumns ) {
105 putParam( ViewGanttTableParam.GROUP_COLUMNS_KEY ,
106 nval( getRequestParameter( groupColumns ),null ) );
107 }
108
109 /**
110 * 【TAG】期間æ¬??カラãƒ?��をセãƒ?ƒˆしますã?
111 *
112 * @og.tag
113 * ガントを表示する場合ã?、各タスクのå¹?期間)のカラãƒ?��を指定しますã?
114 * å�?‚¿スクはã€?–‹始日と期間より、ガントã?æŒ?®šã?ロケーションに割り当てられますã?
115 * 初期値は null ですã?
116 *
117 * @param durationColumn 期間æ¬??カラãƒ?��をセãƒ?ƒˆしますã?
118 */
119 public void setDurationColumn( final String durationColumn ) {
120 putParam( ViewGanttTableParam.DURATION_COLUMN_KEY ,
121 nval( getRequestParameter( durationColumn ),null ) );
122 }
123
124 /**
125 * 【TAG】開始日付けのカラãƒ?��をセãƒ?ƒˆしまã�?
126 * (初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[={@og.value ViewGanttTableParam#DYSTART_COLUMN_VALUE}])ã€?
127 *
128 * @og.tag
129 * ガントを表示する場合ã?、各タスクの開始日付けのカラãƒ?��を指定しますã?
130 * å�?‚¿スクはã€?–‹始日と期間より、ガントã?æŒ?®šã?ロケーションに割り当てられますã?
131 * (初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[={@og.value ViewGanttTableParam#DYSTART_COLUMN_VALUE}])ã€?
132 *
133 * @param dystartColumn 開始日付けのカラãƒ?��(初期値:DYSTART)
134 */
135 public void setDystartColumn( final String dystartColumn ) {
136 putParam( ViewGanttTableParam.DYSTART_COLUMN_KEY ,
137 nval( getRequestParameter( dystartColumn ),null ) );
138 }
139
140 /**
141 * 【TAG】開始日付けのフォーマットをæŒ?®šしまã�?
142 * (初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[={@og.value ViewGanttTableParam#DYSTART_FORMAT_VALUE}])ã€?
143 *
144 * @og.tag
145 * ガントã?開始日ä»?ãƒ??タを取り込ã‚?�¨きã?日付けフォーマットをæŒ?®šしますã?
146 * こã?形式ã?日付けæ–?—å?をã?å†?ƒ¨で、日付けãƒ??タとして管ç�?�—ますã?
147 * java.text.SimpleDateFormat でæŒ?®šできる形式をæŒ?®šしますã?
148 * (初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[={@og.value ViewGanttTableParam#DYSTART_FORMAT_VALUE}])ã€?
149 *
150 * @param dystartFormat 開始日付けのフォーマッãƒ?
151 * @see java.text.SimpleDateFormat
152 */
153 public void setDystartFormat( final String dystartFormat ) {
154 putParam( ViewGanttTableParam.DYSTART_FORMAT_KEY ,
155 nval( getRequestParameter( dystartFormat ),null ) );
156 }
157
158 /**
159 * 【TAG】最小期é–?少数可)をセãƒ?ƒˆしまã�?
160 * (初期値:ViewGanttTableParam#MIN_DURATION_VALUE[={@og.value ViewGanttTableParam#MIN_DURATION_VALUE}])ã€?
161 *
162 * @og.tag
163 * Duration でæŒ?®šする期間ã?æœ?°�単位をæŒ?®šしますã?
164 * 例えばã€?¼‘日単位ã?精度でタスクを割り当てるå?合ã?期間のæœ?°�単位ã?ã€?¼?に
165 * なりますã?表示する場合も、この数字がæœ?°�単位となりã?HTMLのãƒ??ブルの
166 * ?‘カラãƒ?�«相当しますã?例えば、最小単位をã€?¼�.ï¼?にするとã€?
167 * 半日単位でタスクを割り当てることができますã??‘ï¼?にするとã€?¼‘0日単ä½?
168 * になりますã?
169 * (初期値:ViewGanttTableParam#MIN_DURATION_VALUE[={@og.value ViewGanttTableParam#MIN_DURATION_VALUE}])ã€?
170 *
171 * @param minDuration 列合計ã?カラãƒ?�«表示するラベルID
172 */
173 public void setMinDuration( final String minDuration ) {
174 putParam( ViewGanttTableParam.MIN_DURATION_KEY ,
175 nval( getRequestParameter( minDuration ),null ) );
176 }
177
178 /**
179 * 【TAG】ã?ãƒ?ƒ€ーの表示期間(少数可)をセãƒ?ƒˆしまã�?初期値:æœ?°�期é–?minDuration) と同じ)ã€?
180 *
181 * @og.tag
182 * ヘッãƒ??部の日付けæ¬?�§æŒ?®šする表示間隔を指定しますã?
183 *
184 * 例えば、最小期é–?minDuration)をã??�.5日単位ã?精度でæŒ?®šしたå?合ã?
185 * そã?ままでは、ã?ãƒ?ƒ€ーも最小期間単位で表示されますがã€?¼‘日単位で表示
186 * させたい場合ã?ã€?¼?を設定しますã?
187 * またã??‘é?間単位ではã€?¼?を指定しますã?
188 * ?‘ヶ月単位などの、不定長でのæŒ?®šã?できませんã€?
189 * 初期値はæœ?°�期é–?minDuration) と同じですã?
190 *
191 * @param headerDuration ヘッãƒ??の表示期間(少数可)
192 */
193 public void setHeaderDuration( final String headerDuration ) {
194 putParam( ViewGanttTableParam.HEADER_DURATION_KEY ,
195 nval( getRequestParameter( headerDuration ),null ) );
196 }
197
198 /**
199 * 【TAG】ã?ãƒ?ƒ€ーを表示する時ã?、Locale(language のみ) を指定しまã�?
200 * (初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[={@og.value ViewGanttTableParam#HEADER_LOCALE_VALUE}])ã€?
201 *
202 * @og.tag
203 * ヘッãƒ??部の日付けæ¬?�§ SimpleDateFormat を用ã�?�¦解析してã�?�¾すがã€?
204 * こã? Locale (language のみ)を指定できますã?
205 *
206 * language は、有効な ISO è¨?ªžコードですã?
207 * これらã?コードã?、ISO-639 で定義されã‚?2 桁ã?小文字ですã?
208 * コードã?完å?なリストã?ã€?
209 * <a href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">
210 * http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt </a>
211 * を始めã�?��つかã?場æ‰?�§入手できますã?
212 * SimpleDateFormat の Locale を指定するコンストラクタでは、å?ての
213 * ロケールをサポã?トするわけではありませんのでご注意くã�?�•ã�??
214 * (初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[={@og.value ViewGanttTableParam#HEADER_LOCALE_VALUE}])ã€?
215 *
216 * @og.rev 3.5.5.9 (2004/06/07) 新規追åŠ?
217 *
218 * @param headerLocale ヘッãƒ??の Locale(language のみ)
219 * @see java.text.SimpleDateFormat#SimpleDateFormat(String , Locale)
220 */
221 public void setHeaderLocale( final String headerLocale ) {
222 putParam( ViewGanttTableParam.HEADER_LOCALE_KEY ,
223 nval( getRequestParameter( headerLocale ),null ) );
224 }
225
226 /**
227 * 【TAG】ã?ãƒ?ƒ€ー日付けの連続表示を行うかどã�?�‹[true/false]を指定しまã�?
228 * (初期値:ViewGanttTableParam#USE_SEQ_DAY_VALUE[={@og.value ViewGanttTableParam#USE_SEQ_DAY_VALUE}])ã€?
229 *
230 * @og.tag
231 * ヘッãƒ??部の日付けæ¬?�§開始日と終äº?—¥のç¯?›²の連続日付け表示を行う場合にã€?
232 * "true" に、設定しますã?開始日と終äº?—¥ の設定方法ã?、各属æ?を参照してくださいã€?
233 * true:連続表示を行う / false:dystartColumn カラãƒ?�§使用したåˆ??み
234 * (初期値:ViewGanttTableParam#USE_SEQ_DAY_VALUE[={@og.value ViewGanttTableParam#USE_SEQ_DAY_VALUE}])ã€?
235 *
236 * @og.rev 3.6.1.0 (2005/01/05) 新規追åŠ?
237 *
238 * @param useSeqDay ヘッãƒ??日付けの連続表示を行うかどã�?�‹[true:行う/false:行わない]
239 * @see #setStartDay( String )
240 * @see #setEndDay( String )
241 */
242 public void setUseSeqDay( final String useSeqDay ) {
243 putParam( ViewGanttTableParam.USE_SEQ_DAY_KEY ,
244 nval( getRequestParameter( useSeqDay ),null ) );
245 }
246
247 /**
248 * 【TAG】ã?ãƒ?ƒ€ー日付けの開始日を指定しますã?
249 *
250 * @og.tag
251 * ヘッãƒ??部の日付けæ¬?�§連続日付け表示使用æ™?seqDay="true")にã€?
252 * こã?開始日より、終äº?—¥までの日付けヘッãƒ??をé?続表示しますã?
253 * seqDay="true" で startDayを指定しなã�??合ã?、dystartColumn で
254 * æŒ?®šされた、最小日付けを使用しますã?é€?�«、このæœ?°�日付けよりã‚?
255 * 大きな日付けは、セãƒ?ƒˆできません。データとヘッãƒ??の整合æ?ã�?
256 * 取れなくなりますã?
257 *
258 * こã?時ã?日付けフォーマットã?、dystartFormat のæŒ?®šと同じですã?
259 *
260 * @og.rev 3.6.1.0 (2005/01/05) 新規追åŠ?
261 *
262 * @see #setUseSeqDay( String )
263 * @param startDay ヘッãƒ??日付けの開始日
264 * @see #setEndDay( String )
265 */
266 public void setStartDay( final String startDay ) {
267 putParam( ViewGanttTableParam.START_DAY_KEY ,
268 nval( getRequestParameter( startDay ),null ) );
269 }
270
271 /**
272 * 【TAG】ã?ãƒ?ƒ€ー日付けの終äº?—¥を指定しますã?
273 *
274 * @og.tag
275 * ヘッãƒ??部の日付けæ¬?�§連続日付け表示使用æ™?seqDay="true")にã€?
276 * 開始日より、この終äº?—¥までの日付けヘッãƒ??をé?続表示しますã?
277 * seqDay="true" で endDayを指定しなã�??合ã?、dystartColumn で
278 * æŒ?®šされた、最大日付けを使用しますã?é€?�«、このæœ?¤§日付けよりã‚?
279 * 小さな日付けは、セãƒ?ƒˆできません。データとヘッãƒ??の整合æ?ã�?
280 * 取れなくなりますã?
281 *
282 * こã?時ã?日付けフォーマットã?、dystartFormat のæŒ?®šと同じですã?
283 *
284 * @og.rev 3.6.1.0 (2005/01/05) 新規追åŠ?
285 *
286 * @param endDay ヘッãƒ??日付けの終äº?—¥
287 * @see #setUseSeqDay( String )
288 * @see #setStartDay( String )
289 */
290 public void setEndDay( final String endDay ) {
291 putParam( ViewGanttTableParam.END_DAY_KEY ,
292 nval( getRequestParameter( endDay ),null ) );
293 }
294
295 /**
296 * タグの名称をã?返しますã?
297 * 自åˆ??身のクラス名よりã?自動的に取り出せなã�?�Ÿめã?こã?メソãƒ?ƒ‰をオーバã?ライドしますã?
298 *
299 * @og.rev 4.0.0.0 (2005/01/31) 新規追åŠ?
300 *
301 * @return タグの名称
302 */
303 @Override
304 protected String getTagName() {
305 return "ganttParam" ;
306 }
307
308 /**
309 * シリアライズ用のカスタãƒ?‚·リアライズ書き込みメソãƒ?ƒ‰
310 *
311 * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
312 * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
313 *
314 * @param strm ObjectOutputStreamオブジェクãƒ?
315 * @throws IOException 入出力エラーが発生したå?å�?
316 */
317 private void writeObject( final ObjectOutputStream strm ) throws IOException {
318 strm.defaultWriteObject();
319 }
320
321 /**
322 * シリアライズ用のカスタãƒ?‚·リアライズ読み込みメソãƒ?ƒ‰
323 *
324 * ここでは、transient 宣è¨?�•れたå†?ƒ¨変数のå†??初期化がå¿?¦�なフィールドã?み設定しますã?
325 *
326 * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
327 * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
328 *
329 * @param strm ObjectInputStreamオブジェクãƒ?
330 * @see #release2()
331 * @throws IOException シリアライズに関する入出力エラーが発生したå?å�?
332 * @throws ClassNotFoundException クラスを見つけることができなかったå?å�?
333 */
334 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
335 strm.defaultReadObject();
336 }
337 }