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