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.ViewCalendarParam; 019 020import static org.opengion.fukurou.util.StringUtil.nval ; 021 022/** 023 * viewタグの viewFormType が HTMLCalendar の場合にパラメータを設定します。 024 * 025 * カレンダーを表示する、ViewForm_HTMLCalendar クラスに対して、各種パラメータを 026 * 設定します。 027 * パラメータが設定されていない場合は、ViewCalendarParam の初期値が使用されます。 028 * (パラメータを使用するには、viewタグのuseParam 属性をtrueに設定する必要があります。) 029 * 030 * @og.formSample 031 * ●形式:<og:calendarParam ymKey="YYYYMM" dayKey="DY" firstWeek="0" /> 032 * ●body:なし 033 * 034 * ●Tag定義: 035 * <og:calendarParam 036 * viewKeys 【TAG】行のキーとなるカラム名を複数指定します(事業所やWCなど) 037 * ymKey 【TAG】行のキーとなる年月を表すカラム名を指定します 038 * dayKey 【TAG】日付け(休日フラグ)のキーとなるカラム名の英字部分を指定します(DY1 ~ DY31) 039 * valueKey 【TAG】データの値となるカラム名の英字部分を指定します(初期値は使用しません) 040 * valueBRFlag 【TAG】データの値を使用する場合に、日付けとの関係で、BR を入れるかどうか指定します 041 * firstWeek 【TAG】カレンダ表示の週の初めを指定します( 0は、日曜日から、1は月曜日から) 042 * headerLocale 【TAG】週表示ヘッダーを表示する時の、Locale(language のみ) を指定します 043 * columnSize 【TAG】カレンダを横に並べる場合の数量を指定します(初期値: 3) 044 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 045 * /> 046 * 047 * ●使用例 048 * ViewFormTag の viewFormType が、ViewCalendarParam の場合に使用します。 049 * useParam 属性を設定しておかないと、使用されません。 050 * <og:view 051 * <b>viewFormType = "HTMLCalendar"</b> 052 * command = "{@command}" 053 * startNo = "0" 054 * pageSize = "20" 055 * <b>useParam = "true"</b> 056 * > 057 * <og:calendarParam 058 * viewKeys = "CDJGS" 059 * ymKey = "YYYYMM" 060 * dayKey = "DY" 061 * valueKey = "" 062 * valueBRFlag = "true" 063 * firstWeek = "0" 064 * headerLocale = "en" 065 * columnSize = "3" 066 * /> 067 * </og:view > 068 * 069 * @og.rev 3.5.6.0 (2004/06/18) 新規作成 070 * @og.group 画面表示 071 * 072 * @version 4.0 073 * @author Kazuhiko Hasegawa 074 * @since JDK5.0, 075 */ 076public class ViewCalendarParamTag extends ViewParamImpl { 077 /** このプログラムのVERSION文字列を設定します。 {@value} */ 078 private static final String VERSION = "6.4.2.0 (2016/01/29)" ; 079 private static final long serialVersionUID = 642020160129L ; 080 081 /** 082 * デフォルトコンストラクター 083 * 084 * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. 085 */ 086 public ViewCalendarParamTag() { super(); } // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。 087 088 /** 089 * 【TAG】行のキーとなるカラム名を複数指定(CSV形式)します(事業所やWCなど)。 090 * 091 * @og.tag 092 * エンジン標準カレンダ(GE13)では、年月(YYYYMM)と事業所コード(CDJGS) 093 * でユニークキーになります。また、能力カレンダなどでは、事業所、ワークセンタ 094 * で、ユニークになります。 095 * それらのキー項目を編集できるように、カラムをCSV形式で指定します。 096 * 097 * @og.rev 3.5.6.0 (2004/06/18) 新規作成 098 * 099 * @param viewKeys 行カラム名 (CSV形式) 100 */ 101 public void setViewKeys( final String viewKeys ) { 102 putParam( ViewCalendarParam.VIEW_KEYS , 103 nval( getRequestParameter( viewKeys ),null ) ); 104 } 105 106 /** 107 * 【TAG】行のキーとなる年月を表すカラム名を指定します。 108 * 109 * @og.tag 110 * 現カレンダーは、年月毎に、31個の日付けフィールドを持ったデータを 111 * 前提としています。工場や事業所などの区分は、取得時には確定させておく必要があります。 112 * 初期値は、ViewCalendarParam に依存します。(例:YYYYMM) 113 * 114 * @param ymKey 行年月カラム 115 */ 116 public void setYmKey( final String ymKey ) { 117 putParam( ViewCalendarParam.YM_KEY , 118 nval( getRequestParameter( ymKey ),null ) ); 119 } 120 121 /** 122 * 【TAG】日付け(休日フラグ)のキーとなるカラム名の英字部分を指定します(DY1 ~ DY31)。 123 * 124 * @og.tag 125 * カレンダーを表示する場合の、各日付け欄のカラム名の英字部分を指定します。 126 * 現カレンダーは、年月毎に、31個の日付けフィールドを持ったデータを 127 * 前提としています。よって、このカラム名(英字部分)+日付け(1~31)を 128 * 動的に作成して、日付けカラムとして取得します。 129 * 例えば、"DY" という文字を指定した場合、DY1 ~ DY31 のカラム名を 130 * 使用して、検索結果の DBTableModel より値を取得します。 131 * 初期値は、ViewCalendarParam に依存します。(例:DY) 132 * 133 * @param dayKey 日付カラム(英字) 134 */ 135 public void setDayKey( final String dayKey ) { 136 putParam( ViewCalendarParam.DAY_KEY , 137 nval( getRequestParameter( dayKey ),null ) ); 138 } 139 140 /** 141 * 【TAG】データの値となるカラム名の英字部分を指定します(初期値は使用しません)。 142 * 143 * @og.tag 144 * カレンダーを表示する場合の、各日付け欄の値のカラム名の英字部分を指定します。 145 * 現カレンダーは、年月毎に、31個の値フィールドを持ったデータを 146 * 前提としています。よって、このカラム名(英字部分)+日付け(1~31)を 147 * 動的に作成して、値カラムとして取得します。 148 * 例えば、"VAL" という文字を指定した場合、VAL1 ~ VAL31 のカラム名を 149 * 使用して、検索結果の DBTableModel より値を取得します。 150 * 初期値は、ViewCalendarParam に依存します。(例:使用していません) 151 * 152 * @param valueKey 値カラム(英字) (初期値は使用しません) 153 */ 154 public void setValueKey( final String valueKey ) { 155 putParam( ViewCalendarParam.VALUE_KEY , 156 nval( getRequestParameter( valueKey ),null ) ); 157 } 158 159 /** 160 * 【TAG】データの値を使用する場合に、日付けとの関係で、BR を入れるかどうか指定します。 161 * 162 * @og.tag 163 * データを表示する場合、日付けの横につけるか、日付けの下に付けるかを指定します。 164 * ただし、valueKey で、値カラムを指定した場合のみ、有効になります。 165 * 初期値は、ViewCalendarParam に依存します。(例:true) 166 * 167 * @param valueBRFlag 日付BRデータ制御 [true:BRを入れる/false:入れない] 168 */ 169 public void setValueBRFlag( final String valueBRFlag ) { 170 putParam( ViewCalendarParam.VALUE_BR_FLAG_KEY , 171 nval( getRequestParameter( valueBRFlag ),null ) ); 172 } 173 174 /** 175 * 【TAG】カレンダ表示の週の初めを指定します( 0は、日曜日から、1は月曜日から)。 176 * 177 * @og.tag 178 * カレンダの週表示で、どの曜日から表示を始めるかを指定します。 179 * 0は、日曜日から、1は月曜日から表示を開始します。 180 * 初期値は、ViewCalendarParam に依存します。(例:0 日曜日から) 181 * 182 * @param firstWeek 開始週指定 [0:日曜/1:月曜…] 183 */ 184 public void setFirstWeek( final String firstWeek ) { 185 putParam( ViewCalendarParam.FIRSTWEEK_KEY , 186 nval( getRequestParameter( firstWeek ),null ) ); 187 } 188 189 /** 190 * 【TAG】週表示ヘッダーを表示する時の、Locale(language のみ) を指定します。 191 * 192 * @og.tag 193 * 現実装では、"ja" と "en" のみ指定可能です。 194 * 将来的には、SimpleDateFormat を使用し、多言語対応しますが、現段階では、 195 * (日、月、火、水、木、金、土)と、(SUN,MON,TUE,WED,THU,FRI,SAT)の 196 * 2種類を切り替えているだけです。 197 * どの曜日から表示を始めるかは、firstWeek 属性で設定します。 198 * 初期値は、ViewCalendarParam に依存します。(例:"en") 199 * 200 * @param headerLocale ヘッダー言語 [ja/en] 201 */ 202 public void setHeaderLocale( final String headerLocale ) { 203 putParam( ViewCalendarParam.HEADER_LOCALE_KEY , 204 nval( getRequestParameter( headerLocale ),null ) ); 205 } 206 207 /** 208 * 【TAG】カレンダを横に並べる場合の数量を指定します(初期値: 3)。 209 * 210 * @og.tag 211 * カレンダを複数並べる場合の横方向の件数を指定します。 212 * 1年を表す場合、3*4 や 2*6 のカレンダが一般的です。 213 * ここでは、横方向(3や2)の件数を指定することで、レイアウトを 214 * 指定します。 215 * 216 * @og.rev 3.5.6.0 (2004/06/18) 新規作成 217 * 218 * @param columnSize 横並び個数 (初期値:3) 219 */ 220 public void setColumnSize( final String columnSize ) { 221 putParam( ViewCalendarParam.COLUMN_SIZE_KEY , 222 nval( getRequestParameter( columnSize ),null ) ); 223 } 224 225 /** 226 * タグの名称を、返します。 227 * 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。 228 * 229 * @og.rev 4.0.0.0 (2005/01/31) 新規追加 230 * 231 * @return タグの名称 232 * @og.rtnNotNull 233 */ 234 @Override 235 protected String getTagName() { 236 return "calendarParam" ; 237 } 238}