001/*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016package org.opengion.hayabusa.html;
017
018import java.util.List;
019import java.util.Map;
020import java.io.Writer;
021import java.io.IOException;
022
023import org.opengion.hayabusa.db.DBTableModel;
024import org.opengion.hayabusa.resource.ResourceManager;
025
026/**
027 * DBTableModelの表示を行うインターフェースです。
028 * 各種の表示形式をサポートするには、ViewForm インターフェースを implements した
029 * クラスを作成して、DBTableModel をセットするだけです。
030 * ViewForm 自体は,Controller クラスよりアクセスされます。
031 *
032 * ViewForm の実装クラス( implements されたクラス)に対する 各種設定(たとえば、HTMLタグなど)
033 * は、個々の実装クラス毎に設定します。
034 *
035 * @og.group 画面表示
036 *
037 * @version  4.0
038 * @author       Kazuhiko Hasegawa
039 * @since    JDK5.0,
040 */
041public interface ViewForm {
042
043        /**
044         * カラムの書込み許可属性(clmWritable)の初期値を指定します。
045         * これが true の場合は,デフォルトですべてのカラムが書込み許可されます。
046         * false の場合は,すべてが書込み不許可になります。
047         *
048         * このデフォルト値は、false に設定されています。
049         *
050         */
051        boolean DEFAULT_CLM_WRITABLE = false;
052
053        /**
054         * 書き込み可能な行(rowWritable == true)のみを表示対象とするかどうかを
055         * 指定します。
056         *
057         */
058        boolean DEFAULT_SKIP = false;
059
060        /**
061         * 初期化します。
062         * ここでは、内部で使用されているキャッシュをクリアし、
063         * 新しいモデル(DBTableModel)と言語(lang) を元に内部データを再構築します。
064         *
065         * @og.rev 3.5.6.1 (2004/06/25) lang 言語コード 属性を削除します。
066         *
067         * @param       table DBTableModelオブジェクト
068         */
069        void init( DBTableModel table ) ;
070
071        /**
072         * DBTableModel から View文字列を作成して返します。
073         *
074         * @return      DBTableModelから作成された View文字列
075         */
076        String create() ;
077
078        /**
079         * DBTableModel から View文字列を作成して返します。
080         * startNo(表示開始位置)から、pageSize(表示件数)までのView文字列を作成します。
081         * 表示残りデータが pageSize 以下の場合は,残りのデータをすべて出力します。
082         *
083         * @param  startNo        表示開始位置
084         * @param  pageSize   表示件数
085         *
086         * @return      DBTableModelから作成された View文字列
087         */
088        String create( int startNo, int pageSize ) ;
089
090        /**
091         * DBTableModel から View文字列を作成して、Writer にセットします。
092         * 処理内容は、create( int , int ) と同じですが、中間の文字列(StringBuilder)
093         * を作成せずに、直接、Writer に書き出します。
094         * よって、データ作成途中でエラーが発生しても、すでにいくつかのデータは
095         * クライアントに返されています。
096         *
097         * @og.rev 5.0.0.1 (2009/08/15) 直接出力用の Writer 引数追加
098         *
099         * @param  startNo        表示開始位置
100         * @param  pageSize   表示件数
101         * @param  wrt            直接登録用の Writer
102         * @throws IOException 入出力エラーが発生したとき
103         */
104        void create( int startNo, int pageSize, Writer wrt ) throws IOException ;
105
106        /**
107         * 表示開始位置をセットします。
108         *
109         * @param  startNo        表示開始位置
110         */
111        void setStartNo( int startNo ) ;
112
113        /**
114         * 表示開始位置を返します。
115         *
116         * @return      表示開始位置
117         */
118        int getStartNo() ;
119
120        /**
121         * 表示件数をセットします。
122         *
123         * @param  pageSize   表示件数
124         */
125        void setPageSize( int pageSize ) ;
126
127        /**
128         * 表示件数を返します。
129         *
130         * @return      pageSize        表示件数
131         */
132        int getPageSize() ;
133
134        /**
135         * 内部の DBTableModel を返します。
136         *
137         * @return      DBTableModelオブジェクト
138         */
139        DBTableModel getDBTableModel() ;
140
141        /**
142         * ViewForm の識別IDをセットします。
143         * これは、ViewFormFactory でプールする場合の識別キーになります。
144         * プールに戻すときに自分自身に この識別IDを使用します。
145         *
146         * @og.rev 3.5.6.2 (2004/07/05) メソッド名がまぎらわしい為、変更します。
147         *
148         * @param       id 識別ID
149         */
150        void setId( String id ) ;
151
152        /**
153         * ViewForm の識別IDを返します。
154         * これは、ViewFormFactory でプールする場合の識別キーになります。
155         * プールに戻すときに自分自身に この識別IDを使用します。
156         *
157         * @og.rev 3.5.6.2 (2004/07/05) メソッド名がまぎらわしい為、変更します。
158         *
159         * @return      識別ID
160         */
161        String getId() ;
162
163        /**
164         * 内容をクリア(初期化)します。
165         *
166         */
167        void clear() ;
168
169        /**
170         * カラムが書き込み可能かどうかをセットします。
171         *
172         * @param       column カラム番号
173         * @param       rw 書込み可能(true)/不可能(false)
174         */
175        void setColumnWritable( int column,boolean rw ) ;
176
177        /**
178         * 書き込み可能カラム名を、カンマ区切りで与えます。
179         * これは、書き込み不可カラム名の指定(noWritable)と同時にセットする
180         * ことは出来ません。 例:"OYA,KO,HJO,SU,DYSET,DYUPD"
181         *
182         * setColumnWritable( int column,boolean rw ) の簡易版です。
183         * null を与えた場合は,なにもしません。
184         * また、全カラムについて、有効にする場合は、columnName="*" を設定します。
185         *
186         * @param       columnName      カラム名
187         */
188        void setColumnWritable( String columnName ) ;
189
190        /**
191         * 書き込み不可カラム名を、カンマ区切りで与えます。
192         * これは、書き込み可能カラム名の指定(columnWritable)と同時にセットする
193         * ことは出来ません。 例:"OYA,KO,HJO,SU,DYSET,DYUPD"
194         *
195         * null を与えた場合は,なにもしません。
196         * また、全カラムについて、有効にする場合は、columnName="*" を設定します。
197         *
198         * @param       columnName      カラム名
199         */
200        void setNoWritable( String columnName ) ;
201
202        /**
203         * その行が、処理対象かどうかをチェックします。
204         * 処理対象かどうかは、書き込み可能な行(rowWritable == true)
205         * で且つ チェックされた行(rowChecked == true) とします。
206         * 例えば,NEXT/PREVでスキップ等の処理を行う場合は、 処理対象以外を
207         * スキップすることで実現できます。
208         *
209         * @param       row     行番号
210         *
211         * @return       処理対象(true)/処理対象でない(false)
212         */
213        boolean isMarked( int row ) ;
214
215        /**
216         * カラムが表示可能かどうかをセットします。
217         * これは、表示不可カラム名の指定(noDisplay)と同時にセットする
218         * ことは出来ません。 例:"OYA,KO,HJO,SU,DYSET,DYUPD"
219         *
220         * @param       column カラム番号
221         * @param       rw 表示可能(true)/不可能(false)
222         */
223        void setColumnDisplay( int column,boolean rw ) ;
224
225        /**
226         * 表示可能カラム名を、カンマ区切りで与えます。
227         * これは、表示不可カラム名の指定(noDisplay)と同時にセットする
228         * ことは出来ません。 例:"OYA,KO,HJO,SU,DYSET,DYUPD"
229         *
230         * setColumnDisplay( int column,boolean rw ) の簡易版です。
231         * null を与えた場合は,なにもしません。
232         * また、全カラムについて、有効にする場合は、columnName="*" を設定します。
233         *
234         * @param       columnName      カラム名
235         */
236        void setColumnDisplay( String columnName ) ;
237
238        /**
239         * 表示不可カラム名を、カンマ区切りで与えます。
240         * これは、表示可能カラム名の指定(columnDisplay)と同時にセットする
241         * ことは出来ません。 例:"OYA,KO,HJO,SU,DYSET,DYUPD"
242         *
243         * null を与えた場合は,なにもしません。
244         * また、全カラムについて、有効にする場合は、columnName="*" を設定します。
245         *
246         * @param       columnName      カラム名
247         */
248        void setNoDisplay( String columnName ) ;
249
250        /**
251         * 同一表示データをまとめる(表示しない)カラム名を、カンマ区切りで与えます。
252         *
253         * これは、カラムのグループ化指定を行います。
254         * 同じカラム番号で一つ上の行番号と同じ内容の場合に、特殊な表示方法で表示します。
255         * 対応は、表示(Renderer)時のみとします。
256         * 特殊な表示方法の指定は、groupClass 属性で指定します。
257         * (例:groupClass にアルファベット以外の文字・・そのまま表示、アルファベットはクラス属性を付与します。)
258         * カラム単位なので、新しいゼブラによる色分けは行いません。(任意のカラムに適用できる為)
259         * また、ファイル出力などのデータ自身は変更されていませんので、そのままデータが落ちます。
260         *
261         * これは、同一表示データをまとめないカラム名の指定(noGroup)と同時にセットする
262         * ことは出来ません。
263         * また、全カラムについて、有効にする場合は、group="*" を設定します。
264         *
265         * @og.rev 3.8.5.0 (2006/03/20) 新規追加
266         *
267         * @param       group まとめるカラム名(CSV形式)
268         */
269        void setColumnGroup( String group ) ;
270
271        /**
272         * 同一表示データをまとめないカラム名を、カンマ区切りで与えます。
273         *
274         * これは、カラムのグループ化指定で、同一でもまとめないカラムを指定するほうが簡単な場合に
275         * 使用します。例えば、キー情報以外は、グループ化指定したい場合などに便利です。
276         * 動作は、columnGroup の動きと同じです。(まとめないカラムを指定するだけです。)
277         *
278         * これは、同一表示データをまとめるカラム名の指定(columnGroup)と同時にセットする
279         * ことは出来ません。
280         * また、全カラムについて、有効にする場合は、group="*" を設定します。
281         *
282         * @og.rev 5.1.8.0 (2010/07/01) 新規追加
283         *
284         * @param       group   例:"OYA,KO,HJO,SU,DYSET,DYUPD"
285         */
286        void setNoGroup( final String group );
287
288        /**
289         * 同一表示データをまとめる場合の、表示方法を指定します。
290         *
291         * これは、カラムのグループ化指定(columnGroup)を行う場合の、まとめ表示の方法を指定します。
292         * なにも指定しない場合は、まとめカラムは、表示しない(ゼロ文字列)になります。
293         * その場合、先の行と同じ場合も、変更されたカラムが、NULL(ゼロ文字列)であった場合も、
294         * 同じ用に表示されるため、区別が付きません。
295         * そこで、前の行と同じデータの場合に、特殊な処理を行うことで、区別できるようにします。
296         * 指定方法が特殊なので、注意が必要です。
297         *   記号の場合:
298         *       記号(-- , → , ↓ , * など)が指定された場合は、そのままの文字に置き換えられます。
299         *   アルファベットの場合:
300         *       アルファベット(a-z,A-Z)の場合は、<span class="アルファベット">元の文字</span>
301         * 例えば、バックカラーに色を付ける、文字を薄い灰色にする、などできます。
302         * ただし、データ量が圧倒的に増えるため、大量のデータ等で使用するのは避けたほうが良いと思います。
303         *
304         * @og.rev 3.8.5.0 (2006/03/20) 新規追加
305         *
306         * @param       grpCls まとめ表示の方法
307         */
308        void setGroupClass( final String grpCls );
309
310        /**
311         * カラム名リンクソートを表示するカラム名を、カンマ区切りで与えます。
312         *
313         * ヘッダーにソート用リンクを作成する useTableSorter 属性 に対して、
314         * カラム個別に作成する場合のカラム名をカンマ区切り文字で指定します。
315         * この tableSorterKeys 属性は、useTableSorter 属性 と無関係に、指定した
316         * カラムのみ、リンクを表示します。
317         * また、全カラムについて、有効にする場合は、columnName="*" を設定します。
318         * 例:"OYA,KO,HJO,SU,DYSET,DYUPD"
319         *
320         * @og.rev 3.6.0.0 (2004/09/17) 新規作成
321         *
322         * @param       columnName      カラム名
323         */
324        void setTableSorterKeys( String columnName ) ;
325
326        /**
327         * 表示時の選択用オブジェクトのタイプを指定します。
328         * ・複数選択可能時は "checkbox" を指定します。
329         * ・一つだけ選ばせる場合は, "radio" を指定します。
330         * ・隠しフィールドで全件を選ぶ場合は、"hidden" を指定します。
331         * 初期値は、"checkbox" です。
332         *
333         * @param       type 選択用オブジェクトのタイプ( "checkbox"/"radio"/"hidden"/"null" )
334         */
335        void setSelectedType( String type ) ;
336
337        /**
338         * 表示時の行番号の表示方法を指定します。
339         * ・sequenceは、1から始まる連番です。
340         * ・none を指定すると、番号は表示されません。
341         * ・delete を指定すると、行番号表示そのもののタグを取り除きます。(3.5.5.0 追加)
342         * ・skip=カラム名を指定すると、そのカラムの値が NULL の場合は、番号をスキップします。
343         * ・view=カラム名を指定すると、そのカラムの値が、使用されます。(ラベルは付きません)
344         * skip=XX と、view=XX は、=の前後にスペースを入れないで下さい。
345         * 初期値は、"sequence" です。
346         *
347         * @og.rev 3.5.1.0 (2003/10/03) 新規作成
348         *
349         * @param       type 行番号の表示方法のタイプ( /sequence/none/delete/skip=カラム名/view=カラム名/ )
350         */
351        void setNumberType( String type ) ;
352
353        /**
354         * テーブル等のチェックボックスに属性を付加します
355         * JavaScript などの HTML基本タグ以外の属性を、そのまま
356         * チェックボックス/ラジオボタン等に使用します。
357         *
358         * @param       option オプション属性
359         */
360        void setOptionTypeAttributes( String option ) ;
361
362        /**
363         * リソースマネージャを設定します。
364         * クロス集計時に、useColumnHeader="true"とした場合のみ設定されます。
365         *
366         * @og.rev 4.0.0.0 新規作成
367         *
368         * @param       res リソースマネージャー
369         */
370        void setResourceManager( ResourceManager res ) ;
371
372        //////////////////////////////////////////////////////////////////////////
373        //
374        //       フォーマット関連クラスのメソッド
375        //
376        //////////////////////////////////////////////////////////////////////////
377
378        /**
379         * フォーマットを設定します。
380         *
381         * @og.rev 3.5.4.0 (2003/11/25) 新規作成
382         *
383         * @param list TableFormatterのリスト
384         */
385        void setFormatterList( List<TableFormatter> list ) ;            // 4.3.3.6 (2008/11/15) Generics警告対応
386
387        /**
388         * フォーマットメソッドを使用できるかどうかを問い合わせます。
389         *
390         * @return      フォーマットメソッドを使用できるか
391         */
392        boolean canUseFormat() ;
393
394        /**
395         * ビューフォームのタイプを返します。
396         * これは、ViewFormFactory で、org.opengion.hayabusa.html. + 『type』 + ViewForm
397         * で作成されるサブクラスの 『type』 部分を返します。
398         *
399         * @return      ビューフォームのタイプ
400         */
401        String getViewFormType() ;
402
403        /**
404         * ビューリンクオブジェクトを設定します。
405         * これは、ViewLink タグで作成された キー(カラム名)とリンク文字列を
406         * 持っている Attributes オブジェクトを受け取り、内部でリンク表示に
407         * 使用します。
408         *
409         * @param       link    ビューリンクオブジェクト
410         */
411        void setViewLink( ViewMarker link );
412
413        /**
414         * ビューマーカーオブジェクトを設定します。
415         * これは、ViewMarker タグで作成された キー(カラム名)とマーカー文字列を
416         * 持っている Attributes オブジェクトを受け取り、内部でマーカー表示に
417         * 使用します。
418         *
419         * @param       link    ビューマーカーオブジェクト
420         */
421        void setViewMarker( ViewMarker link );
422
423        /**
424         * エディットマーカーオブジェクトを設定します。
425         * これは、ViewMarker タグで、isRendere="false" で作成された エディットキー(カラム名)と
426         * マーカー文字列を持っている Attributes オブジェクトを受け取り、内部でマーカー表示に
427         * 使用します。
428         *
429         * @og.rev 3.8.6.1 (2006/10/20) 新規追加
430         *
431         * @param       marker  ビューマーカーオブジェクト
432         */
433        void setEditMarker( ViewMarker marker ) ;
434
435        /**
436         * 検索結果メッセージを表示する/しないを設定します
437         * 初期値は、表示する(false)です。
438         *
439         * @param       noMessage [true:表示しない/false:表示する]
440         */
441        void setNoMessage( boolean noMessage ) ;
442
443        /**
444         * 先頭へ戻るリンク間隔を返します。
445         *
446         * @return      backLinkCount    リンク間隔
447         */
448        int getBackLinkCount() ;
449
450        /**
451         * 先頭へ戻るリンク間隔をセットします。
452         *
453         * @param  no   リンク間隔
454         */
455        void setBackLinkCount( int no ) ;
456
457        /**
458         * ヘッダーを出力する間隔を取得します。
459         *
460         * @og.rev 3.5.2.0 (2003/10/20) 新規作成
461         *
462         * @return      ヘッダーの表示間隔 ( 0:通常ヘッダ、n:n回ごとに現れる )
463         */
464        int getHeaderSkipCount() ;
465
466        /**
467         * ヘッダーを出力する間隔をセットします。
468         *
469         * 0を指定すると、繰り返しません(つまり、ヘッダーを最初に表示するだけです。)
470         * 数字を指定すると、その回数毎に、ヘッダーをデータの行に挿入します。
471         *
472         * @og.rev 3.5.2.0 (2003/10/20) 新規作成
473         *
474         * @param       hsc ヘッダーの表示間隔 ( 0:通常ヘッダ、n:n回ごとに現れる )
475         */
476        void setHeaderSkipCount( int hsc ) ;
477
478        /**
479         * チェックの入った行のみを表示させるかどうか指定します。
480         *
481         * "true" で、チェックの入った行のみを表示させます。
482         * 従来は、TextField系のViewに対して、NEXT,PREVでチェックの
483         * 入った行のみを表示させる機能でしたが、Table系のViewに対しても、
484         * 同様に機能するように、しました。
485         * 初期値は、ViewForm.DEFAULT_SKIP です。
486         *
487         * @og.rev 3.5.3.1 (2003/10/31) 新規追加
488         *
489         * @param       flag チェックの入った行のみを表示させるかどうか(true:のみ表示/false:前件表示)
490         */
491        void setSkip( boolean flag ) ;
492
493        /**
494         * チェックボックスの全チェックを選択するJavaScript の機能を使用するかどうかを指定します。
495         *
496         * 1 で、コントロール用のチェックボックスが現れて、この機能を使用することができるようになります。
497         * 0 は、従来どおりです。
498         * 使用するにあたり、jsp/commpn/default.js にJavaScriptを設定しておきます。(設定済み)
499         * 初期値は、システムパラメータ の VIEW_USE_CHECK_CONTROL です。(0:使用しない)
500         *
501         * @og.rev 3.5.4.3 (2004/01/05) 新規追加
502         * @og.rev 3.7.0.1 (2005/01/31) 全件チェックコントロール変更( boolean ⇒ String )
503         *
504         * @param       flag チェックボックスの全チェックを選択する機能を使用するかどうか
505         *                      (1:使用する/0:使用しない/2:初期値チェック済み)
506         */
507        void setUseCheckControl( int flag ) ;
508
509        /**
510         * ヘッダーにソート用リンクを作成するかどうかを指定します。
511         *
512         * "true" で、ヘッダーにソート用リンクを作成します。
513         * false は、作成しません。
514         *
515         * @og.rev 3.5.4.7 (2004/02/06) 新規追加
516         *
517         * @param       flag ヘッダーにソート用リンクを作成するかどうか(true:作成する/false:作成しない)
518         */
519        void setUseTableSorter( boolean flag ) ;
520
521        /**
522         * ヘッダーにソート用リンクを作成する時の、リクエスト引数のMapを設定します。
523         *
524         * ソート用URLに、リクエスト時の引数を設定する必要があります。
525         * そのため、リクエスト時のキーと値のセットをMapで指定します。
526         * このMap は、リクエストキャッシュより取り出します。
527         * 実装では、このMapを元に、URLのQuery部文字列を作成します。処理過程において、
528         * このMap を書き換えることは行いません。
529         *
530         * @og.rev 3.6.0.0 (2004/09/17) 新規作成
531         *
532         * @param       map ヘッダーソート時のリンクに追加するリクエスト変数のキャッシュMap
533         */
534        void makeTableSorterQuery( Map<?,?> map ) ;             // 4.3.3.6 (2008/11/15) Generics警告対応
535
536        /**
537         * ViewForm のサブクラスに渡すパラメータマップ
538         *
539         * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追加します。
540         *
541         * @param       map パラメータマップ
542         */
543        void setParam( Map<String,String> map ) ;       // 4.3.3.6 (2008/11/15) Generics警告対応
544        
545        /**
546         * ViewForm のサブクラスに渡すパラメータ(文字列配列のList)を設定します。
547         *
548         * @og.rev 5.5.8.3 (2011/11/17) Object受け渡しのために追加
549         *
550         * @param       list 文字列配列のList
551         */
552        void setViewArrayList( List<String[]> list) ;
553
554        /**
555         * マーカーオブジェクト(リンク、マーカー)を設定します。
556         * ここでは、旧 ViewForm 属性を 新ViewForm に直接セットします。
557         *
558         * @og.rev 3.5.6.1 (2004/06/25) 新規追加
559         *
560         * @param       view ViewFormオブジェクト
561         */
562        void markerSet( ViewForm view ) ;
563
564        /**
565         * テーブルのバックグラウンドカラーの入れ替えのサイクルをセットします。
566         * 0(ゼブラなし)、-1(ワーニング)、-2以下(エラー)、1(ゼブラ)、2以上(行数まとめ)
567         * 初期値は、1(ゼブラ)です。
568         *
569         * @og.rev 3.5.6.2 (2004/07/05) 新規追加
570         *
571         * @param  sycle  0(ゼブラなし)、-1(ワーニング)、-2以下(エラー)、1(ゼブラ)、2以上(行数まとめ)
572         */
573        void setBgColorCycle( int sycle ) ;
574
575        /**
576         * テーブルのバックグラウンドカラーのクラスに指定するカラム名を指定します。
577         *
578         * 通常のゼブラ模様は、tr 属性のクラス指定として、row_0、row_1 が指定されます。
579         * その代わりに、ここで指定されたカラムの値がクラス属性として設定されます。
580         * (指定するのはカラム名です。行単位にクラス属性の値を変えることが可能です。)
581         * 選択行(row_sel)は、優先して使用されます。
582         * 出力されるクラス名は、"row_" + 属性値 になります。
583         *
584         * @og.rev 5.1.8.0 (2010/07/01) 新規追加
585         *
586         * @param  clsClm ゼブラ模様の替わりに指定するクラスを格納したカラム名
587         */
588        void setBgColorClsClm( final String clsClm ) ;
589
590        /**
591         * スクロールバー用のDIV要素を出力するかどうか(初期値は、false)
592         *
593         * スクロールバー対応する為、テーブルの先頭に、DIV要素を出力します。
594         * 初期値は、システムパラメータ の VIEW_USE_SCROLLBAR です。
595         * ※ 互換性の関係より、false になっています。
596         * ※ 互換性の関係より、新しいタイプのヘッダー固定を、"TYPE2" とします。
597         *
598         * @og.rev 3.5.6.4 (2004/07/16) 新規追加
599         * @og.rev 3.8.0.3 (2005/07/15) barType 変数の追加
600         * @og.rev 4.0.0.0 (2007/04/10) ヘッダー固定のスクロールタイプは、TYPE2 のみにする。
601         *
602         * @param       useBar  スクロールバー用のDIV要素を出力 [true:出力する/false:出力しない]
603         */
604        void setUseScrollBar( boolean useBar );
605
606        /**
607         * 指定の行番号まで画面をスクロールさせる場合の行番号を設定します。
608         *
609         * 画面をスクロール後、リンク等で他画面を表示後、戻ってきた場合に、
610         * 先のスクロール位置まで戻します。
611         * ただし、厳密に戻すことはできないため、大体のあたりに戻します。
612         * useSelRowColor は、選択行に色づけするかどうかを指定します。
613         *
614         * @og.rev 3.7.0.3 (2005/03/01) 新規追加
615         * @og.rev 3.7.1.1 (2005/05/31) 選択行マーカーの使用有無
616         *
617         * @param  rowNo  指定の行番号まで画面をスクロールさせる場合の行番号
618         * @param       useSelRowColor  指定の行番号(選択行)の色を変更するかどうか
619         */
620        void setScrollRowNo( int rowNo, boolean useSelRowColor ) ;
621
622        /**
623         * 設定値に "_" が含まれている場合にレンデラーを使用するカラムをCSV形式で指定します。
624         *
625         * これは、従来の カラム定義の WRITABLE エディターと同等の働きを行うように
626         * カラム属性を指定します。
627         * WRITABLE エディターは、設定値にアンダーバー "_" が含まれている場合に、
628         * その値を書込み禁止にする機能です。これは、エディター自身が値を判断して
629         * 書き込み許可か禁止かを判断しています。
630         * この動きを汎用的にするため、指定のカラムをカンマ区切り文字(CSV)で指定
631         * することにより、レンデラーとエディターを設定値によって動的に切り替える
632         * 機能を実現します。
633         * その場合、表示/編集ともに、先頭のアンダーバーは削除されます。
634         * また、全カラムについて、有効にする場合は、writableControl="*" を設定します。
635         *
636         * @og.rev 3.8.0.9 (2005/10/17) 新規追加
637         *
638         * @param  wrtCtrl 書き込み制御を行いたいカラムをCSV形式で指定
639         */
640        void setWritableControl( String wrtCtrl ) ;
641
642        /**
643         * ogPopup で検索結果の値を返すキーを、CSV形式で指定します。
644         *
645         * popup の検索結果を返す画面で、結果のラジオボタンにイベントセットします。
646         * この場合、オープンもとのwindow に値を返しますが、そのキーをCSV形式で
647         * 指定します。
648         * なお、このメソッドは、一覧表示(HTMLTable)関係のビューのみでサポートして
649         * いますが、チェックメソッドの関係で、それ以外のビューに適用しても素通り
650         * するようにします。(エラーにしません)
651         *
652         * @og.rev 3.8.6.1 (2006/10/20) 新規追加
653         *
654         * @param  rtnKeys ogPopupで値を返すカラム文字列(CSV形式)
655         */
656        void setPopupReturnKeys( String rtnKeys ) ;
657
658        /**
659         * ビューの高さを指定します。
660         *
661         * @og.rev 4.2.0.0 (2008/03/18) 新規追加
662         *
663         * @param  height 単位付き高さ
664         */
665        void setHeight( String height ) ;
666
667        /**
668         * ビューの幅を指定します。
669         *
670         * @og.rev 4.2.0.0 (2008/03/18) 新規追加
671         *
672         * @param  width 単位付き高さ
673         */
674        void setWidth( String width ) ;
675
676        /**
677         * table要素に対して class 属性を設定します。
678         *
679         * 従来の システムリソースでのテーブルレイアウトの設定を廃止し、
680         * CSSファイルで、指定するように変更しています。
681         * これに伴い、CSSファイルのキーとして、クラス属性を出力します。
682         * view(または、出力されるtableタグ)のレイアウトは、このクラス属性で
683         * 指定することが可能になります。
684         * 初期値は、viewTable です。
685         *
686         * @og.rev 4.0.0.0 (2007/04/16) 新規追加
687         *
688         * @param       cls     class属性を表す文字列
689         */
690        void setTableClass( String cls ) ;
691
692        /**
693         * 改廃Cのついていない行をスキップするかどうか指定します。
694         *
695         * "true" で、改廃Cのついた行をスキップします。
696         * 初期値はfalseです。
697         *
698         * @og.rev 4.3.1.0 (2008/09/08) 新規追加
699         *
700         * @param       flag 改廃Cのついていない行をスキップするかどうか(true:スキップする/false:スキップしない)
701         */
702        void setSkipNoEdit( boolean flag ) ;
703
704        /**
705         * 画面遷移なしモードに対応した形で処理を行うかを指定します。
706         *
707         * "true" で、画面遷移なしモードに対応します。
708         * 初期値はfalseです。
709         *
710         * @og.rev 4.3.3.0 (2008/10/01) 新規追加
711         *
712         * @param       flag 画面遷移なしモードに対応するかどうか(true:対応する/false:対応しない)
713         */
714        void setNoTransition( boolean flag ) ;
715
716        /**
717         * ビューで表示したカラムの一覧をカンマ区切りで返します。
718         *
719         * @og.rev 5.1.6.0 (2010/05/01) 新規追加
720         *
721         * @return      ビューで表示したカラムの一覧
722         */
723        String getViewClms() ;
724
725        /**
726         * 表示項目の編集(並び替え)が可能かどうかを返します
727         *
728         * @og.rev 5.1.6.0 (2010/05/01) 新規追加
729         *
730         * @return      表示項目の編集(並び替え)が可能かどうか
731         */
732        boolean isEditable() ;
733
734        /**
735         * このViewFormが作成された画面IDをセットします。
736         *
737         * @og.rev 5.1.7.0 (2010/06/01) 新規追加
738         *
739         * @param gamenId 画面ID
740         */
741        void setGamenId( final String gamenId );
742
743        /**
744         * このViewFormが作成された画面IDを返します。
745         *
746         * @og.rev 5.1.7.0 (2010/06/01) 新規追加
747         *
748         * @return      画面ID
749         */
750        String getGamenId();
751
752        /**
753         * 一括入力カラムのアシスト機能を利用するカラム名を、カンマ区切りで与えます。
754         *
755         * これは、カラムの書き込み時に、一括入力可能なカラムをヘッダーに表示し、
756         * 一括登録できる機能を提供します。
757         * この機能は、jsp/common/bulkUpdate.js JavaScript とともに提供されます。
758         * IE については、クリップボードも利用できます。Ctrl-C と Ctrl-V でそれぞれ
759         * 一連のカラムの値の取り出しと書き込みが可能になります。
760         * "*" を指定すると、すべてのカラムを(columnBulkSet)指定したことになります。
761         *
762         * @og.rev 5.2.1.0 (2010/10/01) 新規作成
763         *
764         * @param       columnName      例:"OYA,KO,HJO,SU,DYSET,DYUPD"
765         */
766        void setColumnBulkSet( final String columnName );
767}