OSDN Git Service

Ver8.5.1.0
[opengion/opengionV8.git] / uap / webapps / gf / src / org / opengion / hayabusa / taglib / ViewGanttParamTag.java
1 /*
2  * Copyright (c) 2009 The openGion Project.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific language
14  * governing permissions and limitations under the License.
15  */
16 package org.opengion.hayabusa.taglib;
17
18 import org.opengion.hayabusa.html.ViewGanttTableParam;
19
20 import static org.opengion.fukurou.util.StringUtil.nval ;
21
22 /**
23  * viewタグの viewFormType が HTMLGanttTable の場合にパラメータを設定します。
24  *
25  * ガントチャートを表示する、ViewForm_HTMLGanttTable クラスに対して、各種パラメータを
26  * 設定します。
27  * パラメータが設定されていない場合は、ViewGanttTableParam の初期値が
28  * 使用されます。
29  * (パラメータを使用するには、viewタグのuseParam 属性をtrueに設定する必要があります。)
30  *
31  * @og.formSample
32  * ●形式:<og:ganttParam groupColumns="PRJCODE,RESOURCE_ID" minDuration="0.5" />
33  * ●body:なし
34  *
35  * ●Tag定義:
36  *   <og:ganttParam
37  *       groupColumns       【TAG】各タスクを1行にまとめる時のカラム名(CSV形式)をセットします (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[=PRJCODE,RESOURCE_ID])
38  *       durationColumn     【TAG】期間欄のカラム名をセットします
39  *       dystartColumn      【TAG】開始日付けのカラム名をセットします (初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[=DYSTART])
40  *       dystartFormat      【TAG】開始日付けのフォーマットを指定します (初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[=yyyyMMdd])
41  *       minDuration        【TAG】最小期間(小数可)をセットします(初期値:1)
42  *       headerDuration     【TAG】ヘッダーの表示期間(小数可)をセットします(初期値:最小期間(minDuration) と同じ)
43  *       headerLocale       【TAG】ヘッダーを表示する時の、Locale(language のみ) を指定します (初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[=ja])
44  *       useSeqDay          【TAG】ヘッダー日付けの連続表示を行うかどうか[true/false]を指定します(初期値:false)
45  *       startDay           【TAG】ヘッダー日付けの開始日を指定します
46  *       endDay             【TAG】ヘッダー日付けの終了日を指定します
47  *       debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
48  *   />
49  *
50  * ●使用例
51  *     ViewFormTag の viewFormType が、ViewForm_HTMLGanttTable の場合に使用します。
52  *     <og:view
53  *         viewFormType = "HTMLGanttTable"
54  *         command      = "{@command}"
55  *         startNo      = "0"
56  *         pageSize     = "20"
57  *         <b>useParam  = &quot;true&quot;</b>
58  *     &gt;
59  *         &lt;og:ganttParam
60  *              groupColumns   = "PRJCODE,RESOURCE_ID"
61  *              durationColumn = "DURATION"
62  *              dystartColumn  = "DYSTART"
63  *              dystartFormat  = "yyyyMMdd"
64  *              minDuration    = "0.5"
65  *              headerDuration = "1"
66  *              headerLocale   = "en"
67  *              useSeqDay      = "true"
68  *              startDay       = "20041020"
69  *              endDay         = "20041028"
70  *         /&gt;
71  *     &lt;/og:view &gt;
72  *
73  * @og.rev 3.5.5.8 (2004/05/20) 新規作成
74  * @og.group 画面表示
75  *
76  * @version     4.0
77  * @author      Kazuhiko Hasegawa
78  * @since       JDK5.0,
79  */
80 public class ViewGanttParamTag extends ViewParamImpl {
81         /** このプログラムのVERSION文字列を設定します。       {@value} */
82         private static final String VERSION = "6.4.2.0 (2016/01/29)" ;
83         private static final long serialVersionUID = 642020160129L ;
84
85         /**
86          * デフォルトコンストラクター
87          *
88          * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
89          */
90         public ViewGanttParamTag() { super(); }         // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。
91
92         /**
93          * 【TAG】各タスクを1行にまとめる時のカラム名(CSV形式)をセットします
94          *              (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#GROUP_COLUMNS_VALUE}])。
95          *
96          * @og.tag
97          * ガントチャートで、同一要件のタスクを1行にまとめて表示します。
98          * その場合のグルーピングのキーとなるカラム名を指定します。
99          * 複数ある場合は、CSV形式で指定できます。
100          * 日付けでの重複は考慮されていませんので、データ側でチェックしておいて下さい。
101          * (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#GROUP_COLUMNS_VALUE}])。
102          *
103          * @param       groupColumns    グループカラム名 (CSV形式)
104          * @see         org.opengion.hayabusa.html.ViewGanttTableParam#GROUP_COLUMNS_VALUE
105          */
106         public void setGroupColumns( final String groupColumns ) {
107                 putParam( ViewGanttTableParam.GROUP_COLUMNS_KEY ,
108                                   nval( getRequestParameter( groupColumns ),null ) );
109         }
110
111         /**
112          * 【TAG】期間欄のカラム名をセットします。
113          *
114          * @og.tag
115          * ガントを表示する場合の、各タスクの幅(期間)のカラム名を指定します。
116          * 各タスクは、開始日と期間より、ガントの指定のロケーションに割り当てられます。
117          * 初期値は null です。
118          *
119          * @param       durationColumn  期間欄のカラム名
120          */
121         public void setDurationColumn( final String durationColumn ) {
122                 putParam( ViewGanttTableParam.DURATION_COLUMN_KEY ,
123                                   nval( getRequestParameter( durationColumn ),null ) );
124         }
125
126         /**
127          * 【TAG】開始日付けのカラム名をセットします
128          *              (初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#DYSTART_COLUMN_VALUE}])。
129          *
130          * @og.tag
131          * ガントを表示する場合の、各タスクの開始日付けのカラム名を指定します。
132          * 各タスクは、開始日と期間より、ガントの指定のロケーションに割り当てられます。
133          * (初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#DYSTART_COLUMN_VALUE}])。
134          *
135          * @param       dystartColumn   開始日カラム名 (初期値:DYSTART)
136          */
137         public void setDystartColumn( final String dystartColumn ) {
138                 putParam( ViewGanttTableParam.DYSTART_COLUMN_KEY ,
139                                    nval( getRequestParameter( dystartColumn ),null ) );
140         }
141
142         /**
143          * 【TAG】開始日付けのフォーマットを指定します
144          *              (初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#DYSTART_FORMAT_VALUE}])。
145          *
146          * @og.tag
147          * ガントの開始日付 データを取り込むときの日付けフォーマットを指定します。
148          * この形式の日付け文字列を、内部で、日付けデータとして管理します。
149          * java.text.SimpleDateFormat で指定できる形式を指定します。
150          * (初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#DYSTART_FORMAT_VALUE}])。
151          *
152          * @param       dystartFormat   開始日フォーマット
153          * @see java.text.SimpleDateFormat
154          */
155         public void setDystartFormat( final String dystartFormat ) {
156                 putParam( ViewGanttTableParam.DYSTART_FORMAT_KEY ,
157                                    nval( getRequestParameter( dystartFormat ),null ) );
158         }
159
160         /**
161          * 【TAG】最小期間(小数可)をセットします
162          *              (初期値:ViewGanttTableParam#MIN_DURATION_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#MIN_DURATION_VALUE}])。
163          *
164          * @og.tag
165          * Duration で指定する期間の最小単位を指定します。
166          * 例えば、1日単位の精度でタスクを割り当てる場合、期間の最小単位は、1 に
167          * なります。表示する場合も、この数字が最小単位となり、HTMLのテーブルの
168          * 1カラムに相当します。例えば、最小単位を、0.5 にすると、
169          * 半日単位でタスクを割り当てることができます。10 にすると、10日単位
170          * になります。
171          * (初期値:ViewGanttTableParam#MIN_DURATION_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#MIN_DURATION_VALUE}])。
172          *
173          * @param       minDuration     最小期間
174          */
175         public void setMinDuration( final String minDuration ) {
176                 putParam( ViewGanttTableParam.MIN_DURATION_KEY ,
177                                    nval( getRequestParameter( minDuration ),null ) );
178         }
179
180         /**
181          * 【TAG】ヘッダーの表示期間(小数可)をセットします(初期値:最小期間(minDuration) と同じ)。
182          *
183          * @og.tag
184          * ヘッダー部の日付け欄で指定する表示間隔を指定します。
185          *
186          * 例えば、最小期間(minDuration)を、0.5日単位の精度で指定した場合、
187          * そのままでは、ヘッダーも最小期間単位で表示されますが、1日単位で表示
188          * させたい場合は、1 を設定します。
189          * また、1週間単位では、7 を指定します。
190          * 1ヶ月単位などの、不定長での指定はできません。
191          * 初期値は最小期間(minDuration) と同じです。
192          *
193          * @param       headerDuration  表示期間 (小数可)
194          */
195         public void setHeaderDuration( final String headerDuration ) {
196                 putParam( ViewGanttTableParam.HEADER_DURATION_KEY ,
197                                    nval( getRequestParameter( headerDuration ),null ) );
198         }
199
200         /**
201          * 【TAG】ヘッダーを表示する時の、Locale(language のみ) を指定します
202          *              (初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#HEADER_LOCALE_VALUE}])。
203          *
204          * @og.tag
205          * ヘッダー部の日付け欄で SimpleDateFormat を用いて解析していますが、
206          * この Locale (language のみ)を指定できます。
207          *
208          * language は、有効な ISO 言語コードです。
209          * これらのコードは、ISO-639 で定義される 2 桁の小文字です。
210          * コードの完全なリストは、
211          * <a href="https://ja.wikipedia.org/wiki/ISO_639-1%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7" target="_blank">
212          * https://ja.wikipedia.org/wiki/ISO_639-1%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7 </a>
213          * を始めいくつかの場所で入手できます。
214          * SimpleDateFormat の Locale を指定するコンストラクタでは、全ての
215          * ロケールをサポートするわけではありませんのでご注意ください。
216          * (初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#HEADER_LOCALE_VALUE}])。
217          *
218          * @og.rev 3.5.5.9 (2004/06/07) 新規追加
219          *
220          * @param       headerLocale    ロケール (languageのみ)
221          * @see         java.text.SimpleDateFormat#SimpleDateFormat(String , Locale)
222          */
223         public void setHeaderLocale( final String headerLocale ) {
224                 putParam( ViewGanttTableParam.HEADER_LOCALE_KEY ,
225                                    nval( getRequestParameter( headerLocale ),null ) );
226         }
227
228         /**
229          * 【TAG】ヘッダー日付けの連続表示を行うかどうか[true/false]を指定します
230          *              (初期値:ViewGanttTableParam#USE_SEQ_DAY_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#USE_SEQ_DAY_VALUE}])。
231          *
232          * @og.tag
233          * ヘッダー部の日付け欄で開始日と終了日の範囲の連続日付け表示を行う場合に、
234          * "true" に、設定します。開始日と終了日 の設定方法は、各属性を参照してください。
235          * true:連続表示を行う / false:dystartColumn カラムで使用した分のみ
236          * (初期値:ViewGanttTableParam#USE_SEQ_DAY_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#USE_SEQ_DAY_VALUE}])。
237          *
238          * @og.rev 3.6.1.0 (2005/01/05) 新規追加
239          *
240          * @param       useSeqDay       連続表示可否 [true:行う/false:行わない]
241          * @see         #setStartDay( String )
242          * @see         #setEndDay( String )
243          */
244         public void setUseSeqDay( final String useSeqDay ) {
245                 putParam( ViewGanttTableParam.USE_SEQ_DAY_KEY ,
246                                    nval( getRequestParameter( useSeqDay ),null ) );
247         }
248
249         /**
250          * 【TAG】ヘッダー日付けの開始日を指定します。
251          *
252          * @og.tag
253          * ヘッダー部の日付け欄で連続日付け表示使用時(seqDay="true")に、
254          * この開始日より、終了日までの日付けヘッダーを連続表示します。
255          * seqDay="true" で startDayを指定しない場合は、dystartColumn で
256          * 指定された、最小日付けを使用します。逆に、この最小日付けよりも
257          * 大きな日付けは、セットできません。データとヘッダーの整合性が
258          * 取れなくなります。
259          *
260          * この時の日付けフォーマットは、dystartFormat の指定と同じです。
261          *
262          * @og.rev 3.6.1.0 (2005/01/05) 新規追加
263          *
264          * @param       startDay        開始日
265          * @see         #setUseSeqDay( String )
266          * @see         #setEndDay( String )
267          */
268         public void setStartDay( final String startDay ) {
269                 putParam( ViewGanttTableParam.START_DAY_KEY ,
270                                    nval( getRequestParameter( startDay ),null ) );
271         }
272
273         /**
274          * 【TAG】ヘッダー日付けの終了日を指定します。
275          *
276          * @og.tag
277          * ヘッダー部の日付け欄で連続日付け表示使用時(seqDay="true")に、
278          * 開始日より、この終了日までの日付けヘッダーを連続表示します。
279          * seqDay="true" で endDayを指定しない場合は、dystartColumn で
280          * 指定された、最大日付けを使用します。逆に、この最大日付けよりも
281          * 小さな日付けは、セットできません。データとヘッダーの整合性が
282          * 取れなくなります。
283          *
284          * この時の日付けフォーマットは、dystartFormat の指定と同じです。
285          *
286          * @og.rev 3.6.1.0 (2005/01/05) 新規追加
287          *
288          * @param       endDay  終了日
289          * @see         #setUseSeqDay( String )
290          * @see         #setStartDay( String )
291          */
292         public void setEndDay( final String endDay ) {
293                 putParam( ViewGanttTableParam.END_DAY_KEY ,
294                                    nval( getRequestParameter( endDay ),null ) );
295         }
296
297         /**
298          * タグの名称を、返します。
299          * 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
300          *
301          * @og.rev 4.0.0.0 (2005/01/31) 新規追加
302          *
303          * @return      タグの名称
304          * @og.rtnNotNull
305          */
306         @Override
307         protected String getTagName() {
308                 return "ganttParam" ;
309         }
310
311 }