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 static org.opengion.fukurou.util.StringUtil.nval; 019 020import java.io.IOException; 021import java.io.ObjectInputStream; 022import java.io.ObjectOutputStream; 023import java.util.Map; 024 025import org.opengion.fukurou.util.StringUtil; 026import org.opengion.hayabusa.common.HybsSystem; 027import org.opengion.hayabusa.common.HybsSystemException; 028import org.opengion.hayabusa.db.DBColumn; 029import org.opengion.hayabusa.db.DBColumnConfig; 030import org.opengion.hayabusa.db.DBTableModel; 031import org.opengion.hayabusa.resource.CodeData; 032import org.opengion.hayabusa.resource.LabelData; 033 034/** 035 * 検索結果のカラムに対して様々な属性を付加するタグです。 036 * 037 * このタグでは、カラムリソースの属性を再設定できます。検索結果(DBTableModel) 038 * には、カラムオブジェクト(DBColumn)を持っています。このオブジェクトは、 039 * カラムリソースで設定した値を持っています。その個々の値を再設定することで、 040 * カラムオブジェクトの属性をその都度設定しなおすことができます。 041 * 最もよく使用するのは、must 属性の設定と、DBMENU エディターの設定です。 042 * must属性は、予め必須項目として指定することが出来ない為、画面毎に再設定が 043 * 必要です。ただし、ここでのmust属性は、カラムの表示色を変更するだけで、 044 * 実際のnullチェックは、columnCheck タグのnullCheck属性で指定します。 045 * DBMENU エディターは、データベースの属性から選択リストを作成する機能ですが、 046 * これも、マスタ登録時は、テキストフィールドで入力し、使用時は、選択するケース 047 * の様に、画面毎に異なる形式で使用したい場合があるためです。 048 * このタグでは、カラムオブジェクトの属性以外に、HTMLの属性を付加する事も 049 * できます。 050 * 051 * @og.formSample 052 * ●形式:<og:ColumnEditor column="・・・" ・・・ > ・・・ </og:ColumnEditor > 053 * ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) 054 * 055 * ●Tag定義: 056 * <og:columnEditor 057 * column 【TAG】カラム名をセットします 058 * columns 【TAG】カラム名をカンマ区切りで複数セットします 059 * label 【TAG】ラベルリソースに定義されたラベルIDをセットします 060 * className 【TAG】カラムのクラス名(VARCHAR2,NUMBER など)をセットします 061 * size 【TAG】カラムの表示サイズをセットします(大きさだけで入力文字制限ではありません) 062 * maxlength 【TAG】カラムの入力文字制限数をセットします 063 * writable 【TAG】カラムが書き込み可能かどうか[true/false]をセットします(初期値:null) 064 * renderer 【TAG】カラムの表示用レンデラー({@og.doc03Link renderer Renderer_****})をセットします 065 * editor 【TAG】カラムの編集用エディター({@og.doc03Link editor Editor_****})をセットします 066 * dbType 【TAG】DBタイプ({@og.doc03Link dbType DBType_****})をセットします 067 * codeName 【TAG】コードセレクトのユニークキー(コード名称)をセットします 068 * codeList 【TAG】コードセレクトのサブセットとなるコードをCSV形式で指定します 069 * codeGroup 【TAG】コードセレクトのサブセットとなるグループを指定します 070 * defaultVal 【TAG】初期値をセットします 071 * param 【TAG】パラメータをセットします 072 * roles 【TAG】ロールをセットします 073 * must 【TAG】必須入力を表す色に変えるかどうか[true/false]を指定します(初期値:false) 074 * mustAny 【TAG】選択必須入力(どれかひとつ必須)を表す色[true/mustAny/その他]を指定します(初期値:無指定) 075 * optionAttributes 【TAG】JavaScript などの HTML基本タグ以外の属性を、そのままタグとして使用します 076 * addNoValue 【TAG】コンボボックスの値なしのOptionの有無[true/false]を指定します(初期値:falseと同等) 077 * useLabelMap 【TAG】SQL文を指定してラベル情報を動的に読み込むかどうか[true/false]指定します(初期値:false) 078 * useSLabel 【TAG】MENU,DBMENUでSLABELを利用するかどうか[auto/true/false]を指定します(初期値:null) 079 * noDisplayVal 【TAG】指定の値を非表示にします(レンデラーのみ有効)(初期値:null) 080 * scope 【TAG】キャッシュする場合のスコープ[request/page/session/applicaton]を指定します(初期値:session) 081 * tableId 【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID 082 * dbid 【TAG】(通常使いません)データベースへ接続する場合のID 083 * caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 084 * caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 085 * caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true) 086 * caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true) 087 * lang 【HTML】要素の内容と他の属性値の言語(lang,xml:lang)を指定します 088 * style 【HTML】この要素に対して適用させるスタイルシート(style)を設定します 089 * clazz 【HTML】要素に対して class 属性を設定します 090 * onClick 【HTML】JavaScriptのイベント onClick を設定します(例:onClick="renew('query.jsp','QUERY');") 091 * onChange 【HTML】JavaScriptのイベント onChange を設定します(例:onChange="renew('query.jsp','QUERY');") 092 * onBlur 【HTML】JavaScriptのイベント onBlur を設定します(例:onBlur="this.value=value.toUpperCase();") 093 * onFocus 【HTML】JavaScriptのイベント onFocus を設定します 094 * ondblClick 【HTML】JavaScriptのイベント ondblClick を設定します 095 * onMouseDown 【HTML】JavaScriptのイベント onMouseDown を設定します 096 * onMouseUp 【HTML】JavaScriptのイベント onMouseUp を設定します 097 * onMouseMove 【HTML】JavaScriptのイベント onMouseMove を設定します 098 * onMouseOut 【HTML】JavaScriptのイベント onMouseOut を設定します 099 * onMouseOver 【HTML】JavaScriptのイベント onMouseOver を設定します 100 * onSelect 【HTML】JavaScriptのイベント onSelect を設定します 101 * onKeydown 【HTML】JavaScriptのイベント onKeydown を設定します 102 * onKeypress 【HTML】JavaScriptのイベント onKeypress を設定します 103 * onKeyup 【HTML】JavaScriptのイベント onKeyup を設定します 104 * autocomplete 【HTML5】入力候補を提示して入力内容を自動補完する[on/off](初期値はon)。 105 * autofocus 【HTML5】指定した入力欄にカーソルが当たって自動的にフォーカスされます。 106 * pattern 【HTML5】正規表現で入力値のパターンを指定します。 107 * placeholder 【HTML5】入力欄に初期表示する内容を指定します。 108 * required 【HTML5】入力必須を指定します 109 * list 【HTML5】ユーザーに入力候補として提案するデータリストの要素のid属性の値を指定します。 110 * min 【HTML5】入力欄で入力できる最小値を指定します。 111 * max 【HTML5】入力欄で入力できる最大値を指定します。 112 * step 【HTML5】入力欄で刻むステップ値を指定する。 113 * type 【HTML5】HTML5追加分[text/search/tel/url/email/datetime/date/month/week/time/datetime-local/number/range/color] 114 * eventColumn 【TAG】イベントカラム(親カラム)のセット 115 * eventURL 【TAG】eventColumn利用時に呼ばれるJSPのURL 116 * eventCallback 【TAG】eventColumn実行後のcallbak関数指定 117 * noResource 【TAG】ResourceManager を使用しないかどうか[true/false]を指定します(初期値:false) 118 * stringOutput 【TAG】レンデラ利用のExcel出力時にセルタイプを文字列にするかどうか(初期値:true) 119 * useRealTimeCheck 【TAG】リアルタイムチェックを行うかどうか(初期値:行う) 120 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 121 * > ... Body ... 122 * </og:columnEditor> 123 * 124 * ●使用例: 125 * ・必須表示の場合 126 * <og:columnEditor column="NOSYN" must="true" /> 127 * 128 * ・DBからのコンボボックスの場合 129 * <og:columnEditor column="CDBK" editor="DBMENU"> 130 * select CDBK,CDBK||':'||NMBK from DB02 order by 1 131 * </og:columnEditor> 132 * 133 * ・親子関係のプルダウンを作る場合 134 * ({@xxx.value}で同じ行のxxxカラムで選択した値を取得します) 135 * <og:columnEditor column="CDBK" editor="DBMENU" 136 * eventColumn="OYA"> 137 * select CDBK,CDBK||':'||NMBK from DB02 138 * where CLM = {@OYA.value} order by 1 139 * </og:columnEditor> 140 * 141 * 142 * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更。 143 * @og.group 画面表示 144 * 145 * @version 4.0 146 * @author Kazuhiko Hasegawa 147 * @since JDK5.0, 148 */ 149public class ColumnEditorTag extends HTMLTagSupport { 150 //* このプログラムのVERSION文字列を設定します。 {@value} */ 151 private static final String VERSION = "5.9.18.1 (2017/03/07)" ; 152 153 private static final long serialVersionUID = 576320140523L ; 154 155 // 5.7.1.0 (2013/12/06) HTML5 で新たに追加された、type を追加 156 private static final String CHECK_TYPE = "|text|search|tel|url|email|datetime|date|month|week|time|datetime-local|number|range|color|" ; 157 158 private transient LabelData labelData = null; 159 private String tableId = HybsSystem.TBL_MDL_KEY; 160 private String[] columns = null; // 3.7.0.5 (2005/04/11) 161 private boolean allColumns = false; // 3.8.8.5 (2007/03/09) 162 private String className = null; 163 private String size = null; 164 private String maxlength = null; // 3.5.5.5 (2004/04/23) 165 private String writable = null; 166 private String renderer = null; 167 private String editor = null; 168 private String dbType = null; 169 private String codeName = null; // 3.5.5.7 (2004/05/10) 170 private String codeList = null; // 5.1.9.0 (2010/08/01) 新規追加(Codeリソースのサブセット) 171 private String codeGroup = null; // 5.1.9.0 (2010/08/01) 新規追加(Codeリソースのサブセット) 172 private String defaultVal = null; 173 private String parameter = null; 174 private String dbid = null; 175 private String addNoValue = null; // 3.5.5.9 (2004/06/07) 176 private static final String DEFAULT_ADD_NO_VALUE = "true"; // 3.7.0.5 (2005/04/11) 177 178 private String eventColumn = null; // 4.3.6.0 (2009/04/01) イベントカラム 179 private String rawParameter = null; // 4.3.6.0 (2009/04/01) 生パラメータ 180 private String eventURL = null; // 4.3.6.0 (2009/04/01) イベントURL 181 182 // 4.3.4.0 (2008/12/01) ラベルデータの動的取得に対応します。 183 private boolean useLabelMap = false; // 4.3.4.0 (2008/12/01) 184 private String useSLabel = null; // 5.6.2.3 (2013/03/22) MENU,DBMENUでSLABELを利用するかどうか 185 private String noDisplayVal = null; // 5.6.2.3 (2013/03/22) 非表示文字の設定 186 private Map<String,LabelData> labelMap = null; 187 188 // 5.7.3.0 (2014/02/07) ResourceManager を使用しないかどうか[true/false]を指定 189 private boolean noResource = false; 190 191 private boolean stringOutput = HybsSystem.sysBool( "USE_STRING_EXCEL_OUTPUT" ); // 5.7.6.3 (2014/05/23) 192 193 /** 194 * Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。 195 * 196 * @og.rev 3.1.0.0 (2003/03/20) DBColumnConfig#getColumnConfig() メソッド廃止 197 * @og.rev 3.1.1.0 (2003/03/28) ボディの内容を取得する処理を、CommonTagSupport で行う。 198 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。ボディが存在する場合のみボディが呼ばれる対応。 199 * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更。 200 * @og.rev 3.5.5.5 (2004/04/23) 入力欄の大きさを指定する viewSize 属性を追加。 201 * @og.rev 3.5.5.7 (2004/05/10) CodeSelection を、codeName を元に構築できるように設定します。 202 * @og.rev 3.5.5.9 (2004/06/07) addNoValue が、設定された場合のみ、config に設定します 203 * @og.rev 3.7.0.5 (2005/04/11) 複数カラムを同時設定できる columns 属性を追加 204 * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応 205 * 206 * @return 後続処理の指示( EVAL_BODY_BUFFERED ) 207 */ 208 @Override 209 public int doStartTag() { 210 // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応 211 if( useTag() ) { 212 if( "DBMENU".equalsIgnoreCase(editor) ) { 213 className = "VARCHAR2"; 214 renderer = "DBMENU"; 215 editor = "DBMENU"; 216 217 if( addNoValue == null ) { 218 addNoValue = DEFAULT_ADD_NO_VALUE ; 219 } 220 } 221 222 return EVAL_BODY_BUFFERED ; 223 } 224 return SKIP_BODY ; // Body を評価しない 225 } 226 227 /** 228 * Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。 229 * 230 * @og.rev 2.3.1.3 (2003/02/08) ラベル、サイズのみでも変更できるように修正 231 * @og.rev 3.0.0.1 (2003/02/14) DBMENU作成時に、ラベルの最後のスペースを除去する。 232 * @og.rev 3.1.0.0 (2003/03/20) DBColumnConfig#getColumnConfig() メソッド廃止 233 * @og.rev 3.1.1.0 (2003/03/28) ボディの内容を取得する処理を、CommonTagSupport で行う。 234 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。ボディが存在する場合のみボディが呼ばれる対応。 235 * @og.rev 3.5.0.0 (2003/09/17) キー、ラベルともに、""(ダブルコーテーション)で囲うように変更。 236 * @og.rev 3.5.5.7 (2004/05/10) このタグでSQLを発行するのではなく、DBMENU の DBColumnを作成する。 237 * @og.rev 3.5.5.9 (2004/06/07) addNoValue が null の場合は、初期値を設定します。 238 * @og.rev 3.7.0.5 (2005/04/11) 複数カラムを同時設定できる columns 属性を追加 239 * @og.rev 3.8.6.3 (2006/11/30) SQL 文の前後のスペースを取り除きます。 240 * @og.rev 4.3.4.0 (2008/12/01) ラベルデータの動的取得に対応します。 241 * @og.rev 4.3.6.0 (2009/04/01) イベントカラム対応 242 * @og.rev 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し 243 * @og.rev 5.5.4.0 (2012/07/02) 予約語対応 244 * 245 * @return 後続処理の指示(SKIP_BODY) 246 */ 247 @Override 248 public int doAfterBody() { 249 String sql = getBodyString(); 250 if( sql != null && sql.length() > 0 ) { 251 if( useLabelMap ) { labelMap = getResource().getLabelMap( sql.trim() ); } // 4.3.4.0 (2008/12/01) 252 else { 253 if( eventColumn != null && eventColumn.length() >0 ){ // 4.3.6.0 (2009/04/01) 254 rawParameter = getReservedParameter(getBodyRawString().trim()); // 5.5.4.0 (2012/07/01) 255 } 256 parameter = sql.trim() ; 257 } 258 } 259 260 return SKIP_BODY ; 261 } 262 263 /** 264 * Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 265 * 266 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 267 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。ボディが存在する場合のみボディが呼ばれる対応。 268 * @og.rev 3.7.0.5 (2005/04/11) 複数カラムを同時設定できる columns 属性を追加 269 * @og.rev 3.8.8.5 (2007/03/09) 全カラム が指定されたことにする allColumns 属性を追加 270 * @og.rev 4.1.2.1 (2008/03/13) must , mustAny 属性を自動化します。 271 * @og.rev 4.3.4.0 (2008/12/01) カラム指定のワイルドカード対応 272 * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属性の処理を、HTMLTagSupport に移します。 273 * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応 274 * 275 * @return 後続処理の指示 276 */ 277 @Override 278 public int doEndTag() { 279 debugPrint(); // 4.0.0 (2005/02/28) 280 // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応 281 if( !useTag() ) { return EVAL_PAGE; } 282 283 DBTableModel table = (DBTableModel)getObject( tableId ); 284 if( table == null ) { return EVAL_PAGE; } 285 286 if( columns != null ) { 287 // 3.8.8.5 (2007/03/09) 全カラム が指定 288 String mustType = getMustType(); // 5.2.1.0 (2010/10/01) 289 if( allColumns ) { 290 int len = table.getColumnCount(); 291 for( int i=0; i<len; i++ ) { 292 293 // 4.3.4.0 (2008/12/01) 294 DBColumn dbColumn = table.getDBColumn( i ); 295 for( int j=0; j<columns.length; j++ ) { 296 String prefix = columns[j].replace( "*", "" ); 297 if( dbColumn.getName().indexOf( prefix ) == 0 ) { // 前方一致のみ対応 298 DBColumnConfig config = getModifyConfig( dbColumn ); 299 table.setDBColumn( i,new DBColumn( config ) ); 300 301 // 4.1.2.1 (2008/03/13) 302 if( mustType != null ) { 303 table.addMustType( i,mustType ); 304 } 305 break; 306 } 307 } 308 } 309 } 310 else { 311 for( int i=0; i<columns.length; i++ ) { 312 int clmNo = table.getColumnNo( columns[i] ); 313 DBColumn dbColumn = table.getDBColumn( clmNo ); 314 DBColumnConfig config = getModifyConfig( dbColumn ); 315 table.setDBColumn( clmNo,new DBColumn( config ) ); 316 317 // 4.1.2.1 (2008/03/13) 318 if( mustType != null ) { 319 table.addMustType( clmNo,mustType ); 320 } 321 } 322 } 323 } 324 325 return EVAL_PAGE ; 326 } 327 328 /** 329 * 検索条件の入力用のテキストフィールドを作成します。 330 * 331 * テーブルタグによりフィールドは分割されます。 332 * 使用時は、テーブルタグを前後に使用して下さい。 333 * このクラスでは、このメソッドは、使われておりません。 334 * 335 * @og.rev 3.5.1.0 (2003/10/03) 新規追加 336 * 337 * @return 入力用のテキストフィールドタグ 338 */ 339 @Override 340 protected String makeTag() { 341 return null; 342 } 343 344 /** 345 * タグリブオブジェクトをリリースします。 346 * 347 * キャッシュされて再利用されるので、フィールドの初期設定を行います。 348 * 349 * @og.rev 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加 350 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 351 * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更。 352 * @og.rev 3.5.5.5 (2004/04/23) 入力欄の大きさを指定する viewSize 属性を追加。 353 * @og.rev 3.5.5.7 (2004/05/10) codeName 属性を追加。 354 * @og.rev 3.5.5.9 (2004/06/07) addNoValue 属性を修正。 355 * @og.rev 3.7.0.5 (2005/04/11) 複数カラムを同時設定できる columns 属性を追加 356 * @og.rev 3.8.8.5 (2007/03/09) 全カラム が指定されたことにする allColumns 属性を追加 357 * @og.rev 4.1.2.1 (2008/03/13) must , mustAny 属性を自動化します。 358 * @og.rev 4.3.4.0 (2008/12/01) ラベルデータの動的取得に対応します。 359 * @og.rev 5.1.9.0 (2010/08/01) codeList , codeGroup 属性を追加。(Codeリソースのサブセット) 360 * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属性の処理を、HTMLTagSupport に移します。 361 * @og.rev 5.6.2.3 (2013/03/22) useSLabel 属性を追加。(MENU,DBMENUでSLABELを利用するかどうか) 362 * @og.rev 5.6.2.3 (2013/03/22) 非表示文字の設定。noDisplayVal 属性を追加。 363 * @og.rev 5.7.3.0 (2014/02/07) noResource 属性を追加。ResourceManager を使用しないかどうか 364 * @og.rev 5.7.6.3 (2014/05/23) stringOutput追加 365 */ 366 @Override 367 protected void release2() { 368 super.release2(); 369 tableId = HybsSystem.TBL_MDL_KEY; 370 columns = null; // 3.7.0.5 (2005/04/11) 371 allColumns = false; // 3.8.8.5 (2007/03/09) 372 labelData = null; // 4.0.0 (2005/01/31) 373 className = null; 374 size = null; 375 maxlength = null; // 3.5.5.5 (2004/04/23) 376 writable = null; 377 renderer = null; 378 editor = null; 379 dbType = null; 380 codeName = null; // 3.5.5.7 (2004/05/10) 381 codeList = null; // 5.1.9.0 (2010/08/01) 新規追加(Codeリソースのサブセット) 382 codeGroup = null; // 5.1.9.0 (2010/08/01) 新規追加(Codeリソースのサブセット) 383 defaultVal = null; 384 parameter = null; 385 dbid = null; 386 addNoValue = null; // 3.5.5.9 (2004/06/07) 387 useLabelMap = false; // 4.3.4.0 (2008/12/01) 388 useSLabel = null; // 5.6.2.3 (2013/03/22) MENU,DBMENUでSLABELを利用するかどうか 389 noDisplayVal = null; // 5.6.2.3 (2013/03/22) 非表示文字の設定 390 labelMap = null; // 4.3.4.0 (2008/12/01) 391 eventColumn = null; // 4.3.6.0 (2009/04/01) 392 rawParameter = null; // 4.3.6.0 (2009/04/01) 393 eventURL = null; // 4.3.6.0 (2009/04/01) 394 noResource = false; // 5.7.3.0 (2014/02/07) noResource 属性を追加。 395 stringOutput = HybsSystem.sysBool( "USE_STRING_EXCEL_OUTPUT" ); // 5.7.6.3 (2014/05/23) 396 } 397 398 /** 399 * カスタマイズされた DBColumnConfig を作成します。 400 * 401 * DBColumnConfig は、DBColumn より取得します。この DBColumnConfig に、 402 * 属性で指定された値をセットすることで、カスタマイズを行います。 403 * 404 * @og.rev 3.7.0.5 (2005/04/11) 新規追加 405 * @og.rev 4.1.2.1 (2008/03/13) must , mustAny 属性を自動化します。 406 * @og.rev 4.3.4.0 (2008/12/01) ラベルデータの動的取得に対応します。 407 * @og.rev 4.3.6.0 (2009/04/01) evnetColumn対応 408 * @og.rev 5.1.8.0 (2010/07/01) メソッド名変更(setDefValue ⇒ setDefault) 409 * @og.rev 5.1.9.0 (2010/08/01) codeList ,codeGroup 属性を追加(Codeリソースのサブセット) 410 * @og.rev 5.6.2.3 (2013/03/22) useSLabel 属性を追加。(MENU,DBMENUでSLABELを利用するかどうか) 411 * @og.rev 5.6.2.3 (2013/03/22) 非表示文字の設定。noDisplayVal 属性を追加。 412 * @og.rev 5.7.3.0 (2014/02/07) noResource 属性を追加。ResourceManager を使用しないかどうか 413 * @og.rev 5.7.6.2 (2014/05/16) IEのHTML5機能が無効の場合の処理 414 * @og.rev 5.7.6.3 (2014/05/23) stringOutput追加 415 * @og.rev 5.9.18.1 (2017/03/24) DATALIST_R用のIEのHTML5機能が無効の場合の処理を追加 416 * 417 * @param dbColumn カラムオブジェクト 418 * 419 * @return カスタマイズされた DBColumnConfig 420 */ 421 private DBColumnConfig getModifyConfig( final DBColumn dbColumn ) { 422 // 5.7.3.0 (2014/02/07) noResource 属性を追加 423 if( noResource ) { 424 labelData = new LabelData( dbColumn.getName() ); 425 renderer = "LABEL"; 426 } 427 428 DBColumnConfig config = dbColumn.getConfig(); 429 430 // 5.7.6.2 (2014/05/16) IEのHTML5機能が無効の場合の処理 431 String ieHTML5 = (String)getSessionAttribute( HybsSystem.IE_HTML5_KEY ); 432 if( "FALSE".equalsIgnoreCase( ieHTML5 ) ) { 433 if( "DATALIST".equalsIgnoreCase( editor ) || 434 "DATALIST".equalsIgnoreCase( config.getEditor() ) ) { 435 editor = "INDBMENU"; 436 } 437 438 // 5.9.18.1 (2017/03/24) IEのHTML5機能が無効の場合の処理(DATALIST_R用) 439 if( "DATALIST_R".equalsIgnoreCase( editor ) || 440 "DATALIST_R".equalsIgnoreCase( config.getEditor() )){ 441 editor = "INMENU"; 442 } 443 } 444 445 String lang = get( "lang" ); // 4.0.0 (2005/01/31) super クラスで受けます。 446 447 if( lang != null ) { config.setLang( lang ); } 448 if( labelData != null ) { config.setLabelData( labelData ); } // 4.0.0 (2005/01/31) 449 if( className != null ) { config.setClassName( className ); } 450 if( size != null ) { config.setViewLength(size ); } 451 if( maxlength != null ) { config.setMaxlength( maxlength ); } // 3.5.5.5 (2004/04/23) 452 if( writable != null ) { config.setWritable( writable ); } 453 if( renderer != null ) { config.setRenderer( renderer ); } 454 if( editor != null ) { config.setEditor( editor ); } 455 if( dbType != null ) { config.setDbType( dbType ); } 456 if( defaultVal != null ) { config.setDefault( defaultVal ); } // 5.1.8.0 (2010/07/01) 457 if( parameter != null ) { config.setParameter( parameter ); } 458 if( dbid != null ) { config.setDbid( dbid ); } 459 if( eventColumn != null ) { config.setEventColumn(eventColumn); } // 4.3.6.0 (2009/04/01) 460 if( eventURL != null ) { config.setEventURL( eventURL ); } // 4.3.6.0 (2009/04/01) 461 if( rawParameter != null ){ config.setRawParameter( rawParameter ); } // 4.3.6.0 (2009/04/01) 462 if( useSLabel != null ) { config.setUseSLabel( useSLabel ); } // 5.6.2.3 (2013/03/22) 463 if( noDisplayVal != null ) { config.setNoDisplayVal( noDisplayVal ); } // 5.6.2.3 (2013/03/22) 464 465 // 4.0.0 (2005/11/30) ロールを指定 466 String roles = get( "roles" ); 467 if( roles != null ) { config.setRoles( roles ); } 468 469 // 4.0.0 (2005/01/31) 470 if( codeName != null ) { 471 CodeData codeData = getResource().getCodeData( codeName ) ; 472 config.setCodeData( codeData ); 473 } 474 475 // codeName で指定のリソースでも、サブセットが作成できます。 476 // 5.1.9.0 (2010/08/01) codeList 属性を追加(Codeリソースのサブセット) 477 if( codeList != null ) { 478 CodeData codeData = config.getCodeData() ; 479 if( codeData != null ) { 480 config.setCodeData( codeData.subsetList( codeList ) ); 481 } 482 } 483 484 // 5.1.9.0 (2010/08/01) codeGroup 属性を追加(Codeリソースのサブセット) 485 if( codeGroup != null ) { 486 CodeData codeData = config.getCodeData() ; 487 if( codeData != null && codeData.useGroup() ) { 488 config.setCodeData( codeData.subsetGroup( codeGroup ) ); 489 } 490 } 491 492 // 3.5.5.9 (2004/06/07) 493 // 注意:addNoValue は、互換性の関係で、値が指定された場合のみ、 494 // config に設定します。 495 // editor="DBMENU" が、指定された場合は、addNoValue が指定されていない場合のみ、 496 // 従来との互換性の関係より、このクラスのデフォルト(true)を、config に設定します。 497 if( addNoValue != null ) { 498 boolean anv = Boolean.valueOf( addNoValue ).booleanValue() ; 499 config.setAddNoValue( anv ); 500 } 501 502 // 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更。 503 config.setEditorAttributes( getAttributes() ); 504 505 // 4.3.4.0 (2008/12/01) ラベルデータの動的取得に対応します。 506 if( useLabelMap && labelMap != null ) { 507 LabelData ldata = labelMap.get( dbColumn.getName() ); 508 if( ldata != null ) { 509 config.setLabelData( ldata ); 510 } 511 } 512 513 // 5.7.6.3 (2014/05/23) 514 config.setStringOutput( stringOutput ); 515 516 return config ; 517 } 518 519 /** 520 * 【TAG】カラム名をセットします。 521 * 522 * @og.tag 523 * カラム名をセットします。 524 * columns と同時にはセットできません。 525 * 値に"*"を指定することで、全カラムを対象とすることができます。 526 * また、"PN*,CDK*"等のように前方一致でのワイルドカード指定も可能です。 527 * 528 * @og.rev 3.7.0.5 (2005/04/11) 複数カラムを同時設定できる columns 属性を追加 529 * @og.rev 3.8.8.5 (2007/03/09) 全カラム が指定されたことにする allColumns 属性を追加 530 * 531 * @param clm ネーム 532 */ 533 public void setColumn( final String clm ) { 534 if( columns != null ) { 535 String errMsg = "columns との同時セットは出来ません。: " + HybsSystem.CR 536 + "column=[" + clm + "] , " 537 + "columns=[" + StringUtil.array2csv( columns ) + "]"; 538 throw new HybsSystemException( errMsg ); 539 } 540 String column = getRequestParameter( clm ); 541 if( column != null && column.length() > 0 ) { 542 columns = new String[] { column }; 543 allColumns = column.indexOf( '*' ) >= 0 ; // 3.8.8.5 (2007/03/09) 544 } 545 } 546 547 /** 548 * 【TAG】カラム名をカンマ区切りで複数セットします。 549 * 550 * @og.tag 551 * カラム名をセットします。 552 * column と同時にはセットできません。 553 * 分解方法は、通常のパラメータ取得後に、CSV分解します。 554 * 値に"*"を指定することで、全カラムを対象とすることができます。 555 * また、"PN*,CDK*"等のように前方一致でのワイルドカード指定も可能です。 556 * 557 * @og.rev 3.7.0.5 (2005/04/11) 複数カラムを同時設定できる columns 属性を追加 558 * @og.rev 3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV分解に戻します。 559 * @og.rev 3.8.8.5 (2007/03/09) 全カラム が指定されたことにする allColumns 属性を追加 560 * 561 * @param clms CSV形式のカラム名 562 */ 563 public void setColumns( final String clms ) { 564 if( columns != null ) { 565 String errMsg = "column との同時セットは出来ません。: " + HybsSystem.CR 566 + "column=[" + StringUtil.array2csv( columns ) + "] , " 567 + "columns=[" + clms + "]" ; 568 throw new HybsSystemException( errMsg ); 569 } 570 String column = nval( getRequestParameter( clms ),null ); 571 if( column != null ) { 572 allColumns = column.indexOf( '*' ) >= 0 ; // 3.8.8.5 (2007/03/09) 573 columns = StringUtil.csv2Array( column ); 574 if( columns.length == 0 ) { columns = null; } 575 } 576 } 577 578 /** 579 * 【TAG】ラベルリソースに定義されたラベルIDをセットします。 580 * 581 * @og.tag 582 * ラベルをセットします。 583 * 584 * @og.rev 2.3.1.2 (2003/01/28) ラベルリソースからラベル名を取得するように修正 585 * @og.rev 4.0.0.0 (2005/01/31) キーより、ラベルデータオブジェクトを取得します。 586 * 587 * @param lbl ラベル 588 */ 589 public void setLabel( final String lbl ) { 590 labelData = getResource().getLabelData( getRequestParameter( lbl ) ) ; // 4.0.0 (2005/01/31) 591 } 592 593 /** 594 * 【TAG】カラムのクラス名(VARCHAR2,NUMBER など)をセットします。 595 * 596 * @og.tag 597 * カラムのクラス名をセットします。 598 * 599 * @param cls カラムのクラス 600 */ 601 public void setClassName ( final String cls ) { 602 className = nval( getRequestParameter( cls ),className ); 603 } 604 605 /** 606 * 【TAG】カラムの入力文字制限数をセットします。 607 * 608 * @og.tag 609 * カラムの入力文字制限数をセットします。 610 * 611 * @param len カラムの入力文字制限数 612 */ 613 public void setMaxlength( final String len ) { 614 maxlength = nval( getRequestParameter( len ),maxlength ); 615 } 616 617 /** 618 * 【TAG】カラムの表示サイズをセットします(大きさだけで入力文字制限ではありません)。 619 * 620 * @og.tag 621 * カラムのサイズをセットします。 622 * 623 * @og.rev 3.5.5.5 (2004/04/23) 入力欄の大きさを指定する viewSize 属性を追加。 624 * 625 * @param siz カラムのサイズ 626 */ 627 public void setSize( final String siz ) { 628 size = nval( getRequestParameter( siz ),size ); 629 } 630 631 /** 632 * 【TAG】カラムが書き込み可能かどうか[true/false]をセットします(初期値:null)。 633 * 634 * @og.tag 635 * カラムの書き込み可能をセットします。 636 * 637 * @param flag カラムの書き込み可能かどうか(true:可能/false:付加) 638 */ 639 public void setWritable ( final String flag ) { 640 writable = nval( getRequestParameter( flag ),writable ); 641 } 642 643 /** 644 * 【TAG】カラムの表示用レンデラー({@og.doc03Link renderer Renderer_****})をセットします。 645 * 646 * @og.tag 647 * これは、plugin.column 以下の Renderer_**** クラスの **** を与えます。 648 * これらは、CellRenderer インターフェースを継承したサブクラスです。 649 * 属性クラス定義の {@link org.opengion.hayabusa.db.CellRenderer Renderer} を参照願います。 650 * {@og.doc03Link renderer Renderer_**** クラス} 651 * 652 * @param rdr カラムの表示用レンデラー(Renderer_**** の ****) 653 * @see org.opengion.hayabusa.db.CellRenderer 654 */ 655 public void setRenderer ( final String rdr ) { 656 renderer = nval( getRequestParameter( rdr ),renderer ); 657 } 658 659 /** 660 * 【TAG】カラムの編集用エディター({@og.doc03Link editor Editor_****})をセットします。 661 * 662 * @og.tag 663 * これは、plugin.column 以下の Editor_**** クラスの **** を 664 * 与えます。これらは、CellEditor インターフェースを継承したサブクラスです。 665 * 属性クラス定義の {@link org.opengion.hayabusa.db.CellEditor Editor} を参照願います。 666 * {@og.doc03Link editor Editor_**** クラス} 667 * 668 * @param ed カラムの編集用エディター(Editor_**** の ****) 669 * @see org.opengion.hayabusa.db.CellEditor 670 */ 671 public void setEditor ( final String ed ) { 672 editor = nval( getRequestParameter( ed ),editor ); 673 } 674 675 /** 676 * 【TAG】DBタイプ({@og.doc03Link dbType DBType_****})をセットします。 677 * 678 * @og.tag 679 * これは、org.opengion.hayabusa.db.column 以下の DBType_**** クラスの **** を 680 * 与えます。これらは、DBType インターフェースを継承したサブクラスです。 681 * 属性クラス定義の {@link org.opengion.hayabusa.db.DBType DBType} を参照願います。 682 * {@og.doc03Link dbType DBType_**** クラス} 683 * 684 * @param dt パラメータ 685 * @see org.opengion.hayabusa.db.DBType DBType_**** の **** 686 */ 687 public void setDbType( final String dt ) { 688 dbType = nval( getRequestParameter( dt ),dbType ); 689 } 690 691 /** 692 * 【TAG】コードセレクトのユニークキー(コード名称)をセットします。 693 * 694 * @og.tag 695 * このキーを元に、CodeSelectionオブジェクトを構築します。 696 * 697 * @og.rev 3.5.5.7 (2004/05/10) 新規作成 698 * 699 * @param name メニューのユニークキー(コード名称) 700 */ 701 public void setCodeName( final String name ) { 702 codeName = nval( getRequestParameter( name ),codeName ); 703 } 704 705 /** 706 * 【TAG】コードセレクトのサブセットとなるコードをCSV形式で指定します。 707 * 708 * @og.tag 709 * この値に限定された、コードリソースを、既存の、CodeSelection の 710 * サブセットとして作成します。 711 * codeName で指定されたリソースでも、サブセットを作成する事ができます。 712 * 713 * @og.rev 5.1.9.0 (2010/08/01) 新規作成 714 * 715 * @param list コードセレクトのサブセットとなるコード 716 */ 717 public void setCodeList( final String list ) { 718 codeList = nval( getRequestParameter( list ),codeList ); 719 } 720 721 /** 722 * 【TAG】コードセレクトのサブセットとなるグループを指定します。 723 * 724 * @og.tag 725 * この値に限定された、コードリソースを、既存の、CodeData の 726 * サブセットとして作成します。 727 * codeName で指定されたリソースでも、サブセットを作成する事ができます。 728 * 729 * @og.rev 5.1.9.0 (2010/08/01) 新規作成 730 * 731 * @param group コードセレクトのサブセットとなるグループ 732 */ 733 public void setCodeGroup( final String group ) { 734 codeGroup = nval( getRequestParameter( group ),codeGroup ); 735 } 736 737 /** 738 * 【廃止】パラメータをセットします(param 属性を使用してください)。 739 * 740 * @og.tag 741 * ここで指定したパラメータは、renderer、editor、dbType すべてのパラメータに 742 * セットされます。 743 * パラメータをセットします。 744 * 745 * @og.rev 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し 746 * @og.rev 5.6.4.3 (2013/05/24) 廃止します。param 属性を使用してください。 747 * @og.rev 5.9.1.3 (2015/10/30) コメントアウトされていたので復活させる 748 * 749 * @param prm パラメータ 750 * @see #setParam( String ) 751 * @deprecated lbl 属性を使用してください。 752 */ 753 @Deprecated public void setParameter( final String prm ) { 754 setParam( prm ); // 5.6.4.3 (2013/05/24) 廃止に伴い、新しいメソッド側へ振ります。 755 } 756 757 /** 758 * 【TAG】パラメータをセットします。 759 * 760 * @og.tag 761 * ここで指定したパラメータは、renderer、editor、dbType すべてのパラメータに 762 * セットされます。 763 * パラメータをセットします。 764 * 765 * @og.rev 5.6.4.3 (2013/05/24) 新規追加 766 * 767 * @param prm パラメータ 768 */ 769 public void setParam( final String prm ) { 770 parameter = nval( getRequestParameter( prm ),parameter ); 771 rawParameter = nval( prm, parameter ); 772 } 773 774 /** 775 * 【TAG】初期値をセットします。 776 * 777 * @og.tag 778 * 初期値をセットします。 779 * 780 * @param dv 初期値 781 */ 782 public void setDefaultVal( final String dv ) { 783 defaultVal = nval( getRequestParameter( dv ),defaultVal ); 784 } 785 786 /** 787 * 【TAG】コンボボックスの値なしのOptionの有無[true/false]を指定します(初期値:falseと同等)。 788 * 789 * @og.tag 790 * コンボボックスの場合、値なしのOptionをSelectに含めるかどうかを指定します。 791 * ここでは、検索結果の登録画面に使用されるケースが多いため、なにも指定されない 792 * 場合は、なにもセットしません。(Coderesourceの指定どおり) 793 * 動作としては、初期値は、含めない("false") と同等です。 794 * 795 * <og:columnEditor column="CDBK" addNoValue="false" /> 796 * 797 * @param flag [true:含める/それ以外:含めない] 798 */ 799 public void setAddNoValue( final String flag ) { 800 addNoValue = nval( getRequestParameter( flag ),addNoValue ); 801 } 802 803 /** 804 * 【TAG】SQL文を指定してラベル情報を動的に読み込むかどうか[true/false]指定します(初期値:false)。 805 * 806 * @og.tag 807 * trueを指定すると、body部分に記述されたSQL文よりラベル情報を生成して、 808 * 動的にラベル表示を切り替えます。 809 * 810 * ワイルドカードを使用した、カラムの複数指定と組み合わせることで、外部から設定 811 * されたラベル情報で一括で変更することができます。 812 * 813 * 発行するクエリでは、第1カラムにラベルキーを、第2カラムにラベル名称を設定します。 814 * 第3カラムが存在する場合は、名称(短)として使用されます。(必須ではありません) 815 * 816 * ここで作成されたラベル情報は、カラムエディターを適用したDBTableModelのみで 817 * 有効であり、内部的にもキャッシュされません。 818 * 819 * 初期値は、false(動的読込しない)です。 820 * 821 * @og.rev 4.3.4.0 (2008/12/01) 新規作成 822 * 823 * @param flag 動的読込 [true:する/false:しない] 824 */ 825 public void setUseLabelMap( final String flag ) { 826 useLabelMap = nval( getRequestParameter( flag ),useLabelMap ); 827 } 828 829 /** 830 * 【TAG】MENU,DBMENUでSLABELを利用するかどうか[auto/true/false]を指定します(初期値:null)。 831 * 832 * @og.tag 833 * 通常はセレクトメニューは一覧とそれ以外で短縮ラベルの利用が自動で切り替わります。 834 * 強制的にSLABELを利用させたい場合にこの属性をtrue/falseにセットして下さい。 835 * auto/true/false以外を指定した場合はfalse扱いとします。 836 * ここでの初期値は、値の変更を行わないということで、null です。 837 * 838 * @og.rev 5.6.2.3 (2013/03/22) columnタグに実装されているので移植 839 * 840 * @param prm [auto:自動/true:利用する/false:利用しない] 841 */ 842 public void setUseSLabel( final String prm ) { 843 useSLabel = nval( getRequestParameter( prm ),useSLabel ); 844 if( useSLabel != null && 845 !"auto".equalsIgnoreCase( useSLabel ) && 846 !"true".equalsIgnoreCase( useSLabel ) && 847 !"false".equalsIgnoreCase( useSLabel ) ) { 848 String errMsg = "useSLabel は、[auto:自動/true:利用する/false:利用しない] から選んでください。" 849 + "useSLabel=[" + prm + "]" + HybsSystem.CR ; 850 throw new HybsSystemException( errMsg ); 851 } 852 } 853 854 /** 855 * 【TAG】非表示文字列を指定します(初期値:null)。 856 * 857 * @og.tag 858 * これは、例えば、数字型の場合は、0 がデフォルトなどの場合、 859 * あえて表示したくないなどのケースに使います。 860 * そのような状況が設定されていない場合は、null が返されます。 861 * 初期値は、null です。 862 * 863 * @og.rev 5.6.2.3 (2013/03/22) 新規追加 864 * 865 * @param prm [auto:自動/true:利用する/false:利用しない] 866 */ 867 public void setNoDisplayVal( final String prm ) { 868 noDisplayVal = nval( getRequestParameter( prm ),noDisplayVal ); 869 } 870 871 /** 872 * 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します 873 * (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。 874 * 875 * @og.tag 876 * 検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 877 * 渡す場合に、通常は、session を利用します。その場合の登録キーです。 878 * query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 879 * この tableId 属性を利用して、メモリ空間を分けます。 880 * (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。 881 * 882 * @param id sessionに登録する時の ID 883 */ 884 public void setTableId( final String id ) { 885 tableId = nval( getRequestParameter( id ),tableId ); 886 } 887 888 /** 889 * 【TAG】データベースへ接続する場合のID。 890 * 891 * @og.tag 892 * データベース接続を使用するエディター、レンデラーを使用する場合に使用する接続先IDを指定します。 893 * カラムオブジェクトは、query処理ではなく、view処理時に適用されるため、データベース 894 * 接続先を指定する必要があります。 895 * 初期値は、null(DEFAULT 接続) です。 896 * 897 * @og.rev 4.0.0.0 (2006/04/02) 新規追加 898 * 899 * @param id 接続先ID 900 */ 901 public void setDbid( final String id ) { 902 dbid = nval( getRequestParameter( id ),dbid ); 903 } 904 905 /** 906 * 【TAG】イベントカラム(親カラム)のセット。 907 * 908 * @og.tag 909 * 親子関係を持った項目の動的な入れ替えを行う場合に利用します。 910 * このカラムを変化させるトリガとなるカラムの名前をセットします。 911 * 912 * ※詳細はcolumnTagのeventURL属性の説明をご覧下さい。 913 * 914 * なお、columnEditorで、Viewに対して、SQL文の定義(置き換え定義)をする場合でも、 915 * 他カラムの値の参照は、columnタグの場合と同様に、{@XXXX}または$nの変数により行います。 916 * この場合、これらの変数は、"自身と同一行のカラム"を意味します。 917 * 918 * @og.rev 4.3.6.0 (2009/04/01) 919 * @og.rev 5.1.7.0 (2010/06/01) コメント大幅修正 920 * 921 * @param col 親カラム 922 */ 923 public void setEventColumn( final String col ) { 924 eventColumn = nval( getRequestParameter( col ), eventColumn ); 925 } 926 927 /** 928 * 【TAG】eventColumn利用時に呼ばれるJSPのURL。 929 * 930 * @og.tag 931 * イベントカラム指定時に部品を作成するJSPを指定します。 932 * 初期値はシステムリソースのEVENT_COLUMN_URLです。 933 * (例:eventURL="makeColumn_custom.jsp") 934 * 935 * ※詳細はcolumnTagのeventURL属性の説明をご覧下さい。 936 * 937 * @og.rev 4.3.6.0 (2009/04/01) 938 * 939 * @param url JSPのURL 940 */ 941 public void setEventURL( final String url ) { 942 eventURL = nval( getRequestParameter( url ), eventURL ); 943 } 944 945 /** 946 * 【TAG】eventColumn実行後のcallbak関数指定。 947 * 948 * @og.tag 949 * eventColumnの動作終了後に実行するCallback関数の指定を行います。 950 * 関数名のみを指定して下さい。 951 * ex) sampleCallback()を実行する場合はeventCallback="sampleCallback" 952 * 実行する関数の第一引数には自動的に次の要素が入った配列が渡されます 953 * [0] 変更された子カラムのID属性値 954 * [1] evnetColumn実行後の子カラムの値 955 * [2] eventColumn実行前の子カラムの値 956 * 957 * この属性は、optionAttributesへの設定と同様の動作を行います。 958 * 959 * @og.rev 5.5.4.0 (2012/07/02) 新規追加 960 * 961 * @param callback Callback関数 962 */ 963 public void setEventCallback( final String callback ) { 964 // optionAttributes扱いで登録します。 965 if( callback != null && callback.length() > 0 ){ 966 add( "optionAttributes", "eventCallback='"+getRequestParameter( callback )+"'" ); 967 } 968 } 969 970 /** 971 * 【TAG】リアルタイムチェックを行わない指定。 972 * 973 * @og.tag 974 * カラム単位でリアルタイムチェックを行わない設定をします。 975 * タグに独自属性としてrealTimeChk="xxx"を追記します。 976 * falseを設定した場合にチェックが行われなくなります。 977 * 初期値はリアルタイムチェックを行う(何も指定しない)です。 978 * 979 * この属性は、optionAttributesへの設定と同様の動作を行います。 980 * 981 * @og.rev 5.9.32.2 (2018/05/18) 新規追加 982 * 983 * @param flg リアルタイムチェックを行うかどうか 984 */ 985 public void setUseRealTimeCheck( final String flg ) { 986 String rtcf = getRequestParameter( flg ); 987 // optionAttributes扱いで登録します。 988 if( rtcf != null && rtcf.length() > 0 ){ 989 add( "optionAttributes", " realTimeChk=\""+getRequestParameter( flg )+"\"" ); 990 } 991 } 992 993 /** 994 * 【HTML5】表示形式を指定します(初期値:text)。 995 * 996 * @og.tag 997 * ColumnTagは、カラムリソースで作成される為、タイプは固定です。 998 * しかし、HTML5 で追加された形式には、有用なタイプも存在する為、 999 * それらへの書き換えをできるようにします。 1000 * よって、ここでは、従来型のタイプへの書き換えはできません。 1001 * (textだけは例外で戻せるようにします)。 1002 * 1003 * [search/tel/url/email/datetime/date/month/week/time/datetime-local/number/range/color] 1004 * が、設定できます。 1005 * 1006 * HTML5 の機能を有効にするには、ネイティブモードで動作させる必要があります。 1007 * @ USE_IE7_HEADER = "false" に設定する。 1008 * A USE_HTML5_HEADER = "true" に設定する。 1009 * B IEのツール⇒互換表示設定で、互換表示に追加したWebサイトから削除する。 1010 * C 同上の設定で、イントラサイトを互換表示で表示するのチェックを外す。 1011 * 必要があります。 1012 * 1013 * <og:input type="text" /> テキストボックスを表示 1014 * 1015 * HTML5 で追加されたタイプ 1016 * <og:input type="search" /> 検索テキストの入力欄を作成する 1017 * <og:input type="tel" /> 電話番号の入力欄を作成する 1018 * <og:input type="url" /> URLの入力欄を作成する 1019 * <og:input type="email" /> メールアドレスの入力欄を作成する 1020 * <og:input type="datetime" /> UTC(協定世界時)による日時の入力欄を作成する 1021 * <og:input type="date" /> 日付の入力欄を作成する 1022 * <og:input type="month" /> 月の入力欄を作成する 1023 * <og:input type="week" /> 週の入力欄を作成する 1024 * <og:input type="time" /> 時間の入力欄を作成する 1025 * <og:input type="datetime-local" /> UTC(協定世界時)によらないローカル日時の入力欄を作成する 1026 * <og:input type="number" /> 数値の入力欄を作成する 1027 * <og:input type="range" /> レンジの入力欄を作成する 1028 * <og:input type="color" /> 色の入力欄を作成する 1029 * 1030 * @og.rev 5.7.1.0 (2013/12/06) HTML5 対応(新規追加) 1031 * 1032 * @param type HTML5用 [text/search/tel/url/email/datetime/date/month/week/time/datetime-local/number/range/color] 1033 */ 1034 public void setType( final String type ) { 1035 String tp = getRequestParameter( type ); 1036 1037 if( check( "|" + tp + "|" , CHECK_TYPE ) ) { 1038 set( "type",tp ); 1039 } 1040 else { 1041 String errMsg = "type 属性は、下記の中から選択してください。type=[" 1042 + tp + " in [" + CHECK_TYPE + "]"; 1043 throw new HybsSystemException( errMsg ); 1044 } 1045 } 1046 1047 /** 1048 * 【TAG】ResourceManager を使用しないかどうか[true/false]を指定します(初期値:false)。 1049 * 1050 * @og.tag 1051 * trueを指定すると、使用しない設定になります。 1052 * これは、データベースから検索した値そのものが返される カラムオブジェクトを使用することになります。 1053 * 「noResource」なので、意味が反転しているのをご注意ください。 1054 * 1055 * false(初期値)は、ResourceManager を使用します。 1056 * 1057 * @og.rev 5.7.3.0 (2014/02/07) 新規作成 1058 * 1059 * @param flag ResourceManager を使用しないかどうか [true:使用しない/false:使用する] 1060 */ 1061 public void setNoResource( final String flag ) { 1062 noResource = nval( getRequestParameter( flag ),noResource ); 1063 } 1064 1065 /** 1066 * 【TAG】レンデラ利用時のExcel出力でセルタイプを文字固定にするか[true/false]を指定します(初期値:システム定数のUSE_STRING_EXCEL_OUTPUT)。 1067 * 1068 * @og.tag 1069 * falseを指定すると、dbTypeに従ったセルタイプとなります。 1070 * TableWriter内部でdouble変換をするためエラーに注意してください。 1071 * (初期値:システム定数のUSE_STRING_EXCEL_OUTPUT[={@og.value org.opengion.hayabusa.common.SystemData#USE_STRING_EXCEL_OUTPUT}])。 1072 * 1073 * @og.rev 5.7.6.3 (2014/05/23) 新規作成 1074 * 1075 * @param flag レンデラ利用時のExcel出力でセルタイプを文字固定にするか [true:固定する/false:固定しない] 1076 */ 1077 public void setStringOutput( final String flag ) { 1078 stringOutput = nval( getRequestParameter( flag ),stringOutput ); 1079 } 1080 1081 /** 1082 * シリアライズ用のカスタムシリアライズ書き込みメソッド 1083 * 1084 * @og.rev 4.0.0.0 (2006/09/31) 新規追加 1085 * @serialData 一部のオブジェクトは、シリアライズされません。 1086 * 1087 * @param strm ObjectOutputStreamオブジェクト 1088 * @throws IOException シリアライズに関する入出力エラーが発生した場合 1089 */ 1090 private void writeObject( final ObjectOutputStream strm ) throws IOException { 1091 strm.defaultWriteObject(); 1092 } 1093 1094 /** 1095 * シリアライズ用のカスタムシリアライズ読み込みメソッド 1096 * 1097 * ここでは、transient 宣言された内部変数の内、初期化が必要なフィールドのみ設定します。 1098 * 1099 * @og.rev 4.0.0.0 (2006/09/31) 新規追加 1100 * @serialData 一部のオブジェクトは、シリアライズされません。 1101 * 1102 * @param strm ObjectInputStreamオブジェクト 1103 * @see #release2() 1104 * @throws IOException シリアライズに関する入出力エラーが発生した場合 1105 * @throws ClassNotFoundException クラスを見つけることができなかった場合 1106 */ 1107 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 1108 strm.defaultReadObject(); 1109 } 1110 1111 /** 1112 * このオブジェクトの文字列表現を返します。 1113 * 基本的にデバッグ目的に使用します。 1114 * 1115 * @return このクラスの文字列表現 1116 */ 1117 @Override 1118 public String toString() { 1119 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 1120 .println( "VERSION" ,VERSION ) 1121 .println( "tableId" ,tableId ) 1122 .println( "columns" ,columns ) 1123 .println( "allColumns" ,allColumns ) 1124 .println( "className" ,className ) 1125 .println( "size" ,size ) 1126 .println( "maxlength" ,maxlength ) 1127 .println( "writable" ,writable ) 1128 .println( "renderer" ,renderer ) 1129 .println( "editor" ,editor ) 1130 .println( "codeName" ,codeName ) 1131 .println( "dbType" ,dbType ) 1132 .println( "defaultVal" ,defaultVal ) 1133 .println( "parameter" ,parameter ) 1134 .println( "dbid" ,dbid ) 1135 .println( "addNoValue" ,addNoValue ) 1136 .println( "Other..." ,getAttributes().getAttribute() ) 1137 .fixForm().toString() ; 1138 } 1139}