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 */ 016package org.opengion.hayabusa.taglib; 017 018import org.opengion.hayabusa.html.ViewGanttTableParam; 019 020import static org.opengion.fukurou.util.StringUtil.nval ; 021 022/** 023 * viewタグの viewFormType が HTMLGanttTable の場合にパラメータを設定します。 024 * 025 * ガントチャートを表示する、ViewForm_HTMLGanttTable クラスに対して、各種パラメータを 026 * 設定します。 027 * パラメータが設定されていない場合は、ViewGanttTableParam の初期値が 028 * 使用されます。 029 * (パラメータを使用するには、viewタグのuseParam 属性をtrueに設定する必要があります。) 030 * 031 * @og.formSample 032 * ●形式:<og:ganttParam groupColumns="PRJCODE,RESOURCE_ID" minDuration="0.5" /> 033 * ●body:なし 034 * 035 * ●Tag定義: 036 * <og:ganttParam 037 * groupColumns 【TAG】各タスクを1行にまとめる時のカラム名(CSV形式)をセットします (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[=PRJCODE,RESOURCE_ID]) 038 * durationColumn 【TAG】期間欄のカラム名をセットします 039 * dystartColumn 【TAG】開始日付けのカラム名をセットします (初期値:ViewGanttTableParam#DYSTART_COLUMN_VALUE[=DYSTART]) 040 * dystartFormat 【TAG】開始日付けのフォーマットを指定します (初期値:ViewGanttTableParam#DYSTART_FORMAT_VALUE[=yyyyMMdd]) 041 * minDuration 【TAG】最小期間(小数可)をセットします(初期値:1) 042 * headerDuration 【TAG】ヘッダーの表示期間(小数可)をセットします(初期値:最小期間(minDuration) と同じ) 043 * headerLocale 【TAG】ヘッダーを表示する時の、Locale(language のみ) を指定します (初期値:ViewGanttTableParam#HEADER_LOCALE_VALUE[=ja]) 044 * useSeqDay 【TAG】ヘッダー日付けの連続表示を行うかどうか[true/false]を指定します(初期値:false) 045 * startDay 【TAG】ヘッダー日付けの開始日を指定します 046 * endDay 【TAG】ヘッダー日付けの終了日を指定します 047 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 048 * /> 049 * 050 * ●使用例 051 * ViewFormTag の viewFormType が、ViewForm_HTMLGanttTable の場合に使用します。 052 * <og:view 053 * viewFormType = "HTMLGanttTable" 054 * command = "{@command}" 055 * startNo = "0" 056 * pageSize = "20" 057 * <b>useParam = "true"</b> 058 * > 059 * <og:ganttParam 060 * groupColumns = "PRJCODE,RESOURCE_ID" 061 * durationColumn = "DURATION" 062 * dystartColumn = "DYSTART" 063 * dystartFormat = "yyyyMMdd" 064 * minDuration = "0.5" 065 * headerDuration = "1" 066 * headerLocale = "en" 067 * useSeqDay = "true" 068 * startDay = "20041020" 069 * endDay = "20041028" 070 * /> 071 * </og:view > 072 * 073 * @og.rev 3.5.5.8 (2004/05/20) 新規作成 074 * @og.group 画面表示 075 * 076 * @version 4.0 077 * @author Kazuhiko Hasegawa 078 * @since JDK5.0, 079 */ 080public class ViewGanttParamTag extends ViewParamImpl { 081 /** このプログラムのVERSION文字列を設定します。 {@value} */ 082 private static final String VERSION = "6.4.2.0 (2016/01/29)" ; 083 private static final long serialVersionUID = 642020160129L ; 084 085 /** 086 * デフォルトコンストラクター 087 * 088 * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. 089 */ 090 public ViewGanttParamTag() { super(); } // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。 091 092 /** 093 * 【TAG】各タスクを1行にまとめる時のカラム名(CSV形式)をセットします 094 * (初期値:ViewGanttTableParam#GROUP_COLUMNS_VALUE[={@og.value org.opengion.hayabusa.html.ViewGanttTableParam#GROUP_COLUMNS_VALUE}])。 095 * 096 * @og.tag 097 * ガントチャートで、同一要件のタスクを1行にまとめて表示します。 098 * その場合のグルーピングのキーとなるカラム名を指定します。 099 * 複数ある場合は、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}