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.html;
017
018 import java.util.Arrays;
019 import java.util.Iterator;
020 import java.util.List;
021 import java.util.Map;
022 import java.io.Writer;
023 import java.io.IOException;
024
025 import org.opengion.fukurou.util.StringUtil;
026 import org.opengion.fukurou.util.Attributes;
027
028 import org.opengion.hayabusa.common.HybsSystem;
029 import org.opengion.hayabusa.common.HybsSystemException;
030 import org.opengion.hayabusa.db.DBColumn;
031 import org.opengion.hayabusa.db.DBTableModel;
032 import org.opengion.hayabusa.resource.ResourceManager;
033
034 /**
035 * ViewForm インターフェース の実?bstractクラスです?
036 * これ?共通?スーパ?クラスとして ?表示フォー?例:HTML表示?に使?す?
037 *
038 * こ?クラス は、setter/getterメソ?の?ォルト実?提供して?す?
039 * ?表示フォー?対応したサブクラス上で, create() をオーバ?ライドして下さ??
040 *
041 * @og.group 画面表示
042 *
043 * @version 4.0
044 * @author Kazuhiko Hasegawa
045 * @since JDK5.0,
046 */
047 public abstract class AbstractViewForm implements ViewForm {
048 // 5.2.1.0 (2010/10/01)
049 private final int COLUMNS_MAXSIZE = HybsSystem.sysInt( "HTML_COLUMNS_MAXSIZE" ) ; // 表示フィールド?大きさ
050
051 // 3.8.0.3 (2005/07/15) 新しいヘッ??固定用のDIV要??る?
052 private static final String LAYER_ST0 = "" ;
053 private static final String LAYER_END0 = "" ;
054 private static final String LAYER_END2 = "<a href=\"#top\" name=\"h_end\" id=\"h_end\" ></a></div></div></div></div>" ;
055
056 // 5.1.8.0 (2010/07/01) groupClass のタイプを定義します?
057 private static enum CLM_GRP { KIGO , CHAR };
058
059 private String name = ""; // メニューの名前
060 private DBTableModel table = null;
061 private DBColumn[] dbColumn = null;
062 private boolean[] clmWritable = null;
063 private boolean[] writeCtrl = null; // 3.8.0.9 (2005/10/17)
064 private boolean[] clmDisplay = null;
065 private boolean[] clmGroup = null; // 3.8.5.0 (2006/03/20)
066 private String groupClass = ""; // 5.1.8.0 (2010/07/01)
067 private CLM_GRP groupType = null; // 5.1.8.0 (2010/07/01)
068 private boolean[] sortKeys = null; // 3.6.0.0 (2004/09/17)
069 private boolean[] useEventCols = null; // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
070 private boolean useSorterKeys = false; // 3.6.0.0 (2004/09/17) ?変数
071 private String sorterQuery = ""; // 3.6.0.0 (2004/09/17) ?変数
072 private String viewFormID = null;
073 private int startNo = 0 ;
074 private int pageSize = HybsSystem.sysInt( "HTML_PAGESIZE" ) ;
075 private boolean rowWritableFlag = false; // ?カラ??writable か?
076 private ViewMarker viewLink = null;
077 private ViewMarker viewMarker = null;
078 private ViewMarker editMarker = null; // 3.8.6.1 (2006/10/20)
079 private String selectedType = "checkbox";
080 private String numberType = "sequence" ; // 3.5.1.0 (2003/10/03) 新規作?
081 private int numberTypeClm = -1; // 3.5.1.0 (2003/10/03) 新規作?
082 private String[] numberTypeData = null; // 3.5.1.0 (2003/10/03) 新規作?
083 private String optTypeAttri = null;
084 private boolean noMessage = false;
085 private int backLinkCount = 0 ;
086 private int headerSkipCount = 0; // 0:通常ヘッ??n:n回ごとに現れる
087 private boolean skip = ViewForm.DEFAULT_SKIP; // 3.5.3.1 (2003/10/31)
088 private int useCheckControl = 0 ; // 3.7.0.1 (2005/01/31)
089 private boolean useTableSorter = HybsSystem.sysBool( "VIEW_USE_TABLE_SORTER" ) ; // 3.5.4.7 (2004/02/06)
090 private boolean numberDisplay = true ; // 3.5.5.0 (2004/03/12)
091 private int scrollRowNo = -1; // 3.7.0.3 (2005/03/01)
092
093 // 3.5.4.6 (2004/01/30) ヘッ????を定義しておきます?
094 private static final String NO_HEADER = "No" ;
095
096 // 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを受け取ります?
097 private Map<String,String> viewParam = null; // 4.3.3.6 (2008/11/15) Generics警告対?
098
099 //5.5.8.3 (2012/11/17) Stringでなく?Objectタイプをもてるよ?する?積上げガント対応?
100 private List<String[]> viewArrayList = null; // 5.5.9.0 (2012/12/03) ObjectではなくArrayList
101
102 private int columnCount = 0 ; // 3.5.5.7 (2004/05/10)
103 private int rowCount = 0 ; // 4.0.0 (2006/01/06)
104
105 // 3.5.6.2 (2004/07/05) ゼブラ模様??を、ViewForm としてサポ??
106 // 0(ゼブラな??1(ワーニング)?2以?エラー)?(ゼブラ)?以?行数まと?
107 private int bgColorCycle = 1 ;
108 // 行ごとに色を変更する時?、デフォルトクラス属?
109 private static final String BG_COLOR_ROW0 = " class=\"row_0\"";
110 // 行ごとに色を変更する時?、?り替え後クラス属?
111 private static final String BG_COLOR_ROW1 = " class=\"row_1\"";
112
113 // 行ごとに色を変更する時?、?り替え後クラス属?
114 private static final String BG_COLOR_ROWSEL = " class=\"row_sel\""; // 3.7.0.3 (2005/03/01)
115
116 // 警告時の行ごとに色を変更する時?、デフォルトクラス属?
117 private static final String BG_WARNING_COLOR_ROW0 = " class=\"row_0 row_warning\"";
118 // 警告時の行ごとに色を変更する時?、?り替え後クラス属?
119 private static final String BG_WARNING_COLOR_ROW1 = " class=\"row_1 row_warning\"";
120
121 // エラー時?行ごとに色を変更する時?、デフォルトクラス属?
122 private static final String BG_ERROR_COLOR_ROW0 = " class=\"row_0 row_error\"";
123 // エラー時?行ごとに色を変更する時?、?り替え後クラス属?
124 private static final String BG_ERROR_COLOR_ROW1 = " class=\"row_1 row_error\"";
125
126 private String color_row0 = BG_COLOR_ROW0 ;
127 private String color_row1 = BG_COLOR_ROW1 ;
128
129 // 5.1.8.0 (2010/07/01) 行に対して、動?クラス属?を付与するカラ?を指定します?
130 private int bgColorClsClmNo = -1;
131
132 // 3.5.6.4 (2004/07/16)
133 private boolean useScrollBar = HybsSystem.sysBool( "VIEW_USE_SCROLLBAR" ) ;
134
135 // 3.6.0.0 (2004/09/17)
136 private boolean firstChecked = false ;
137
138 // 3.7.1.1 (2005/05/31) SEL_ROW機?使用時に、BG_COLOR_ROWSEL の使用 ?無を指定します?
139 private boolean useSelRowColor = false ;
140
141 // 4.0.0 (2007/04/16) tableタグを?力するときに付与します?
142 private String clazz = "viewTable";
143
144 // 4.0.0.0 (2007/11/27) ResourceManagerを設定します?(クロス?で使用)
145 private ResourceManager resourceManager = null;
146
147 // 4.2.0.0 (2008/03/03) ビューの?高さを指定できるようにします?
148 private String height = null;
149 private String width = null;
150
151 // 4.3.1.0 (2008/09/08)
152 private boolean skipNoEdit = false;
153
154 // 4.3.3.0 (2008/10/01) 画面遷移なしモード時に?に出力する行番号及?改廃Cのキーを定義します?
155 private static final String hiddenRowKey = "rid";
156 private static final String hiddenCdkhKey = "kh";
157
158 private boolean noTransition= false;
159
160 // 5.1.7.0 (2010/06/01) ViewFormのキャ?ュ復?画面ID単位に行う
161 private String gamenId = null;
162
163 // 5.2.1.0 (2010/10/01) ?入力カラ??アシスト機?を利用するカラ??します?
164 private boolean[] clmBulkSet = null;
165
166 // 5.5.4.2 (2012/07/13) mustとmustAnyを保持する
167 private String[] nullCheck = null;
168 private String[] mustAnyCheck= null; // 3.8.0.9 (2005/10/17)
169
170 /**
171 * 初期化します?
172 * ここでは、?部で使用されて?キャ?ュをクリアし?
173 * 新しいモ?(DBTableModel)と??lang) を?に???タを?構築します?
174 * なお???ブルモ?に対してViewFormで変更を加える場合?、変更処?行った後に
175 * こ?メソ?を実行するよ?して下さ??
176 *
177 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
178 * @og.rev 3.5.6.1 (2004/06/25) lang ?コー?属?を削除します?
179 * @og.rev 3.5.6.3 (2004/07/12) 呼ばれたら??初期化するよ?修正(?戻?
180 * @og.rev 3.6.0.0 (2004/09/17) sortKeys 追?
181 * @og.rev 3.8.0.9 (2005/10/17) writeCtrl 追?
182 * @og.rev 3.8.5.0 (2006/03/20) clmGroup 追?
183 * @og.rev 4.0.0.0 (2006/01/06) rowCount 追?
184 * @og.rev 4.0.1.0 (2007/12/13) コメント?追?
185 * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
186 * @og.rev 5.2.0.0 (2010/09/01) 2回?続登録時に選択行にスクロールしな?グを修正?
187 * @og.rev 5.2.1.0 (2010/10/01) ?入力カラ??アシスト機?を利用するカラ?clmBulkSet) 追?
188 * @og.rev 5.5.4.2 (2012/07/13) mustとmustany保持
189 *
190 * @param table DBTableModelオブジェク?
191 */
192 public void init( final DBTableModel table ) {
193 this.table = table;
194 if( table != null ) {
195 rowCount = table.getRowCount(); // 4.0.0 (2006/01/06)
196 columnCount = table.getColumnCount();
197 clmWritable = new boolean[ columnCount ];
198 writeCtrl = new boolean[ columnCount ]; // 3.8.0.9 (2005/10/17)
199 clmDisplay = new boolean[ columnCount ];
200 clmGroup = new boolean[ columnCount ]; // 3.8.5.0 (2006/03/20)
201 sortKeys = new boolean[ columnCount ]; // 3.6.0.0 (2004/09/17)
202 dbColumn = new DBColumn[ columnCount ];
203 useEventCols= new boolean[ columnCount ]; // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
204 clmBulkSet = new boolean[ columnCount ]; // 5.2.1.0 (2010/10/01)
205 Arrays.fill( clmWritable,DEFAULT_CLM_WRITABLE ); // カラ??書込み許可
206 Arrays.fill( writeCtrl,false ); // 書き込み制御の許可
207 Arrays.fill( clmDisplay ,true ); // カラ??表示許可
208 Arrays.fill( clmGroup ,false ); // 3.8.5.0 (2006/03/20) カラ??グループ化
209 Arrays.fill( sortKeys ,false ); // すべてリンクしな?設定する?
210 Arrays.fill( useEventCols, false ); // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
211 Arrays.fill( clmBulkSet, false ); // 5.2.1.0 (2010/10/01)
212 for( int i=0; i<columnCount; i++ ) {
213 dbColumn[i] = table.getDBColumn( i );
214 }
215
216 // ?カラ?(??のカラ??列0番目)?writable か?
217 rowWritableFlag = "WRITABLE".equalsIgnoreCase( getColumnName(0) );
218
219 // 5.2.0.0 (2010/09/01) 2回?続登録時に選択行にスクロールしな?グを修正?
220 scrollRowNo = -1;
221 firstChecked = false;
222
223 // 5.5.4.2 (2102/07/13)
224 nullCheck = table.getMustArray();
225 mustAnyCheck = table.getMustAnyArray();
226 }
227 }
228
229 /**
230 * ?の DBTableModel を返します?
231 *
232 * @return DBTableModelオブジェク?
233 */
234 public DBTableModel getDBTableModel() {
235 return table;
236 }
237
238 /**
239 * ViewForm の識別IDをセ?します?
240 * これは、ViewFormFactory でプ?ルする場合?識別キーになります?
241 * プ?ルに戻すときに自??身に こ?識別IDを使用します?
242 *
243 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
244 * @og.rev 3.5.6.2 (2004/07/05) メソ?名がまぎらわし?、変更します?
245 *
246 * @param viewFormID 識別ID
247 */
248 public void setId( final String viewFormID ) {
249 this.viewFormID = viewFormID;
250 }
251
252 /**
253 * ViewForm の識別IDを返します?
254 * これは、ViewFormFactory でプ?ルする場合?識別キーになります?
255 * プ?ルに戻すときに自??身に こ?識別IDを使用します?
256 *
257 * @og.rev 3.5.6.2 (2004/07/05) メソ?名がまぎらわし?、変更します?
258 *
259 * @return 識別ID
260 */
261 public String getId() {
262 return viewFormID;
263 }
264
265 /**
266 * DBTableModel から HTML??を作?して返します?
267 *
268 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
269 *
270 * @return DBTableModelから作?され?HTML??
271 */
272 public String create() {
273 return create( 0, rowCount );
274 }
275
276 /**
277 * DBTableModel から View??を作?して、Writer にセ?します?
278 * 処??容は、create( int , int ) と同じですが、中間???(StringBuilder)
279 * を作?せずに、直接、Writer に書き?します?
280 * よって、データ作?途中でエラーが発生しても?すでに?つか???タは
281 * クライアントに返されて?す?
282 *
283 * @og.rev 5.0.0.1 (2009/08/15) 直接出力用の Writer 引数追?
284 *
285 * @param startNo 表示開始位置
286 * @param pageSize 表示件数
287 * @param wrt 直接登録用の Writer
288 */
289 public void create( final int startNo, final int pageSize, final Writer wrt ) throws IOException {
290 String errMsg = "こ?メソ?は、直接登録用の Writer のビューでのみ使用できます?";
291 throw new UnsupportedOperationException( errMsg );
292 }
293
294 /**
295 * ?をクリア(初期?します?
296 *
297 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
298 * @og.rev 3.5.1.0 (2003/10/03) displayNumber ?。numberType 新規追??
299 * @og.rev 3.5.2.0 (2003/10/20) headerSkipCount属?を追?
300 * @og.rev 3.5.3.1 (2003/10/31) skip属?を追?
301 * @og.rev 3.5.4.3 (2004/01/05) useCheckControl属?を追?
302 * @og.rev 3.5.4.3 (2004/01/05) viewFormID属?を削除(初期化しな?
303 * @og.rev 3.5.4.7 (2004/02/06) useTableSorter属?を追?
304 * @og.rev 3.5.4.7 (2004/02/06) columnMaxSize は使用されて???で削除します?
305 * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追?ます?
306 * @og.rev 3.5.5.0 (2004/03/12) numberType 属?の "delete" 値追?伴な??numberDisplay 変数の追??
307 * @og.rev 3.5.6.2 (2004/07/05) bgColorCycle 変数の追??
308 * @og.rev 3.5.6.4 (2004/07/16) useScrollBar 変数の追??
309 * @og.rev 3.6.0.0 (2004/09/17) sortKeys , firstChecked , useSorterKeys , sorterQuery 変数の追??
310 * @og.rev 3.7.0.1 (2005/01/31) 全件チェ?コントロール変更( boolean ?int )
311 * @og.rev 3.7.1.1 (2005/05/31) useSelRowColor 変数の追??
312 * @og.rev 3.8.0.3 (2005/07/15) scrollBarType 変数の追?
313 * @og.rev 3.8.0.9 (2005/10/17) writeCtrl 変数の追?
314 * @og.rev 3.8.5.0 (2006/03/20) clmGroup 変数の追?
315 * @og.rev 3.8.6.1 (2006/10/20) editMarker 変数の追?
316 * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
317 * @og.rev 5.1.8.0 (2010/07/01) groupClass , groupType 変数の追?
318 * @og.rev 5.1.8.0 (2010/07/01) bgColorClsClmNo 属?を追?ます?
319 * @og.rev 5.2.1.0 (2010/10/01) ?入力カラ??アシスト機?を利用するカラ?clmBulkSet) 追?
320 * @og.rev 5.5.4.2 (2012/07/13) mustとmustany追?
321 * @og.rev 5.5.9.0 (2012/12/03) viewArrayList追?viewObjectは削除)
322 */
323 public void clear() {
324 name = ""; // メニューの名前
325 table = null;
326 dbColumn = null;
327 clmWritable = null;
328 writeCtrl = null; // 3.8.0.9 (2005/10/17)
329 clmDisplay = null;
330 clmGroup = null; // 3.8.5.0 (2006/03/20)
331 groupClass = ""; // 5.1.8.0 (2010/07/01)
332 groupType = null; // 5.1.8.0 (2010/07/01)
333 sortKeys = null; // 3.6.0.0 (2004/09/17)
334 useSorterKeys = false; // 3.6.0.0 (2004/09/17)
335 sorterQuery = ""; // 3.6.0.0 (2004/09/17)
336 startNo = 0 ;
337 pageSize = HybsSystem.sysInt( "HTML_PAGESIZE" ) ;
338 rowWritableFlag = false; // ?カラ??writable か?
339 viewLink = null;
340 viewMarker = null;
341 editMarker = null; // 3.8.6.1 (2006/10/20)
342 backLinkCount = 0;
343 selectedType = "checkbox";
344 numberType = "sequence";
345 numberTypeClm = -1;
346 numberTypeData = null;
347 headerSkipCount = 0; // 0:通常ヘッ??n:n回ごとに現れる
348 skip = ViewForm.DEFAULT_SKIP; // 3.5.3.1 (2003/10/31)
349 useCheckControl = 0 ; // 3.7.0.1 (2005/01/31)
350 viewParam = null; // 3.5.4.8 (2004/02/23)
351 viewArrayList = null; // 5.5.8.3 (2012/12/03)
352 numberDisplay = true ; // 3.5.5.0 (2004/03/12)
353 columnCount = 0; // 3.5.5.7 (2004/05/10)
354 bgColorCycle = 1; // 3.5.6.2 (2004/07/05)
355 bgColorClsClmNo = -1; // 5.1.8.0 (2010/07/01)
356 color_row0 = BG_COLOR_ROW0 ; // 3.5.6.2 (2004/07/05)
357 color_row1 = BG_COLOR_ROW1 ; // 3.5.6.2 (2004/07/05)
358 useScrollBar = HybsSystem.sysBool( "VIEW_USE_SCROLLBAR" ) ; // 3.5.6.4 (2004/07/16)
359 firstChecked = false;
360 useSelRowColor = false; // 3.7.1.1 (2005/05/31)
361 height = null; // 4.2.0.0 (2008/03/18)
362 width = null; // 4.2.0.0 (2008/03/18)
363 skipNoEdit = false; // 4.3.2.0 (2008/09/10)
364 useEventCols = null; // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
365 clmBulkSet = null; // 5.2.1.0 (2010/10/01) ?入力カラ??アシスト機?を利用するカラ?clmBulkSet) 追?
366 nullCheck = null; // 5.5.4.2 (2012/07/13)
367 mustAnyCheck = null; // 5.5.4.2 (2012/07/13)
368 }
369
370 /**
371 * ??ブルのヘッ??の前に、その??タの表示?を示す文字?を作?します?
372 * [開始No - 終?o]/[件数] です?
373 *
374 * @og.rev 2.0.0.2 (2002/09/24) [1 - 4]/[4] 等?メ?ージ出力後? <br> 出力を中止?
375 * @og.rev 4.3.6.0 (2008/04/01) [1 - 4]/[4]のメ?ージをJavaScriptで入れ替えるように変更
376 * @og.rev 4.3.8.0 (2009/08/01) 同メ?ージ?対応及びheadでコントロール可能にする
377 *
378 * @param stNo 表示開始位置
379 * @param pgSize 表示件数
380 *
381 * @return ??ブルのヘッ??タグ??
382 */
383 protected String getCountForm( final int stNo, final int pgSize ) {
384 if( noMessage ) { return ""; }
385
386 StringBuilder out = new StringBuilder();
387
388 int lstNo = ( stNo+pgSize > rowCount ) ? rowCount : stNo+pgSize ;
389 // 4.3.6.0 (2009/04/01) 件数表示の方法変更
390 // out.append( "[" ).append( stNo+1 ).append( " - " ).append( lstNo ).append( "]" );
391 // out.append( "/[" ).append( rowCount ).append( "]" );
392 // out.append( "<div id=\"originalRowCountMessage\">" ); // 4.3.8.0 (2009/08/01) idからclassに変更
393 out.append( "<div class=\"orgRowCntMsg\">" );
394 out.append( "[" ).append( stNo+1 ).append( " - " ).append( lstNo ).append( "]" );
395 out.append( "/[" ).append( rowCount ).append( "]" );
396 out.append( "</div>" );
397 // 4.3.8.0 (2009/08/01) scriptはhead読み込み方式に変更
398 // out.append( "<script language=\"javascript\">" );
399 // out.append( "$(function(){$('#rowCountMessage').replaceWith($('#originalRowCountMessage'));})");
400 // out.append( "</script>" );
401
402 return out.toString() ;
403 }
404
405 /**
406 * カラ??ラベル名を返します?
407 * カラ???名に対して,見える形の??を返します?
408 * ?には,リソースバンドルと?せて,?ロケール毎にラベル?
409 * ?えます?
410 *
411 * @param column カラ?号
412 *
413 * @return カラ??ラベル?
414 */
415 protected String getColumnLabel( final int column ) {
416 return dbColumn[column].getLabel();
417 }
418
419 /**
420 * カラ?を返します?
421 * ??タベ?スで検索したとき?カラ???名を返します?
422 *
423 * @param column カラ?号
424 *
425 * @return カラ?
426 */
427 protected String getColumnName( final int column ) {
428 return dbColumn[column].getName();
429 }
430
431 /**
432 * row行,colum?の??タの値を返します?
433 *
434 * @param row 行番号
435 * @param column カラ?号
436 *
437 * @return row行,colum?の??タの値
438 */
439 protected String getValue( final int row,final int column ) {
440 return table.getValue( row,column ) ;
441 }
442
443 /**
444 * row行,colum?の??タの値を返します?
445 * これは、データの値そ?も?ではなく?そ?値のラベル?を返します?
446 *
447 * @og.rev 3.8.0.9 (2005/10/17) 互換性確保?メソ?
448 *
449 * @param row 行番号
450 * @param column カラ?号
451 *
452 * @return row行,colum?の??タの値
453 */
454 protected String getRendererValue( final int row,final int column) {
455 return getRendererValue( row,column,getValue( row,column ) );
456 }
457
458 /**
459 * row行,colum?の??タの値を返します?
460 * これは、データの値そ?も?ではなく?そ?値のラベル?を返します?
461 *
462 * @og.rev 3.8.0.9 (2005/10/17) writableControl 追?よる引数変更
463 * @og.rev 3.8.5.0 (2006/03/20) clmGroup 追?よるグループ化処?
464 * @og.rev 4.0.0.0 (2005/11/30) 行番号に対応した?を返すように変更します?
465 * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
466 * @og.rev 5.1.8.0 (2010/07/01) カラ?ループ? groupClass 対?
467 *
468 * @param row 行番号
469 * @param column カラ?号
470 * @param inVal ??タの値
471 *
472 * @return row行,colum?の??タの値
473 */
474 protected String getRendererValue( final int row,final int column , final String inVal ) {
475 String val = dbColumn[column].getRendererValue( row,inVal );
476
477 // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
478 if( useEventCols[column] && isWritable( row ) ) {
479 val = dbColumn[column].getEventColumnTag( val, getValue( row,column ), row, false );
480 }
481 if( viewLink != null ) {
482 val = viewLink.getMarkerString( row,column,val );
483 }
484 if( viewMarker != null ) {
485 val = viewMarker.getMarkerString( row,column,val );
486 }
487
488 // 5.1.8.0 (2010/07/01) groupClass 対応:空??場合を??し??に処?行う?
489 // 出力する?が?空??なら?前行と同じでも?空?にしておきます?
490 if( groupType != null &&
491 clmGroup[column] && row > 0 && row != startNo &&
492 inVal != null && inVal.equals( getValue( row-1,column ) ) &&
493 val != null && val.length() > 0 ) {
494 if( groupType == CLM_GRP.KIGO ) {
495 val = groupClass;
496 }
497 else { // groupType == CLM_GRP.CHAR
498 val = "<span class=\"" + groupClass + "\">" + val + "</span>";
499 }
500 }
501
502 return val;
503 }
504
505 /**
506 * row行,colum?の??タの値をHTML??に変換して返します?
507 * リソースバンドルが登録されて?場合?,リソースに応じ?
508 * HTML??を作?します?
509 *
510 * @og.rev 3.8.0.9 (2005/10/17) writableControl 追?よる引数変更
511 * @og.rev 3.8.6.1 (2006/10/20) editMarker 追?
512 * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
513 *
514 * @param row 行番号
515 * @param column カラ?号
516 * @param inVal ??タの値
517 *
518 * @return row行,colum?の??タの値
519 */
520 protected String getEditorValue( final int row, final int column, final String inVal ) {
521 String val = dbColumn[column].getEditorValue( row,inVal );
522 // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
523 if( useEventCols[column] ) {
524 val = dbColumn[column].getEventColumnTag( val, getValue( row,column ), row, true );
525 }
526 if( editMarker != null ) {
527 val = editMarker.getMarkerString( row,column,val );
528 }
529
530 return val;
531 }
532
533 /**
534 * row行,colum?の??タの値をHTML??に変換して返します?
535 * リソースバンドルが登録されて?場合?,リソースに応じ?
536 * HTML??を作?します?
537 * リソースバンドルが登録されて???合?,getValue( int row,int column )?
538 * 返します?
539 * 新規機?として、writableControl によるエ?ター・レン?ー?が出来ます?
540 * そ?場合?表示/編?もに、?頭のアン??バ?は削除されます?
541 *
542 * @og.rev 3.8.0.9 (2005/10/17) writableControl によるエ?ター・レン?ー??
543 *
544 * @param row 行番号
545 * @param column カラ?号
546 *
547 * @return row行,colum?の??タの値
548 */
549 protected String getValueLabel( final int row, final int column ) {
550 String val = getValue( row,column ) ;
551 boolean isEdit = isColumnWritable( column ) && isWritable( row ) ;
552 if( writeCtrl[ column ] && val != null && val.length() > 0 && val.charAt(0) == '_' ) {
553 isEdit = false;
554 val = val.substring(1); // 先?の '_' を削除
555 }
556
557 if( isEdit ) {
558 return getEditorValue( row,column,val ); // 引数 val 追?
559 }
560 else {
561 return getRendererValue( row,column,val ); // 引数 val 追?
562 }
563 }
564
565 /**
566 * カラ??クラスを文字?にした名称を返します?
567 * これは?HTML上??タグに?データベ?ス定義に応じたクラス?
568 * セ??CSS(Cascading Style Sheet)の class="xxxxx" とする事により
569 * ?スタイルを表現するのに使用します?
570 *
571 * ここでは, カラ?ソースの DBTYPE 属?で????(X,S9,KXなど)を返します?
572 *
573 * @og.rev 4.0.0.0 (2005/01/31) 新規作?(getColumnClassName ?getColumnDbType)
574 * @og.rev 5.2.2.0 (2010/11/01) className ?VARCHAR2,NUMBER以外?場合?、合わせて出力します?
575 *
576 * @param column カラ?号
577 *
578 * @return カラ?? DBTYPE 属?
579 */
580 public String getColumnDbType( final int column ) {
581 // 5.2.2.0 (2010/11/01) className ?BIT の場合?み、合わせて出?
582 String clsName = dbColumn[column].getClassName();
583 if( clsName != null && ! "VARCHAR2".equals( clsName ) && !"NUMBER".equals( clsName ) ) {
584 return clsName + " " + dbColumn[column].getDbType();
585 }
586
587 return dbColumn[column].getDbType();
588 }
589
590 /**
591 * カラ?書き込み可能かど?を返します?
592 *
593 * @param column カラ?号
594 *
595 * @return 書込み可能(true)?不可能(false)
596 */
597 protected boolean isColumnWritable( final int column ) {
598 return clmWritable[ column ];
599 }
600
601 /**
602 * カラ?書き込み可能かど?をセ?します?
603 *
604 * @param column カラ?号
605 * @param rw 書込み可能(true)?不可能(false)
606 */
607 public void setColumnWritable( final int column,final boolean rw ) {
608 clmWritable[ column ] = rw;
609 }
610
611 /**
612 * 書き込み可能カラ?を?カンマ区?で与えます?
613 * 例?OYA,KO,HJO,SU,DYSET,DYUPD"
614 * setColumnWritable( int column,boolean rw ) の簡易版です?
615 * null を与えた?合?,なにもしません?
616 * また?全カラ?つ?、有効にする場合?、columnName="*" を設定します?
617 *
618 * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
619 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
620 *
621 * @param columnName カラ?
622 */
623 public void setColumnWritable( final String columnName ) {
624 if( columnName != null ) {
625 setBooleanArray( columnName,true,clmWritable );
626
627 // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
628 setUseEventCols();
629 }
630 }
631
632 /**
633 * 書き込み不可カラ?を?カンマ区?で与えます?
634 * 例?OYA,KO,HJO,SU,DYSET,DYUPD"
635 * null を与えた?合?,なにもしません?
636 * また?全カラ?つ?、有効にする場合?、columnName="*" を設定します?
637 *
638 * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
639 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
640 *
641 * @param columnName カラ?
642 */
643 public void setNoWritable( final String columnName ) {
644 if( columnName != null ) {
645 setBooleanArray( columnName,false,clmWritable );
646 // 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
647 setUseEventCols();
648 }
649 }
650
651 /**
652 * ??目がイベントカラ?するかど?をセ?します?
653 *
654 * @og.rev 5.1.7.0 (2010/06/01) 新規作?(動的プル?ン実?直?
655 */
656 private void setUseEventCols() {
657 for( int column=0; column<dbColumn.length; column++ ) {
658 String evCols = dbColumn[column].getEventColumn();
659 if( evCols != null && evCols.length() > 0 ) {
660 String[] evColsArr = StringUtil.csv2Array( evCols );
661 for( int i=0; i<evColsArr.length; i++ ) {
662 String evCol = evColsArr[i];
663 if( evCol.charAt(0) == '_' ) { evCol = evCol.substring( 1 ); }
664 if( isColumnWritable( table.getColumnNo( evCol ) ) ) {
665 useEventCols[column] = true;
666 break;
667 }
668 }
669 }
670 }
671 }
672
673 /**
674 * 行指定?書込み許可を返します?
675 *
676 * @og.rev 3.5.4.2 (2003/12/15) writable カラ? "2" のときも、書き込み許可とする
677 * @og.rev 3.5.5.7 (2004/05/10) 判定ロジ?を若干見直します?
678 *
679 * @param row 行番号
680 *
681 * @return 書込み可能(true)?不可能(false)
682 */
683 protected boolean isWritable( final int row ) {
684 boolean rtn = table.isRowWritable( row );
685 if( rtn && rowWritableFlag ) {
686 String val = table.getValue( row,0 );
687 rtn = "TRUE".equalsIgnoreCase( val )
688 || "1".equalsIgnoreCase( val )
689 || "2".equalsIgnoreCase( val ) ;
690
691 if( ! rtn &&
692 ! "FALSE".equalsIgnoreCase( val ) &&
693 ! "0".equalsIgnoreCase( val ) &&
694 ! "".equalsIgnoreCase( val ) ) {
695 String errMsg = "writable は、TRUE,FALSE,0,1,2,null 以外指定できません? +
696 " row=[" + (row+1) + "] val=[" + val + "]";
697 throw new HybsSystemException( errMsg );
698 }
699 }
700 return rtn;
701 }
702
703 /**
704 * 書き込み可能な?rowWritable == true)のチェ?ボックスに対して
705 * 初期値?選択済みにするか?非選択済みにするかを?します?
706 *
707 * @og.rev 3.5.4.2 (2003/12/15) writable カラ? "2" のとき?チェ?を付ける?
708 *
709 * @param row 行???
710 *
711 * @return チェ?ON(true)?チェ?OFF(false)
712 */
713 protected boolean isChecked( final int row ) {
714 boolean rtn = table.isRowChecked( row );
715 if( rowWritableFlag ) {
716 String val = table.getValue( row,0 );
717 rtn = rtn || "2".equalsIgnoreCase( val ) ;
718 }
719 return rtn;
720 }
721
722 /**
723 * チェ?済みの行?先?に、フォーカスを当てる??、チェ?の?前?
724 * 行番号??ーのリンクを作?する為の判定を行います?
725 * つまり???行番号の次の値が?チェ?されて?かど?を判断します?
726 * さらに、これ?、?上位にチェ?されて?番号の時?み
727 * 返します?(表示??ブル中、最高?のみ、true が返る?
728 *
729 * @og.rev 3.6.0.0 (2004/09/17) 新規作?
730 * @og.rev 3.7.0.3 (2005/03/01) setScrollRowNo の対?
731 * @og.rev 3.8.8.3 (2007/02/09) ??の選択?より?行番号へのフォーカスを優?
732 * @og.rev 4.2.3.1 (2008/06/11) 1件目がチェ?されて?場合?、対象外とする?
733 * @og.rev 4.2.4.0 (2008/06/25) 1件目対象外?判定で、指定行番号へのフォーカスを優先する?
734 * @og.rev 5.1.1.1 (2009/12/02) 選択行アンカーは、?身の行に出?default.js#focus2()も合わせて変更)
735 *
736 * @param row 行???
737 *
738 * @return チェ?ON(true)?チェ?OFF(false)
739 */
740 protected boolean isFirstChecked( final int row ) {
741
742 // ??の?回のみ、true を返す。よって、?がtrue なら?false を返す?
743 if( firstChecked ) { return false; }
744
745 // ??次の行を見るため、?オーバ?して??確?
746 if( row >= rowCount ) { return false; } // 5.1.1.1 (2009/12/02)
747
748 final boolean rtn;
749 // 3.8.8.3 (2007/02/09) ??の選択?より?行番号へのフォーカスを優?
750 if( scrollRowNo >= 0 ) {
751 rtn = row == scrollRowNo ; // 5.1.1.1 (2009/12/02)
752 }
753 else {
754 // 1件目がチェ?されて?場合?、対象外とする?.2.3.1 (2008/06/11)
755 if( row == 0 && table.isRowChecked( row ) ) {
756 firstChecked = true;
757 return false;
758 }
759
760 rtn = table.isRowChecked( row ); // 5.1.1.1 (2009/12/02)
761 }
762
763 // ??の?回のみ、true を返す。よって、?がtrue なら?false を返す?
764 if( rtn ) { firstChecked = true; }
765 return rtn;
766 }
767
768 /**
769 * そ?行が、??象かど?をチェ?します?
770 * 処?象かど?は、書き込み可能な?rowWritable == true)
771 * で且つ チェ?された?rowChecked == true) とします?
772 * 例えば,NEXT/PREVでスキ??等?処?行う場合?? 処?象以外を
773 * スキ??することで実現できます?
774 *
775 * @param row 行番号
776 *
777 * @return 処?象(true)???象でな?false)
778 */
779 public boolean isMarked( final int row ) {
780 return isWritable( row ) && isChecked( row ) ;
781 }
782
783 /**
784 * カラ?表示可能かど?を返します?
785 * もし?表示不可の場合?,こ?カラ??全??タが,表示対象から外されます?
786 *
787 * @param column カラ?号
788 *
789 * @return 表示可能(true)?不可能(false)
790 */
791 protected boolean isColumnDisplay( final int column ) {
792 if( rowWritableFlag && column == 0 ) { return false; }
793 return clmDisplay[ column ];
794 }
795
796 /**
797 * 表示可能なカラ??数を返します?
798 *
799 * @return 表示可能なカラ?
800 */
801 protected int getColumnDisplayCount() {
802 int rtn = 0;
803 for( int i=0; i<columnCount; i++ ) {
804 if( isColumnDisplay(i) ) { rtn++ ; }
805 }
806
807 return rtn;
808 }
809
810 /**
811 * カラ?表示可能かど?をセ?します?
812 * DBColumnのROLE属?による表示可否は、ViewFormTag で設定されます?
813 *
814 * @param column カラ?号
815 * @param rw 表示可能(true)?不可能(false)
816 */
817 public void setColumnDisplay( final int column,final boolean rw ) {
818 clmDisplay[ column ] = rw;
819 }
820
821 /**
822 * 表示可能カラ?を?カンマ区?で与えます?
823 * 例?OYA,KO,HJO,SU,DYSET,DYUPD"
824 * setColumnDisplay( int column,boolean rw ) の簡易版です?
825 * null を与えた?合?,なにもしません?
826 * また?全カラ?つ?、有効にする場合?、columnName="*" を設定します?
827 *
828 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
829 *
830 * @param columnName カラ?
831 */
832 public void setColumnDisplay( final String columnName ) {
833 setBooleanArray( columnName,true,clmDisplay );
834 }
835
836 /**
837 * 表示不可カラ?を?カンマ区?で与えます?
838 * 例?OYA,KO,HJO,SU,DYSET,DYUPD"
839 * null を与えた?合?,なにもしません?
840 * また?全カラ?つ?、有効にする場合?、columnName="*" を設定します?
841 *
842 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
843 *
844 * @param columnName カラ?
845 */
846 public void setNoDisplay( final String columnName ) {
847 setBooleanArray( columnName,false,clmDisplay );
848 }
849
850 /**
851 * 同?示??タをまとめる(表示しな?カラ?を?カンマ区?で与えます?
852 *
853 * これは、カラ??グループ化?を行います?
854 * 同じカラ?号で?上?行番号と同じ?の場合に、表示しな??も?です?
855 * 対応?、表示(Renderer)時?みとします?
856 * カラ?位なので、新しいゼブラによる色?は行いません?任意?カラ?適用できる為)
857 * また?ファイル出力などの??タ自身は変更されて?せんので、そのまま??タが落ちます?
858 * また?全カラ?つ?、有効にする場合?、group="*" を設定します?
859 *
860 * @og.rev 3.8.5.0 (2006/03/20) 新規追?
861 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
862 *
863 * @param group まとめるカラ?(CSV形?
864 */
865 public void setColumnGroup( final String group ) {
866 if( group != null ) {
867 if( groupType == null ) { groupType = CLM_GRP.KIGO ; }
868 setBooleanArray( group,true,clmGroup );
869 }
870 }
871
872 /**
873 * 同?示??タをまとめな?ラ?を?カンマ区?で与えます?
874 *
875 * これは、カラ??グループ化?で、同?もまとめな?ラ??するほ?簡単な場合に
876 * 使用します?例えば、キー??以外?、グループ化?したい場合などに便利です?
877 * 動作?、columnGroup の動きと同じです?(まとめな?ラ??するだけです?)
878 *
879 * これは、同?示??タをまとめるカラ?の??columnGroup)と同時にセ?する
880 * ことは出来ません?
881 * また?全カラ?つ?、有効にする場合?、group="*" を設定します?
882 *
883 * @og.rev 5.1.8.0 (2010/07/01) 新規追?
884 *
885 * @param group まとめるカラ?(CSV形?
886 */
887 public void setNoGroup( final String group ) {
888 if( group != null ) {
889 if( groupType == null ) { groupType = CLM_GRP.KIGO ; }
890 setBooleanArray( group,false,clmGroup );
891 }
892 }
893
894 /**
895 * 同?示??タをまとめる場合?、表示方法を?します?
896 *
897 * これは、カラ??グループ化??columnGroup)を行う場合?、まとめ表示の方法を?します?
898 * なにも指定しな??合?、まとめカラ??、表示しな?ゼロ??)になります?
899 * そ?場合?先?行と同じ場合も、変更されたカラ?、NULL(ゼロ??)であった?合も?
900 * 同じ用に表示されるため?区別が付きません?
901 * そこで、前の行と同じ??タの場合に、特殊な処?行うことで、区別できるようにします?
902 * ?方法が特殊なので、注意が?です?
903 * 記号の場合?
904 * 記号(-- , ?, ?, * など)が指定された場合?、そのままの?に置き換えられます?
905 * アルファベット?場合?
906 * アルファベッ?a-z,A-Z)の場合??lt;span class="アルファベッ?>????lt;/span>
907 * 例えば、バ?カラーに色を付ける??を?灰色にする、などできます?
908 * ただし???タ量が圧倒的に増えるため?大量???タ等で使用するのは避けたほ?良?思います?
909 *
910 * @og.rev 3.8.5.0 (2006/03/20) 新規追?
911 *
912 * @param grpCls まとめ表示の方?
913 */
914 public void setGroupClass( final String grpCls ) {
915 if( grpCls != null ) {
916 groupClass = grpCls ;
917 if( groupClass.length() == 0 ) { // ゼロ??の場?
918 groupType = CLM_GRP.KIGO ;
919 }
920 else {
921 char ch = groupClass.charAt(0);
922 if( ( ch >= 'a' && ch <= 'z' ) || ( ch >= 'a' && ch <= 'z' ) ) {
923 groupType = CLM_GRP.CHAR ;
924 }
925 else {
926 groupType = CLM_GRP.KIGO ;
927 }
928 }
929 }
930 }
931
932 /**
933 * カラ?リンクソートを表示するカラ?を?カンマ区?で与えます?
934 *
935 * ヘッ??にソート用リンクを作?する useTableSorter 属? に対して?
936 * カラ??別に作?する場合?カラ?をカンマ区??で?します?
937 * こ? tableSorterKeys 属?は、useTableSorter 属? と無関係に、指定し?
938 * カラ??み、リンクを表示します?
939 * また?全カラ?つ?、有効にする場合?、columnName="*" を設定します?
940 * 例?OYA,KO,HJO,SU,DYSET,DYUPD"
941 *
942 * @og.rev 3.6.0.0 (2004/09/17) 新規作?
943 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
944 *
945 * @param columnName カラ?
946 */
947 public void setTableSorterKeys( final String columnName ) {
948 if( columnName != null ) {
949 setBooleanArray( columnName,true,sortKeys );
950
951 useSorterKeys = true; // 使用したことを記?
952 }
953 }
954
955 /**
956 * ?ラ??フィールド???タ長を返します?
957 *
958 * @og.rev 3.5.5.5 (2004/04/23) DBColumn の size と maxlength の 意味を変更
959 *
960 * @param column カラ?号
961 *
962 * @return カラ?
963 */
964 protected int getColumnSize( final int column ) {
965 return dbColumn[column].getTotalSize(); // 4.0.0 (2005/01/31) メソ?名変更
966 }
967
968 /**
969 * カラ?を返します?
970 *
971 * @return カラ?
972 */
973 protected int getColumnCount() {
974 return columnCount ;
975 }
976
977 /**
978 * 行数を返します?
979 *
980 * @return 行数
981 */
982 protected int getRowCount() {
983 return rowCount;
984 }
985
986 /**
987 * リスト??スを作?する場合? name をセ?します?
988 *
989 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
990 *
991 * @param name 属?
992 */
993 protected void setName( final String name ) {
994 this.name = name;
995 }
996
997 /**
998 * リスト??スを作?する場合? name を返します?
999 *
1000 * @return name属?
1001 */
1002 protected String getName() {
1003 return name;
1004 }
1005
1006 /**
1007 * カラ?をもとに、そのカラ?号を返します?
1008 * カラ?が存在しな??合?? HybsSystemException ?throw します?
1009 *
1010 * @param columnName カラ?
1011 *
1012 * @return カラ?号
1013 */
1014 protected int getColumnNo( final String columnName ) {
1015 return table.getColumnNo( columnName );
1016 }
1017
1018 /**
1019 * 表示開始位置を返します?
1020 *
1021 * @return 表示開始位置
1022 */
1023 public int getStartNo() {
1024 return startNo;
1025 }
1026
1027 /**
1028 * 表示開始位置をセ?します?
1029 *
1030 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
1031 *
1032 * @param no 表示開始位置
1033 */
1034 public void setStartNo( final int no ) {
1035 if( no >= 0 ) { startNo = no; }
1036 }
1037
1038 /**
1039 * 先?へ戻るリンク間隔を返します?
1040 *
1041 * @return backLinkCount リンク間隔
1042 */
1043 public int getBackLinkCount() {
1044 return backLinkCount;
1045 }
1046
1047 /**
1048 * 先?へ戻るリンク間隔をセ?します?
1049 *
1050 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
1051 *
1052 * @param no リンク間隔
1053 */
1054 public void setBackLinkCount( final int no ) {
1055 if( no >= 0 ) { backLinkCount = no; }
1056 }
1057
1058 /**
1059 * ヘッ??を?力する間隔を取得します?
1060 *
1061 * @og.rev 3.5.2.0 (2003/10/20) 新規作?
1062 *
1063 * @return ヘッ??の表示間隔 ( 0:通常ヘッ??n:n回ごとに現れる )
1064 */
1065 public int getHeaderSkipCount() {
1066 return headerSkipCount;
1067 }
1068
1069 /**
1070 * ヘッ??を?力する間隔をセ?します?
1071 *
1072 * 0を指定すると、繰り返しません(つまり?ヘッ??を最初に表示する?です?)
1073 * 数字を?すると、その回数毎に、??ーをデータの行に挿入します?
1074 *
1075 * @og.rev 3.5.2.0 (2003/10/20) 新規作?
1076 *
1077 * @param hsc ヘッ??の表示間隔 ( 0:通常ヘッ??n:n回ごとに現れる )
1078 */
1079 public void setHeaderSkipCount( final int hsc ) {
1080 headerSkipCount = hsc;
1081 }
1082
1083 /**
1084 * 表示件数を取得します?
1085 *
1086 * @return 表示件数
1087 */
1088 public int getPageSize() {
1089 return pageSize;
1090 }
1091
1092 /**
1093 * 表示件数をセ?します?
1094 *
1095 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
1096 *
1097 * @param psize 表示件数
1098 */
1099 public void setPageSize( final int psize ) {
1100 if( psize > 0 ) { pageSize = psize; }
1101 }
1102
1103 /**
1104 * フォーマットを設定します?
1105 * ※ こ?クラスでは実?れて?せん?
1106 *
1107 * @og.rev 3.5.4.0 (2003/11/25) 新規作?
1108 * @param list TableFormatterのリス?
1109 */
1110 public void setFormatterList( final List<TableFormatter> list ) { // 4.3.3.6 (2008/11/15) Generics警告対?
1111 String errMsg = "こ?メソ?は、フォーマット関係?ビューでのみ使用できます?";
1112 throw new UnsupportedOperationException( errMsg );
1113 }
1114
1115 /**
1116 * 表示時?選択用オブジェクト?タイプを?します?
1117 * ・?選択可能時? "checkbox" を指定します?
1118 * ・??選ばせる場合?, "radio" を指定します?
1119 * ・?フィールドで全件を選ぶ場合??hidden" を指定します?
1120 * ・Noカラ?のも?を表示させな??合??none" を指定します?
1121 * 初期値は?checkbox" です?
1122 *
1123 * @og.rev 2.2.0.0 (2002/12/17) 選択用オブジェクト?タイプとして"hidden" を追?
1124 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
1125 * @og.rev 3.5.1.0 (2003/10/03) displayNumber ?。numberType 新規追??
1126 *
1127 * @param type 選択用オブジェクト?タイ? "checkbox"/"radio"/"hidden"/"null" )
1128 */
1129 public void setSelectedType( final String type ) {
1130 if( type != null ) {
1131 if( "checkbox".equalsIgnoreCase( type ) ||
1132 "radio".equalsIgnoreCase( type ) ||
1133 "hidden".equalsIgnoreCase( type ) ) {
1134 selectedType = type;
1135 }
1136 else {
1137 selectedType = null;
1138 }
1139 }
1140 }
1141
1142 /**
1143 * 表示時?行番号の表示方法を?します?
1144 * ・sequenceは?から始まる?番です?
1145 * ・none を指定すると、番号は表示されません?
1146 * ・delete を指定すると、行番号表示そ?も?のタグを取り除きます?(3.5.5.0 追?
1147 * ・skip=カラ?を指定すると、そのカラ??値?NULL の場合?、番号をスキ??します?
1148 * ・view=カラ?を指定すると、そのカラ??値が?使用されます?(ラベルは付きません)
1149 * skip=XX と、view=XX は?の前後にスペ?スを?れな?下さ??
1150 * 初期値は?sequence" です?
1151 *
1152 * @og.rev 3.5.1.0 (2003/10/03) 新規作?
1153 * @og.rev 3.5.5.0 (2004/03/12) numberType 属?の "delete" 値追?伴な??numberDisplay 変数の追??
1154 * @og.rev 5.3.0.0 (2010/12/01) 左右?スクロール(SplitViewTag)対応?numberType 再設定時のnumberDisplay初期?
1155 *
1156 * @param type 行番号の表示方法?タイ? /sequence/none/delete/skip=カラ?/view=カラ?/ )
1157 */
1158 public void setNumberType( final String type ) {
1159
1160 numberType = type ;
1161 numberDisplay = true; // 5.3.0.0 (2010/12/01) numberType 再設定時のnumberDisplay初期?
1162 if( type != null && !type.startsWith( "seq" ) && !type.startsWith( "none" ) ) {
1163 if( type.startsWith( "skip=" ) ) {
1164 numberTypeClm = table.getColumnNo( type.substring( 5 ) );
1165 numberTypeData = new String[rowCount];
1166 int cnt = 1;
1167 for( int i=0; i<rowCount; i++ ) {
1168 String tmp = table.getValue( i,numberTypeClm );
1169 if( tmp != null && tmp.length() > 0 ) {
1170 numberTypeData[i] = String.valueOf( cnt );
1171 cnt++ ;
1172 }
1173 else {
1174 numberTypeData[i] = "" ;
1175 }
1176 }
1177 }
1178 else if( type.startsWith( "view=" ) ) {
1179 numberTypeClm = getColumnNo( type.substring( 5 ) );
1180 }
1181 // 3.5.5.0 (2004/03/12)
1182 else if( type.startsWith( "delete" ) ) {
1183 numberDisplay = false;
1184 }
1185 else {
1186 // 3.5.5.0 (2004/03/12) 不正な値をエラーチェ?
1187 String errMsg = "numberType属?の値が不正です?numberType=[" + numberType + "]" +
1188 HybsSystem.CR +
1189 "設定できるのは、sequence/none/delete/skip=カラ?/view=カラ?/ です?";
1190 throw new HybsSystemException( errMsg );
1191 }
1192 }
1193 }
1194
1195 /**
1196 * 表示時?選択用オブジェクト?タイプを返します?
1197 * ?選択可能時? "checkbox" ??選ばせる場合?, "radio" を指定します?
1198 * 初期値は?checkbox" です?
1199 * "checkbox"/"radio"/"hidden" 以外???の場合?, null を返します?
1200 *
1201 * @return 選択用オブジェクト?タイ? "checkbox"/"radio"/"hidden"/"null" )
1202 */
1203 protected String getSelectedType() {
1204 return selectedType ;
1205 }
1206
1207 /**
1208 * No カラ????を取得します?
1209 * setNumberType で?した?(sequence / none / skip=カラ? / view=カラ?)に
1210 * 応じた?(レン?ーの値)を返します?
1211 *
1212 * @og.rev 3.5.1.0 (2003/10/03) 新規作?
1213 *
1214 * @param row 行番号
1215 *
1216 * @return Noカラ????
1217 */
1218 protected String getNumberData( final int row ) {
1219 String rtn = null;
1220
1221 if( numberType == null || numberType.startsWith( "se" ) ) { // sequence
1222 rtn = String.valueOf( row + 1 );
1223 }
1224 else {
1225 if( numberType.startsWith( "no" ) ) { // none
1226 rtn = "";
1227 }
1228 else if( numberType.startsWith( "vi" ) ) { // view
1229 rtn = getRendererValue( row,numberTypeClm );
1230 }
1231 else if( numberType.startsWith( "sk" ) ) { // skip
1232 rtn = numberTypeData[row];
1233 }
1234 }
1235
1236 return rtn ;
1237 }
1238
1239 /**
1240 * No カラ??ヘッ????を取得します?
1241 * setNumberType で?した?(sequence / none / skip=カラ? / view=カラ?)に
1242 * 応じた?(ラベル)を返します?
1243 * 具体的には、none 以外??No" と??を、none の時??"(ゼロストリング)を返します?
1244 *
1245 * @og.rev 3.5.4.6 (2004/01/30) 新規作?
1246 *
1247 * @return Noカラ??ヘッ????
1248 */
1249 protected String getNumberHeader() {
1250 String rtn = NO_HEADER;
1251
1252 if( numberType.startsWith( "no" ) ) { // none
1253 rtn = "";
1254 }
1255
1256 return rtn ;
1257 }
1258
1259 /**
1260 * ??ブル等?チェ?ボックスに属?を付加しま?
1261 * JavaScript などの HTML基本タグ以外?属?を?そ?まま
1262 * チェ?ボックス/ラジオボタン等に使用します?
1263 *
1264 * @og.rev 3.1.1.0 (2003/03/28) 同期メソ?(synchronized付き)を非同期に変更する?
1265 *
1266 * @param option オプション属???
1267 */
1268 public void setOptionTypeAttributes( final String option ) {
1269 optTypeAttri = option;
1270 }
1271
1272 /**
1273 * ??ブル等?チェ?ボックスに属?を付加しま?
1274 * JavaScript などの HTML基本タグ以外?属?を?そ?まま
1275 * チェ?ボックス/ラジオボタン等に使用します?
1276 *
1277 * @return オプション属?
1278 */
1279 protected String getOptionTypeAttributes() {
1280 return optTypeAttri ;
1281 }
1282
1283 /**
1284 * ?表示番号を取得します?
1285 * ?表示番号は、表示開始位置 + 表示件数 で求まります?
1286 * lastNo = startNo + pageSize;
1287 *
1288 * ただし??表示番号 ????タ件数 の場合?? ?表示番号 = ??タ件数
1289 * とします?
1290 * なお?表示件数 ?-1 の場合???ォルト?表示件数を使用します?
1291 *
1292 * @param startNo 表示開始位置
1293 * @param pageSize 表示件数
1294 *
1295 * @return ?表示番号
1296 */
1297 protected int getLastNo( final int startNo, final int pageSize ) {
1298 int lastNo = startNo + ( ( pageSize < 0 ) ? getPageSize() : pageSize );
1299 if( lastNo > rowCount ) {
1300 lastNo = rowCount ;
1301 }
1302
1303 if( rowCount < 0 || startNo < 0 || lastNo < 0 ) {
1304 String errMsg = "startNo lastNo の?が不正です?" + HybsSystem.CR
1305 + " startNo=" + startNo + " , lastNo=" + lastNo + " , RowCount=" + rowCount;
1306 throw new HybsSystemException( errMsg );
1307 }
1308
1309 return lastNo ;
1310 }
1311
1312 /**
1313 * ビューフォー??タイプを返します?
1314 * これは、ViewFormFactory で、org.opengion.hayabusa.html.ViewForm_ + 『type?
1315 * で作?されるサブクラスの 『type?部?返します?
1316 *
1317 * @og.rev 3.5.4.3 (2004/01/05) viewFormID を使用するように変更します?
1318 *
1319 * @return ビューフォー??タイ?
1320 */
1321 public String getViewFormType() {
1322 return viewFormID ;
1323 }
1324
1325 /**
1326 * ビューリンクオブジェクトを設定します?
1327 * これは、ViewLink タグで作?され?キー(カラ?)とリンク???
1328 * 持って? Attributes オブジェクトを受け取り、?部でリンク表示に
1329 * 使用します?
1330 *
1331 * @og.rev 3.5.6.4 (2004/07/16) table ?null の場合?、セ?しません?
1332 *
1333 * @param link ビューリンクオブジェク?
1334 */
1335 public void setViewLink( final ViewMarker link ) {
1336 viewLink = link;
1337 if( viewLink != null && table != null ) {
1338 viewLink.setDBTableModel( table ) ;
1339 }
1340 }
1341
1342 /**
1343 * ビューマ?カーオブジェクトを設定します?
1344 * これは、ViewMarker タグで作?され?キー(カラ?)とマ?カー???
1345 * 持って? Attributes オブジェクトを受け取り、?部でマ?カー表示に
1346 * 使用します?
1347 *
1348 * @og.rev 3.5.6.4 (2004/07/16) table ?null の場合?、セ?しません?
1349 *
1350 * @param marker ビューマ?カーオブジェク?
1351 */
1352 public void setViewMarker( final ViewMarker marker ) {
1353 viewMarker = marker;
1354 if( viewMarker != null && table != null ) {
1355 viewMarker.setDBTableModel( table ) ;
1356 }
1357 }
1358
1359 /**
1360 * エ??マ?カーオブジェクトを設定します?
1361 * これは、ViewMarker タグで、isRendere="false" で作?され?エ??キー(カラ?)と
1362 * マ?カー??を持って? Attributes オブジェクトを受け取り、?部でマ?カー表示に
1363 * 使用します?
1364 *
1365 * @og.rev 3.8.6.1 (2006/10/20) 新規追?
1366 *
1367 * @param marker ビューマ?カーオブジェク?
1368 */
1369 public void setEditMarker( final ViewMarker marker ) {
1370 editMarker = marker;
1371 if( editMarker != null && table != null ) {
1372 editMarker.setDBTableModel( table ) ;
1373 }
1374 }
1375
1376 /**
1377 * 検索結果メ?ージを表示する/しな?設定しま?
1378 * 初期値は、表示する(false)です?
1379 *
1380 * @param noMessage [true:表示しな?false:表示する]
1381 */
1382 public void setNoMessage( final boolean noMessage ) {
1383 this.noMessage = noMessage;
1384 }
1385
1386 /**
1387 * DBColumn オブジェクトを返します?
1388 *
1389 * @og.rev 3.1.8.0 (2003/05/16) DBColumn オブジェクト取得用のメソ?追?
1390 *
1391 * @param column カラ?号
1392 *
1393 * @return DBColumnオブジェク?
1394 */
1395 protected DBColumn getDBColumn( final int column ) {
1396 return dbColumn[column];
1397 }
1398
1399
1400 /**
1401 * カラ??にカラ?ブジェクトを割り当てます?
1402 * カラ?ブジェクト??ラベル?ー?ど?そのカラ?報?
1403 * 保持したオブジェクトです?
1404 *
1405 * @og.rev 5.6.2.3 (2013/03/22) 新規追?
1406 *
1407 * @param column カラ?ブジェク?
1408 * @param clm ヘッ??を適応するカラ??
1409 */
1410 protected void setDBColumn( int column, DBColumn clm ) {
1411 dbColumn[column] = clm;
1412 }
1413
1414 /**
1415 * チェ?の入った行?みを表示させるかど??します?
1416 *
1417 * "true" で、チェ?の入った行?みを表示させます?
1418 * 従来は、TextField系のViewに対して、NEXT,PREVでチェ?の
1419 * 入った行?みを表示させる機?でしたが?Table系のViewに対しても?
1420 * 同様に機?するように、しました?
1421 * 初期値は、ViewForm.DEFAULT_SKIP です?
1422 *
1423 * @og.rev 3.5.3.1 (2003/10/31) 新規追?
1424 *
1425 * @param skp チェ?の入った行?みを表示させるかど?(true:のみ表示/false:前件表示)
1426 */
1427 public void setSkip( final boolean skp ) {
1428 skip = skp;
1429 }
1430
1431 /**
1432 * チェ?の入った行?みを表示させるかど?(スキ??するかど?)を返します?
1433 *
1434 * skip=true で、かつ、チェ?の入って???場合に、trueを返します?
1435 * つまり?skip=trueの場合?、チェ?の入って???、スキ??すると?
1436 * 判断を行います?
1437 * skip属?の初期値は、ViewForm.DEFAULT_SKIP です?
1438 *
1439 * @og.rev 3.5.3.1 (2003/10/31) 新規追?
1440 *
1441 * @param row 行番号
1442 *
1443 * @return スキ??する(true)?スキ??しな?false)
1444 */
1445 protected boolean isSkip( final int row ) {
1446 return skip && ! isChecked( row );
1447 }
1448
1449 /**
1450 * チェ?ボックスの全チェ?を選択するJavaScript の機?を使用するかど?を指定します?
1451 *
1452 * 1 で、コントロール用のチェ?ボックスが現れて、この機?を使用することができるようになります?
1453 * 0 は、従来どおりです?
1454 * 使用するにあたり?jsp/commpn/default.js にJavaScriptを設定しておきます?(設定済み)
1455 * 初期値は、シス?パラメータ の VIEW_USE_CHECK_CONTROL です?(0:使用しな?
1456 *
1457 * @og.rev 3.5.4.3 (2004/01/05) 新規追?
1458 * @og.rev 3.7.0.1 (2005/01/31) 全件チェ?コントロール変更( boolean ?int )
1459 *
1460 * @param chCtrl チェ?ボックスの全チェ?を選択する機?を使用するかど?
1461 * (1:使用する/0:使用しな?2:初期値チェ?済み)
1462 */
1463 public void setUseCheckControl( final int chCtrl ) {
1464 useCheckControl = chCtrl;
1465 }
1466
1467 /**
1468 * チェ?ボックスの全チェ?を選択するJavaScript の機?を使用するかど?を返します?
1469 *
1470 * ??は?1:使用する/0:使用しな?2:初期値チェ?済み)の値を保持して?すが?
1471 * タグを作?する場合には、まず?使用するかど?を指定する?があるため?
1472 * 1:使用する/2:初期値チェ?済み は、true:使用する? は、false:使用しな?
1473 * を返します?
1474 *
1475 * @og.rev 3.5.4.3 (2004/01/05) 新規追?
1476 *
1477 * @return チェ?ボックスの全チェ?を選択する機?を使用するかど?(true:使用する/false:使用しな?
1478 */
1479 protected boolean isUseCheckControl() {
1480 return useCheckControl > 0;
1481 }
1482
1483 /**
1484 * チェ?ボックスの全チェ?を選択す?タグ??を返します?
1485 *
1486 * ??は?1:使用する/0:使用しな?2:初期値チェ?済み)の値?
1487 * 保持して?す?で、それに対応した文字?を返します?
1488 *
1489 * @og.rev 3.7.0.1 (2005/01/31) 新規追?
1490 * @og.rev 5.1.8.0 (2010/07/01) 全チェ?を押した状態で画面遷移した場合にチェ?状態を保持する?
1491 *
1492 * @return チェ?ボックスの全チェ?を選択する機?を使用するかど?
1493 * (1:使用する/0:使用しな?2:初期値チェ?済み)
1494 */
1495 protected String getAllCheckControl() {
1496 final String rtn;
1497 switch( useCheckControl ) {
1498 case 1: rtn = "<input type=\"checkbox\" name=\"ALL_CHECK\" value=\"2\" onClick=\"checkbox(this);\" />" ;
1499 break;
1500 case 2: rtn = "<input type=\"checkbox\" name=\"ALL_CHECK\" value=\"2\" onClick=\"checkbox(this);\" checked=\"checked\" />" ;
1501 break;
1502 default : rtn = "" ;
1503 }
1504 return rtn ;
1505 }
1506
1507 /**
1508 * ヘッ??にソート用リンクを作?するかど?を指定します?
1509 *
1510 * "true" で、??ーにソート用リンクを作?します?
1511 * false は、作?しません?
1512 *
1513 * @og.rev 3.5.4.7 (2004/02/06) 新規追?
1514 *
1515 * @param flag ヘッ??にソート用リンクを作?するかど?(true:作?する/false:作?しな?
1516 */
1517 public void setUseTableSorter( final boolean flag ) {
1518 useTableSorter = flag;
1519 }
1520
1521 /**
1522 * ヘッ??にソート用リンクを作?する時?、リクエスト引数のMapを設定します?
1523 *
1524 * ソート用URLに、リクエスト時の引数を設定する?があります?
1525 * そ?ため、リクエスト時のキーと値のセ?をMapで?します?
1526 * こ?Map は、リクエストキャ?ュより取り出します?
1527 * 実?は、このMapを?に、URLのQuery部??を作?します?処?程において?
1528 * こ?Map を書き換えることは行いません?
1529 *
1530 * @og.rev 3.6.0.0 (2004/09/17) 新規作?
1531 * @og.rev 3.6.0.0 (2004/09/22) 引数?null の時?処??
1532 * @og.rev 4.0.0.0 (2005/01/31) Map.keySet より Map.entrySet を使用するように変更
1533 *
1534 * @param map ヘッ??ソート時のリンクに追?るリクエスト変数のキャ?ュMap
1535 */
1536 public void makeTableSorterQuery( final Map<?,?> map ) { // 4.3.3.6 (2008/11/15) Generics警告対?
1537 if( map == null ) { return; } // 3.6.0.0 (2004/09/22)
1538
1539 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
1540 Iterator<?> ite = map.entrySet().iterator() ; // 4.0.0 (2005/01/31)
1541 while( ite.hasNext() ) {
1542 Map.Entry<?,?> entry = (Map.Entry<?,?>)ite.next(); // 4.3.3.6 (2008/11/15) Generics警告対?
1543 String key = (String)entry.getKey();
1544 if( key != null
1545 && ! key.equalsIgnoreCase( "command" )
1546 && ! key.equalsIgnoreCase( HybsSystem.SORT_COLUMNS ) ) {
1547 String[] vals = (String[])entry.getValue(); // 4.0.0 (2005/01/31)
1548 if( vals != null ) {
1549 for( int i=0; i<vals.length; i++ ) {
1550 buf.append( "&" ).append( key ).append( "=" );
1551 buf.append( StringUtil.urlEncode( vals[i] ) );
1552 }
1553 }
1554 }
1555 }
1556
1557 if( buf.length() > 0 ) {
1558 sorterQuery = buf.toString();
1559 }
1560 }
1561
1562 /**
1563 * カラ?ート機?(リンク)の付いたラベル名を返します?
1564 * カラ???名に対して,見える形の??を返します?
1565 * ?には,リソースバンドルと?せて,?ロケール毎にラベル?
1566 * ?えます?
1567 *
1568 * @og.rev 3.5.4.7 (2004/02/06) 新規追?
1569 * @og.rev 3.6.0.0 (2004/09/17) sortKeys の使用によるカラ??別のリンク有無追?
1570 * @og.rev 5.2.1.0 (2010/10/01) ?入力カラ??アシスト機?を利用する場合?処?追?
1571 * @og.rev 5.2.3.0 (2010/12/01) チェ?ボックスでは、onChange ではなく?onClick でイベントを発生させます?
1572 * @og.rev 5.6.9.1 (2013/10/11) カラ?にカンマが入った?合?対?
1573 * @og.rev 5.7.8.1 (2014/07/18) カラ??1000 では、少な?。?TML5ではエラーになる為??
1574 *
1575 * @param column カラ?号
1576 *
1577 * @return ソート機?(リンク)の付いたラベル?
1578 */
1579 protected String getSortedColumnLabel( final int column ) {
1580 String rtn = getColumnLabel( column ) ;
1581
1582 if( ( useSorterKeys && sortKeys[column] ) ||
1583 ( ! useSorterKeys && useTableSorter ) ) {
1584 rtn = "<a href=\"?command=VIEW&" +
1585 HybsSystem.SORT_COLUMNS + "=" + dbColumn[column].getName() +
1586 sorterQuery + "\">" +
1587 rtn + "</a>" ;
1588 }
1589
1590 // 5.2.1.0 (2010/10/01) ?入力カラ??アシスト機?対?
1591 if( isClmBulkSet( column ) ) {
1592 org.opengion.hayabusa.db.DBColumnConfig config = dbColumn[column].getConfig();
1593 config.setAddNoValue( true );
1594 if( "TEXT".equals( config.getEditor() ) ) {
1595 String mlen = config.getMaxlength();
1596 int idx = mlen.indexOf( "," ); // 5.6.9.1 (2013/10/11) カンマが入って?場合?対?
1597 if( idx < 0 ){ idx = mlen.length();}
1598 if( mlen != null && Integer.parseInt( mlen.substring( 0, idx ) ) < COLUMNS_MAXSIZE ) { // 5.6.9.1 (2013/10/11)
1599 config.setViewLength( mlen );
1600 }
1601 // config.setMaxlength( "1000" );
1602 config.setMaxlength( "1000000" ); // 5.7.8.1 (2014/07/18)
1603 }
1604 else if( "RADIO".equals( config.getEditor() ) ) {
1605 config.setEditor( "MENU" );
1606 }
1607
1608 Attributes attri = new Attributes();
1609 // 5.2.3.0 (2010/12/01) チェ?ボックスでは、onChange ではなく?onClick でイベントを発生させます?
1610 if( "CHBOX".equals( config.getEditor() ) ) {
1611 attri.add( "onClick", "bulkSet(this);" );
1612 }
1613 else {
1614 attri.add( "onChange", "bulkSet(this);" );
1615 attri.add( "ondblclick","bulkPaste(this);" );
1616 }
1617 attri.add( "onkeydown", "ctrlCV(this);" );
1618 config.setEditorAttributes( attri );
1619
1620 String key = config.getName();
1621 config.setName( "h_" + key );
1622 DBColumn clm = new DBColumn( config );
1623
1624 rtn = rtn + "<br />" + clm.getEditorValue( null ) ;
1625 }
1626
1627 return rtn ;
1628 }
1629
1630 /**
1631 * ?カラ?oがmust?されて?かど?
1632 *
1633 * @og.rev 5.5.4.2 (2012/07/13)
1634 *
1635 * @param column カラ?O
1636 * @return must?されて?かど?[true:されて?/false:されて?い]
1637 */
1638 protected boolean isMustColumn( final int column){
1639 if( nullCheck != null && nullCheck.length > 0 ){
1640 for(int i=0; i < nullCheck.length; i++){
1641 if( nullCheck[i].equals( dbColumn[column].getName() ) ){
1642 return true;
1643 }
1644 }
1645 }
1646 return false;
1647 }
1648
1649 /**
1650 * ?カラ?oがmustAny?されて?かど?
1651 *
1652 * @og.rev 5.5.4.2 (2012/07/13)
1653 *
1654 * @param column カラ?O
1655 * @return mustAny?されて?かど?[true:されて?/false:されて?い]
1656 */
1657 protected boolean isMustAnyColumn( final int column){
1658 if( mustAnyCheck != null && mustAnyCheck.length > 0 ){
1659 for(int i=0; i < mustAnyCheck.length; i++){
1660 if( mustAnyCheck[i].equals( dbColumn[column].getName() ) ){
1661 return true;
1662 }
1663 }
1664 }
1665 return false;
1666 }
1667
1668 /**
1669 * ViewForm のサブクラスに渡すパラメータマップを設定します?
1670 *
1671 * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追?ます?
1672 *
1673 * @param map パラメータマッ?
1674 */
1675 public void setParam( final Map<String,String> map ) {
1676 viewParam = map ;
1677 }
1678
1679 /**
1680 * ViewForm のサブクラスに渡すパラメータマップ?値を返します?
1681 * パラメータ?存在しな?null)か?値?存在しな?null)の場合??
1682 * 初期値を返します?
1683 *
1684 * @og.rev 3.5.5.9 (2004/06/07) 新規追?
1685 *
1686 * @param key パラメータの取り出すキー
1687 * @param def パラメータが存在しな??合?初期値
1688 *
1689 * @return パラメータ値
1690 */
1691 protected String getParam( final String key, final String def ) {
1692 if( viewParam == null ) { return def; }
1693 String rtn = viewParam.get( key ); // 4.3.3.6 (2008/11/15) Generics警告対?
1694
1695 return ( rtn != null ) ? rtn : def ;
1696 }
1697
1698 /**
1699 * ViewForm のサブクラスに渡すパラメータマップ?値を返します?
1700 * パラメータは、?期?が設定されて?も?とし?そ?まま、?を返します?
1701 *
1702 * @og.rev 5.5.5.6 (2012/08/31) 新規追?
1703 *
1704 * @param key パラメータの取り出すキー
1705 *
1706 * @return パラメータ値
1707 */
1708 protected String getParam( final String key ) {
1709 return (viewParam == null) ? null : viewParam.get( key );
1710 }
1711
1712 /**
1713 * ViewForm のサブクラスに渡すパラメータマップ?値?int で返します?
1714 * パラメータは、?期?が設定されて?も?とし?null の場合??1 を返します?
1715 *
1716 * @og.rev 5.5.5.6 (2012/08/31) 新規追?
1717 *
1718 * @param key パラメータの取り出すキー
1719 *
1720 * @return パラメータ値(未設定時は?1)
1721 */
1722 protected int getIntParam( final String key ) {
1723 String rtn = (viewParam == null) ? null : viewParam.get( key );
1724 return (rtn == null) ? -1 : Integer.parseInt( rtn );
1725 }
1726
1727 /**
1728 * ViewForm のサブクラスに渡すパラメータマップ?値?boolean で返します?
1729 * パラメータは、?期?が設定されて?も?とし?null の場合?、false を返します?
1730 *
1731 * @og.rev 5.5.5.6 (2012/08/31) 新規追?
1732 *
1733 * @param key パラメータの取り出すキー
1734 *
1735 * @return パラメータ値(未設定時は、false)
1736 */
1737 protected boolean getBoolParam( final String key ) {
1738 String rtn = (viewParam == null) ? null : viewParam.get( key );
1739 return (rtn == null) ? false : Boolean.parseBoolean( rtn );
1740 }
1741
1742 /**
1743 * ViewForm のサブクラスに渡すパラメータ(??配?のArrayList)を設定します?
1744 *
1745 * @og.rev 5.5.8.3 (2012/11/17) ViewParamTag のパラメータを追?ます?
1746 * @og.rev 5.5.9.0 (2012/12/03) ArrayListに変更
1747 *
1748 * @param list ??配?のArrayList
1749 */
1750 public void setViewArrayList( final List<String[]> list ) {
1751 viewArrayList = list ;
1752 }
1753
1754 /**
1755 * ViewForm のサブクラスに渡すパラメータ(??配?のArrayList)の値を返します?
1756 * パラメータは、?期?が設定されて?も?とし?そ?まま、?を返します?
1757 *
1758 * @og.rev 5.5.8.3 (2012/11/17) 新規追?
1759 * @og.rev 5.5.9.0 (2012/12/03) ArrayListに変更
1760 *
1761 * @return パラメータ値
1762 */
1763 protected List<String[]> getViewArrayList() {
1764 return viewArrayList;
1765 }
1766
1767 /**
1768 * No ?のも?を作?するかど?を返します?
1769 *
1770 * numberType 属?に?delete" と?値を設定した?合?、No ?のも??
1771 * 作?しません。それ以外?、作?します?
1772 * 初期値は、作?する(true)です?
1773 *
1774 * @og.rev 3.5.5.0 (2004/03/12) 新規追?
1775 *
1776 * @return No?のも?を作?するかど?(true:作?する/false:作?しな?
1777 */
1778 protected boolean isNumberDisplay() {
1779 return numberDisplay;
1780 }
1781
1782 /**
1783 * マ?カーオブジェク?リンク、?ーカー)を設定します?
1784 * ここでは、旧 ViewForm 属??新ViewForm に直接セ?します?
1785 *
1786 * @og.rev 3.5.6.1 (2004/06/25) 新規追?
1787 * @og.rev 3.8.6.1 (2006/10/20) editMarker 追?
1788 *
1789 * @param view ViewFormオブジェク?
1790 */
1791 public void markerSet( final ViewForm view ) {
1792 if( view instanceof AbstractViewForm ) {
1793 viewLink = ((AbstractViewForm)view).viewLink ;
1794 if( viewLink != null ) { viewLink.setDBTableModel( table ); }
1795 viewMarker = ((AbstractViewForm)view).viewMarker;
1796 if( viewMarker != null ) { viewMarker.setDBTableModel( table ); }
1797 editMarker = ((AbstractViewForm)view).editMarker;
1798 if( editMarker != null ) { editMarker.setDBTableModel( table ); }
1799 }
1800 else {
1801 String errMsg = "AbstractViewForm 以外? view は、サポ?トして?せん?
1802 + " view=[" + view + "]" ;
1803 throw new HybsSystemException( errMsg );
1804 }
1805 }
1806
1807 /**
1808 * ??ブルのバックグラウンドカラーの入れ替え?サイクルをセ?します?
1809 * 0(ゼブラな??1(ワーニング)?2以?エラー)?(ゼブラ)?以?行数まと?
1810 * 初期値は?(ゼブラ)です?
1811 *
1812 * @og.rev 3.5.6.2 (2004/07/05) ViewForm_HTMLTable より移?
1813 *
1814 * @param sycle 0(ゼブラな??1(ワーニング)?2以?エラー)?(ゼブラ)?以?行数まと?
1815 */
1816 public void setBgColorCycle( final int sycle ) {
1817 bgColorCycle = 1; // 強制?設?
1818
1819 if( sycle > 0 ) { // 1(ゼブラ)?以?行数まと?
1820 color_row0 = BG_COLOR_ROW0 ;
1821 color_row1 = BG_COLOR_ROW1 ;
1822 bgColorCycle = sycle; // こ?ケースのみ引数を設?
1823 }
1824 else if( sycle == -1 ) { // -1(ワーニング)
1825 color_row0 = BG_WARNING_COLOR_ROW0 ;
1826 color_row1 = BG_WARNING_COLOR_ROW1 ;
1827 }
1828 else if( sycle < -1 ) { // -2以?エラー)
1829 color_row0 = BG_ERROR_COLOR_ROW0 ;
1830 color_row1 = BG_ERROR_COLOR_ROW1 ;
1831 }
1832 else { // 0(ゼブラな?
1833 color_row0 = "" ;
1834 color_row1 = "" ;
1835 }
1836 }
1837
1838 /**
1839 * ??ブルのバックグラウンドカラーのクラスに?するカラ?を指定します?
1840 *
1841 * 通常のゼブラ模様?、tr 属?のクラス?として、row_0、row_1 が指定されます?
1842 * そ?代わりに、ここで?されたカラ??値がクラス属?として設定されます?
1843 * (?する?はカラ?です?行単位にクラス属?の値を変えることが可能です?)
1844 * 選択?row_sel)は、優先して使用されます?
1845 * 出力されるクラス名??row_" + 属?値 になります?
1846 *
1847 * @og.rev 5.1.8.0 (2010/07/01) 新規追?
1848 *
1849 * @param clsClm ゼブラ模様?替わりに?するクラスを?納したカラ?
1850 */
1851 public void setBgColorClsClm( final String clsClm ) {
1852 if( clsClm != null ) {
1853 bgColorClsClmNo = table.getColumnNo( clsClm );
1854 }
1855 }
1856
1857 /**
1858 * ??ブルのバックグラウンドカラーの値をセ?します?
1859 * これは、DBTableModele が指定?行番号の時に、BG_COLOR_ROWSEL ?
1860 * 返します?それ以外???常の getBgColorCycleClass( int )と
1861 * 同じ結果を返します?
1862 * BG_COLOR_ROWSEL の使用有無は、シス?パラメータの
1863 * VIEW_USE_SELROW_COLOR 属?で?できます?
1864 *
1865 * @og.rev 3.7.0.3 (2005/03/01) 新規追?
1866 * @og.rev 3.7.1.1 (2005/05/31) SEL_ROW機?使用時に、BG_COLOR_ROWSEL の使用 ?無を指?
1867 *
1868 * @param indx 先?からの連番( ?から始め?)
1869 * @param row 行番号
1870 *
1871 * @return 行?色を指定す?class 属?( cssファイルで??)
1872 * @see #getBgColorCycleClass( int )
1873 */
1874 protected String getBgColorCycleClass( final int indx,final int row ) {
1875 return ( useSelRowColor && scrollRowNo == row ) ? BG_COLOR_ROWSEL : getBgColorCycleClass( indx ) ;
1876 }
1877
1878 /**
1879 * ??ブルのバックグラウンドカラーの値をセ?します?
1880 * 行番号は, ?から始まる?で、?数?HTML_BG_COLOR_ROW0 ?
1881 * ?行を HTML_BG_COLOR_ROW1 とします?
1882 * setBgColorCycle で、設定?変換して?す?
1883 * bgColorClsClm が指定されて?場合?、その値を利用したクラス属?を返します?
1884 * クラス名??row_" + ?カラ??値 です?
1885 * ?カラ??値 が?null また?、空??の場合?、従来のゼブラ模様が優先されます?
1886 * また?行選択があれば、そちらが?先されます?
1887 *
1888 * @og.rev 3.5.6.2 (2004/07/05) ViewForm_HTMLTable より移?
1889 * @og.rev 5.1.8.0 (2010/07/01) bgColorClsClmNo 対?
1890 *
1891 * @param row 行番号( ?から始め?)
1892 *
1893 * @return 行?色を指定す?class 属?( cssファイルで??)
1894 * @see #setBgColorClsClm( String )
1895 */
1896 protected String getBgColorCycleClass( final int row ) {
1897 String rtn = null ;
1898
1899 // 5.1.8.0 (2010/07/01) bgColorClsClmNo 対?
1900 if( bgColorClsClmNo >= 0 ) {
1901 String val = table.getValue( row,bgColorClsClmNo );
1902 if( val != null && val.length() > 0 ) {
1903 rtn = " class=\"row_" + val + "\"";
1904 }
1905 }
1906
1907 if( rtn == null ) {
1908 if( (row/bgColorCycle) % 2 == 0 ) {
1909 rtn = color_row0; // 偶数の場?
1910 }
1911 else {
1912 rtn = color_row1; // ?の場?
1913 }
1914 }
1915
1916 return rtn ;
1917 }
1918
1919 /**
1920 * スクロールバ?用のDIV要?出力するかど?(初期値はシス?パラメータ)
1921 *
1922 * スクロールバ?対応する為、テーブルの先?に、DIV要?出力します?
1923 * 初期値は、シス?パラメータ の VIEW_USE_SCROLLBAR です?
1924 * ※ 互換性の関係より?false になって?す?
1925 * ※ 互換性の関係より?新しいタイプ?ヘッ??固定を、TYPE2 とします?
1926 *
1927 * @og.rev 3.5.6.4 (2004/07/16) 新規追?
1928 * @og.rev 3.8.0.3 (2005/07/15) barType 変数の追?
1929 * @og.rev 4.0.0.0 (2007/04/10) ヘッ??固定?スクロールタイプ?、TYPE2 のみにする?
1930 *
1931 * @param useBar スクロールバ?用のDIV要??出?[true:出力す?false:出力しない]
1932 */
1933 public void setUseScrollBar( final boolean useBar ) {
1934 useScrollBar = useBar;
1935 }
1936
1937 /**
1938 * スクロールバ?用の開始DIV要?します?
1939 *
1940 * スクロールバ?対応する為、テーブルの先?に、DIV要?出力します?
1941 * 初期値は、シス?パラメータ の VIEW_USE_SCROLLBAR で?されたDIV要?す?
1942 * DIV要??開始タグになります?
1943 *
1944 * @og.rev 3.8.0.3 (2005/07/15) 新規追?
1945 * @og.rev 4.2.0.0 (2008/03/18) outerにwidthとheightを?すよ?修正
1946 *
1947 * @return LAYER_ST スクロールバ?用の開始DIV要?
1948 */
1949 protected String getScrollBarStartDiv() {
1950 String layerStart = LAYER_ST0 ;
1951 if( useScrollBar ) {
1952 layerStart = "<div id=\"divPos\" style=\"";
1953 if( height != null ){
1954 layerStart += "height:" + height + ";";
1955 }
1956 if( width != null ){
1957 layerStart += "width:" + width + ";";
1958 }
1959 layerStart += "\" >"
1960 + "<div id=\"outer\">"
1961 + "<div id=\"layer\" onscroll=\"SetScrollHeader(this);\">"
1962 + "<div id=\"divHide\">" ;
1963 }
1964 return layerStart;
1965 }
1966
1967 /**
1968 * スクロールバ?用の終?IV要?します?
1969 *
1970 * スクロールバ?対応する為、テーブルの終?、DIV要?出力します?
1971 * 初期値は、シス?パラメータ の VIEW_USE_SCROLLBAR で?されたDIV要?す?
1972 * DIV要??終?グになります?
1973 *
1974 * @og.rev 3.8.0.3 (2005/07/15) 新規追?
1975 *
1976 * @return スクロールバ?用の終?IV要?
1977 */
1978 protected String getScrollBarEndDiv() {
1979 String layerEnd = LAYER_END0 ;
1980 if( useScrollBar ) {
1981 layerEnd = LAYER_END2 ;
1982 }
1983 return layerEnd;
1984 }
1985
1986 /**
1987 * ??行番号まで画面をスクロールさせる?合?行番号を設定します?
1988 *
1989 * 画面をスクロール後?リンク等で他画面を表示後?戻ってきた場合に?
1990 * 先?スクロール位置まで戻します?
1991 * ただし?厳?戻すことはできな?め?大体?あたりに戻します?
1992 * ?しな???クリアする場?は?1 をセ?してください?
1993 * useSelRowColor は?択行に色づけするかど?を指定します?
1994 *
1995 * @og.rev 3.7.0.3 (2005/03/01) 新規追?
1996 * @og.rev 3.7.1.1 (2005/05/31) 選択行?ーカーの使用有無
1997 *
1998 * @param rowNo ??行番号まで画面をスクロールさせる?合?行番号
1999 * @param useSelRowColor 選択行?ーカーの使用有無
2000 */
2001 public void setScrollRowNo( final int rowNo, final boolean useSelRowColor ) {
2002 scrollRowNo = rowNo;
2003 firstChecked = false;
2004 this.useSelRowColor = useSelRowColor;
2005 }
2006
2007 /**
2008 * 設定?に "_" が含まれて?場合にレン?ーを使用するカラ?CSV形式で?します?
2009 *
2010 * これは、従来の カラ?義の WRITABLE エ?ターと同等?働きを行うように
2011 * カラ??を指定します?
2012 * WRITABLE エ?ターは、設定?にアン??バ? "_" が含まれて?場合に?
2013 * そ?値を書込み禁止にする機?です?これは、エ?ター自身が?を判断して
2014 * 書き込み許可か禁止かを判断して?す?
2015 * こ?動きを汎用?するため、指定?カラ?カンマ区???CSV)で??
2016 * することにより、レン?ーとエ?ターを設定?によって動的に?替える
2017 * 機?を実現します?
2018 * そ?場合?表示/編?もに、?頭のアン??バ?は削除されます?
2019 * また?全カラ?つ?、有効にする場合?、writableControl="*" を設定します?
2020 *
2021 * @og.rev 3.8.0.9 (2005/10/17) 新規追?
2022 * @og.rev 5.1.8.0 (2010/07/01) ?ロジ?変更(setBooleanArray)
2023 *
2024 * @param wrtCtrl 書き込み制御を行いたいカラ?CSV形式で??
2025 */
2026 public void setWritableControl( final String wrtCtrl ) {
2027 setBooleanArray( wrtCtrl,true,writeCtrl );
2028 }
2029
2030 /**
2031 * CSV形式で?されたカラ?、true/false の初期設定を行います?
2032 *
2033 * 従来は、各クラスで実?れて?処?、??にまとめます?
2034 * これにより、各種機?をあらかじめ実?ておきます?
2035 * ??カラ?、null の場合?、何も処?行いません?つまり?初期値のまま)
2036 * ??カラ?? の場合?、すべてのカラ??されたとみなし?配?に値を設定します?
2037 * ??カラ??"(ゼロ??)の場合?、なにもカラ??されて??のとみなされ?
2038 * 初期値の?埋められます?
2039 *
2040 * @og.rev 5.1.8.0 (2010/07/01) 新規追?
2041 *
2042 * @param clsm ??カラ?CSV形式で??
2043 * @param def 設定する?
2044 * @param arrays 設定す?配?
2045 */
2046 private void setBooleanArray( final String clsm , final boolean def , final boolean[] arrays ) {
2047 if( clsm != null ) {
2048 // 書き込み制御の許可 をカラ?位で設定?* の場合?、?カラ?可
2049 if( "*".equals( clsm ) ) {
2050 Arrays.fill( arrays,def );
2051 }
2052 else {
2053 Arrays.fill( arrays,!def );
2054 String[] clmNames = StringUtil.csv2Array( clsm );
2055 for( int i=0; i<clmNames.length; i++ ) {
2056 if( clmNames[i] != null && clmNames[i].length() > 0 ) {
2057 int no = table.getColumnNo( clmNames[i] );
2058 if( no >= 0 ) { arrays[ no ] = def; }
2059 }
2060 }
2061 }
2062 }
2063 }
2064
2065 /**
2066 * ogPopup で検索結果の値を返すキーを?CSV形式で?します?
2067 *
2068 * popup の検索結果を返す画面で、結果のラジオボタンにイベントセ?します?
2069 * こ?場合?オープンもとのwindow に値を返しますが、そのキーをCSV形式で
2070 * ?します?
2071 * なお?こ?メソ?は、?表示(HTMLTable)関係?ビューのみでサポ?トして
2072 * ?すが、チェ?メソ?の関係で、それ以外?ビューに適用しても???
2073 * するようにします?(エラーにしません)
2074 *
2075 * @og.rev 3.8.6.1 (2006/10/20) 新規追?
2076 *
2077 * @param rtnKeys ogPopupで値を返すカラ?字?(CSV形?
2078 */
2079 public void setPopupReturnKeys( final String rtnKeys ) {
2080 // こ?メソ?は、?表示(HTMLTable)関係?ビューのみでサポ?トして
2081 // ?すが、チェ?メソ?の関係で、それ以外?ビューに適用しても???
2082 // するようにします?(エラーにしません)
2083 }
2084
2085 /**
2086 * table要?対して class 属?を設定します?
2087 *
2088 * 従来の シス?リソースでの??ブルレイアウト?設定を?し?
2089 * CSSファイルで、指定するよ?変更して?す?
2090 * これに伴??CSSファイルのキーとして、クラス属?を?力します?
2091 * view(また?、?力されるtableタグ)のレイアウト?、このクラス属?で
2092 * ?することが可能になります?
2093 * 初期値は、viewTable です?
2094 *
2095 * @og.rev 4.0.0.0 (2007/04/16) 新規追?
2096 *
2097 * @param cls class属?を表す文字?
2098 */
2099 public void setTableClass( final String cls ) {
2100 if( cls != null ) {
2101 clazz = cls;
2102 }
2103 }
2104
2105 /**
2106 * table要?対して class 属?を返します?
2107 *
2108 * @og.rev 4.0.0.0 (2007/04/16) 新規追?
2109 *
2110 * @return class属?を表す文字?
2111 */
2112 protected String getTableClass() {
2113 return clazz;
2114 }
2115
2116 /**
2117 * outerのIDを持つDIV要?heightを指定しま?
2118 *
2119 * ビューの高さ、??できるようにします?
2120 * これによって?画面に?つのビューを?力する事も可能となります?
2121 * 初期値はnullです?
2122 *
2123 * @og.rev 4.2.0.0 (2008/03/18) 新規追?
2124 *
2125 * @param high ビューの高さ
2126 */
2127 public void setHeight( final String high ) {
2128 height = high;
2129 }
2130
2131 /**
2132 * outerのIDを持つDIV要?widthを指定しま?
2133 *
2134 * ビューの高さ、??できるようにします?
2135 * これによって?画面に?つのビューを?力する事も可能となります?
2136 * 初期値はnullです?
2137 *
2138 * @og.rev 4.2.0.0 (2008/03/18) 新規追?
2139 *
2140 * @param wide ビューの高さ
2141 */
2142 public void setWidth( final String wide ) {
2143 width = wide;
2144 }
2145
2146 /**
2147 * リソースマネージャを設定します?
2148 * クロス?時に、useColumnHeader="true"とした場合?み設定されます?
2149 *
2150 * @og.rev 4.0.0.0 新規作?
2151 *
2152 * @param res リソースマネージャー
2153 */
2154 public void setResourceManager( final ResourceManager res ) {
2155 resourceManager = res;
2156 }
2157
2158 /**
2159 * リソースマネージャを取得します?
2160 *
2161 * @og.rev 4.0.0.0 新規作?
2162 *
2163 * @return ResourceManagerリソースマネージャー
2164 */
2165 protected ResourceManager getResourceManager() {
2166 return resourceManager;
2167 }
2168
2169 /**
2170 * 改廃Cのつ???をスキ??するかど??します?
2171 *
2172 * "true" で、改廃Cのつ?行をスキ??します?
2173 * 初期値はfalseです?
2174 *
2175 * @og.rev 4.3.1.0 (2008/09/08) 新規追?
2176 *
2177 * @param sne 改廃Cのつ???をスキ??するかど?(true:スキ??する/false:スキ??しな?
2178 */
2179 public void setSkipNoEdit( final boolean sne ) {
2180 skipNoEdit = sne;
2181 }
2182
2183 /**
2184 * 改廃Cのつ???をスキ??するかど??します?
2185 *
2186 * skipNoEdit="true"でかつ、編?れて??改廃Cがつ???場合?み
2187 * trueを返します?
2188 *
2189 * @og.rev 4.3.1.0 (2008/09/08) 新規追?
2190 *
2191 * @param row 行番号
2192 *
2193 * @return スキ??対象行か
2194 */
2195 protected boolean isSkipNoEdit( final int row ) {
2196 return skipNoEdit && ( table.getModifyType( row ) == null || table.getModifyType( row ).length() == 0 );
2197 }
2198
2199 /**
2200 * 画面遷移なしモードに対応した形で処?行うかを?します?
2201 *
2202 * "true" で、画面遷移なしモードに対応します?
2203 * 初期値はfalseです?
2204 *
2205 * @og.rev 4.3.3.0 (2008/10/01) 新規追?
2206 *
2207 * @param flag 画面遷移なしモードに対応するかど?(true:対応す?false:対応しな?
2208 */
2209 public void setNoTransition( final boolean flag ) {
2210 noTransition = flag;
2211 }
2212
2213 /**
2214 * 画面遷移なしモードに対応した形で処?行うかを返します?
2215 *
2216 * "true" で、画面遷移なしモードに対応します?
2217 * 初期値はfalseです?
2218 *
2219 * @og.rev 4.3.3.0 (2008/10/01) 新規追?
2220 *
2221 * @return 画面遷移なしモードに対応するかど?(true:対応す?false:対応しな?
2222 */
2223 protected boolean isNoTransition() {
2224 return noTransition;
2225 }
2226
2227 /**
2228 * 該当行?行番号と改廃Cを?力します?
2229 * 出力形式??rid="[行番号]" kh="[改廃C]" です?
2230 * 改廃Cが付加されて???合?、改廃Cがnullの場合?、kh属?は出力されません?
2231 * (画面遷移なしモードで使用しま?
2232 *
2233 * @og.rev 4.3.3.0 (2008/10/01) 新規作?
2234 *
2235 * @param row 行番号( ?から始め?)
2236 *
2237 * @return 該当行?行番号と改廃C
2238 */
2239 protected String getHiddenRowValue( final int row ) {
2240 String kh = "";
2241 if( table.getModifyType( row ) != null && table.getModifyType( row ).length() > 0 ) {
2242 kh = " " + hiddenCdkhKey + "=\"" + table.getModifyType( row ) + "\"";
2243 }
2244 return " " + hiddenRowKey + "=\"" + row + "\"" + kh;
2245 }
2246
2247 /**
2248 * ビューで表示したカラ???をカンマ区?で返します?
2249 *
2250 * @og.rev 5.1.6.0 (2010/05/01) 新規追?
2251 *
2252 * @return ビューで表示したカラ???
2253 */
2254 public String getViewClms() {
2255 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
2256 for( int i=0; i<clmDisplay.length; i++ ) {
2257 if( clmDisplay[i] && !( rowWritableFlag && i==0 ) ) {
2258 if( buf.length() > 0 ) { buf.append( ',' ); }
2259 buf.append( dbColumn[i].getName() );
2260 }
2261 }
2262 return buf.toString();
2263 }
2264
2265 /**
2266 * 表示?の編?並び替?が可能かど?を返しま?
2267 *
2268 * @og.rev 5.1.6.0 (2010/05/01) 新規追?
2269 *
2270 * @return 表示?の編?並び替?が可能かど?(true:可能)
2271 */
2272 public boolean isEditable() {
2273 return true;
2274 }
2275
2276 /**
2277 * こ?ViewFormが作?された画面IDをセ?します?
2278 *
2279 * @og.rev 5.1.7.0 (2010/06/01) 新規追?
2280 *
2281 * @param gamenId 画面ID
2282 */
2283 public void setGamenId( final String gamenId ) {
2284 this.gamenId = gamenId;
2285 }
2286
2287 /**
2288 * こ?ViewFormが作?された画面IDを返します?
2289 *
2290 * @og.rev 5.1.7.0 (2010/06/01) 新規追?
2291 *
2292 * @return 画面ID
2293 */
2294 public String getGamenId() {
2295 return gamenId;
2296 }
2297
2298 /**
2299 * カラ??入力アシスト機?を利用するかど?を返します?
2300 *
2301 * 条件は、?入力アシストカラ?、かつ、書き込み許可(isColumnWritable(clm)==true)の場合とする?
2302 *
2303 * @og.rev 5.2.1.0 (2010/10/01) 新規作?
2304 *
2305 * @param column カラ?号
2306 *
2307 * @return 利用する(true)?しな?false)
2308 */
2309 protected boolean isClmBulkSet( final int column ) {
2310 return clmBulkSet[ column ] && clmWritable[ column ];
2311 }
2312
2313 /**
2314 * ?入力カラ??アシスト機?を利用するカラ?を?カンマ区?で与えます?
2315 *
2316 * これは、カラ??書き込み時に、?入力可能なカラ?ヘッ??に表示し?
2317 * ?登録できる機?を提供します?
2318 * こ?機?は、jsp/common/bulkSet.js JavaScript とともに提供されます?
2319 * IE につ?は、クリ??ボ?ドも利用できます?Ctrl-C と Ctrl-V でそれぞれ
2320 * ??のカラ??値の取り出しと書き込みが可能になります?
2321 * "*" を指定すると、すべてのカラ?(columnBulkSet)?したことになります?
2322 *
2323 * @og.rev 5.2.1.0 (2010/10/01) 新規作?
2324 *
2325 * @param columnName 例?OYA,KO,HJO,SU,DYSET,DYUPD"
2326 */
2327 public void setColumnBulkSet( final String columnName ) {
2328 setBooleanArray( columnName,true,clmBulkSet );
2329 }
2330 }