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