    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        public 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)の場合は、&lt;span class="アルファベット"&gt;元の文字&lt;/span&gt;
    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         * 同一表示データをまとめる場合に、行(row)か列(column)を指定します(初期値:false:ROW)
    325         *
    326         * これは、カラムのグループ化指定(columnGroup)を行う場合の、まとめ表示の方向を指定します。
    327         * ROW(初期値:false)を指定すると、指定のカラムで、行単位に同一データかどうかを判定します。
    328         * COLUMN(true)を指定すると、columnGroup で指定した順番に、列方向に同一データかどうかを判定します。
    329         * DBTableModelの登録順で、ひとつ前のカラムと比較します。
    330         *
    331         * @og.rev 6.7.3.0 (2017/01/27) 新規追加
    332         *
    333         * @param       dir まとめ表示の方向(false:ROW/true:COLUMN)
    334         * @see         #setColumnGroup( String )
    335         */
    336        void setGroupDir( final boolean dir );
    337
    338        /**
    339         * カラム名リンクソートを表示するカラム名を、CSV形式で与えます。
    340         *
    341         * ヘッダーにソート用リンクを作成する useTableSorter 属性 に対して、
    342         * カラム個別に作成する場合のカラム名をCSV形式で指定します。
    343         * この tableSorterKeys 属性は、useTableSorter 属性 と無関係に、指定した
    344         * カラムのみ、リンクを表示します。
    345         * また、全カラムについて、有効にする場合は、columnName="*" を設定します。
    346         * 例："OYA,KO,HJO,SU,DYSET,DYUPD"
    347         *
    348         * @og.rev 3.6.0.0 (2004/09/17) 新規作成
    349         *
    350         * @param       columnName      カラム名
    351         */
    352        void setTableSorterKeys( String columnName ) ;
    353
    354        /**
    355         * 表示時の選択用オブジェクトのタイプを指定します。
    356         * ・複数選択可能時は "checkbox" を指定します。
    357         * ・一つだけ選ばせる場合は, "radio" を指定します。
    358         * ・隠しフィールドで全件を選ぶ場合は、"hidden" を指定します。
    359         * 初期値は、"checkbox" です。
    360         *
    361         * @param       type 選択用オブジェクトのタイプ( "checkbox"/"radio"/"hidden"/"null" )
    362         */
    363        void setSelectedType( String type ) ;
    364
    365        /**
    366         * 表示時の行番号の表示方法を指定します。
    367         * ・sequenceは、１から始まる連番です。
    368         * ・none を指定すると、番号は表示されません。
    369         * ・delete を指定すると、行番号表示そのもののタグを取り除きます。(3.5.5.0 追加)
    370         * ・skip=カラム名を指定すると、そのカラムの値が NULL の場合は、番号をスキップします。
    371         * ・view=カラム名を指定すると、そのカラムの値が、使用されます。(ラベルは付きません)
    372         * skip=XX と、view=XX は、=の前後にスペースを入れないで下さい。
    373         * 初期値は、"sequence" です。
    374         *
    375         * @og.rev 3.5.1.0 (2003/10/03) 新規作成
    376         *
    377         * @param       type 行番号の表示方法のタイプ( /sequence/none/delete/skip=カラム名/view=カラム名/ )
    378         */
    379        void setNumberType( String type ) ;
    380
    381        /**
    382         * テーブル等のチェックボックスに属性を付加します
    383         * JavaScript などの HTML基本タグ以外の属性を、そのまま
    384         * チェックボックス/ラジオボタン等に使用します。
    385         *
    386         * @param       option オプション属性
    387         */
    388        void setOptionTypeAttributes( String option ) ;
    389
    390        /**
    391         * リソースマネージャを設定します。
    392         * クロス集計時に、useColumnHeader="true"とした場合のみ設定されます。
    393         *
    394         * @og.rev 4.0.0.0 新規作成
    395         *
    396         * @param       res リソースマネージャー
    397         */
    398        void setResourceManager( ResourceManager res ) ;
    399
    400        //////////////////////////////////////////////////////////////////////////
    401        //
    402        //       フォーマット関連クラスのメソッド
    403        //
    404        //////////////////////////////////////////////////////////////////////////
    405
    406        /**
    407         * フォーマットを設定します。
    408         *
    409         * @og.rev 3.5.4.0 (2003/11/25) 新規作成
    410         *
    411         * @param list TableFormatterのリスト
    412         */
    413        void setFormatterList( List<TableFormatter> list ) ;            // 4.3.3.6 (2008/11/15) Generics警告対応
    414
    415        /**
    416         * フォーマットメソッドを使用できるかどうかを問い合わせます。
    417         *
    418         * @return      フォーマットメソッドを使用できるか
    419         */
    420        boolean canUseFormat() ;
    421
    422        /**
    423         * ビューフォームのタイプを返します。
    424         * これは、ViewFormFactory で、org.opengion.hayabusa.html. + 『type』 + ViewForm
    425         * で作成されるサブクラスの 『type』 部分を返します。
    426         *
    427         * @return      ビューフォームのタイプ
    428         */
    429        String getViewFormType() ;
    430
    431        /**
    432         * ビューリンクオブジェクトを設定します。
    433         * これは、ViewLink タグで作成された キー(カラム名)とリンク文字列を
    434         * 持っている Attributes オブジェクトを受け取り、内部でリンク表示に
    435         * 使用します。
    436         *
    437         * @param       link    ビューリンクオブジェクト
    438         */
    439        void setViewLink( ViewMarker link );
    440
    441        /**
    442         * ビューマーカーオブジェクトを設定します。
    443         * これは、ViewMarker タグで作成された キー(カラム名)とマーカー文字列を
    444         * 持っている Attributes オブジェクトを受け取り、内部でマーカー表示に
    445         * 使用します。
    446         *
    447         * @param       link    ビューマーカーオブジェクト
    448         */
    449        void setViewMarker( ViewMarker link );
    450
    451        /**
    452         * 編集マーカーオブジェクトを設定します。
    453         * これは、ViewMarker タグで、isRendere="false" で作成された 編集キー(カラム名)と
    454         * マーカー文字列を持っている Attributes オブジェクトを受け取り、内部でマーカー表示に
    455         * 使用します。
    456         *
    457         * @og.rev 3.8.6.1 (2006/10/20) 新規追加
    458         *
    459         * @param       marker  ビューマーカーオブジェクト
    460         */
    461        void setEditMarker( ViewMarker marker ) ;
    462
    463        /**
    464         * 検索結果メッセージを表示する/しないを設定します
    465         * 初期値は、表示する(false)です。
    466         *
    467         * @param       noMessage [true:表示しない/false:表示する]
    468         */
    469        void setNoMessage( boolean noMessage ) ;
    470
    471        /**
    472         * 先頭へ戻るリンク間隔を返します。
    473         *
    474         * @return      backLinkCount    リンク間隔
    475         */
    476        int getBackLinkCount() ;
    477
    478        /**
    479         * 先頭へ戻るリンク間隔をセットします。
    480         *
    481         * @param  no   リンク間隔
    482         */
    483        void setBackLinkCount( int no ) ;
    484
    485        /**
    486         * ヘッダーを出力する間隔を取得します。
    487         *
    488         * @og.rev 3.5.2.0 (2003/10/20) 新規作成
    489         *
    490         * @return      ヘッダーの表示間隔 ( 0:通常ヘッダ、n:n回ごとに現れる )
    491         */
    492        int getHeaderSkipCount() ;
    493
    494        /**
    495         * ヘッダーを出力する間隔をセットします。
    496         *
    497         * 0を指定すると、繰り返しません(つまり、ヘッダーを最初に表示するだけです。)
    498         * 数字を指定すると、その回数毎に、ヘッダーをデータの行に挿入します。
    499         *
    500         * @og.rev 3.5.2.0 (2003/10/20) 新規作成
    501         *
    502         * @param       hsc ヘッダーの表示間隔 ( 0:通常ヘッダ、n:n回ごとに現れる )
    503         */
    504        void setHeaderSkipCount( int hsc ) ;
    505
    506        /**
    507         * チェックの入った行のみを表示させるかどうか指定します。
    508         *
    509         * "true" で、チェックの入った行のみを表示させます。
    510         * 従来は、TextField系のViewに対して、NEXT,PREVでチェックの
    511         * 入った行のみを表示させる機能でしたが、Table系のViewに対しても、
    512         * 同様に機能するように、しました。
    513         * 初期値は、ViewForm.DEFAULT_SKIP です。
    514         *
    515         * @og.rev 3.5.3.1 (2003/10/31) 新規追加
    516         *
    517         * @param       flag チェックの入った行のみを表示させるかどうか(true:のみ表示/false:前件表示)
    518         */
    519        void setSkip( boolean flag ) ;
    520
    521        /**
    522         * チェックボックスの全チェックを選択するJavaScript の機能を使用するかどうかを指定します。
    523         *
    524         * 1 で、コントロール用のチェックボックスが現れて、この機能を使用することができるようになります。
    525         * 0 は、従来どおりです。
    526         * 使用するにあたり、jsp/commpn/default.js にJavaScriptを設定しておきます。(設定済み)
    527//       * 初期値は、システムパラメータ の VIEW_USE_CHECK_CONTROL です。(0:使用しない)
    528         *
    529         * @og.rev 3.5.4.3 (2004/01/05) 新規追加
    530         * @og.rev 3.7.0.1 (2005/01/31) 全件チェックコントロール変更( boolean ⇒ String )
    531         *
    532         * @param       flag チェックボックスの全チェックを選択する機能を使用するかどうか
    533         *                      (1:使用する/0:使用しない/2:初期値チェック済み)
    534         */
    535        void setUseCheckControl( int flag ) ;
    536
    537        /**
    538         * ヘッダーにソート用リンクを作成するかどうかを指定します。
    539         *
    540         * "true" で、ヘッダーにソート用リンクを作成します。
    541         * false は、作成しません。
    542         *
    543         * @og.rev 3.5.4.7 (2004/02/06) 新規追加
    544         *
    545         * @param       flag ヘッダーにソート用リンクを作成するかどうか(true:作成する/false:作成しない)
    546         */
    547        void setUseTableSorter( boolean flag ) ;
    548
    549        /**
    550         * ヘッダーにソート用リンクを作成する時の、リクエスト引数のMapを設定します。
    551         *
    552         * ソート用URLに、リクエスト時の引数を設定する必要があります。
    553         * そのため、リクエスト時のキーと値のセットをMapで指定します。
    554         * このMap は、リクエストキャッシュより取り出します。
    555         * 実装では、このMapを元に、URLのQuery部文字列を作成します。処理過程において、
    556         * このMap を書き換えることは行いません。
    557         *
    558         * @og.rev 3.6.0.0 (2004/09/17) 新規作成
    559         *
    560         * @param       map ヘッダーソート時のリンクに追加するリクエスト変数のキャッシュMap
    561         */
    562        void makeTableSorterQuery( Map<?,?> map ) ;             // 4.3.3.6 (2008/11/15) Generics警告対応
    563
    564        /**
    565         * ViewForm のサブクラスに渡すパラメータマップ。
    566         *
    567         * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追加します。
    568         * @og.rev 6.4.3.3 (2016/03/04) ConcurrentHashMap を受け取ることを明確にするため、I/FをConcurrentMapに変更します。
    569         *
    570         * @param       map パラメータマップ
    571         */
    572        void setParam( ConcurrentMap<String,String> map ) ;     // 6.4.3.3 (2016/03/04)
    573
    574        /**
    575         * ViewForm のサブクラスに渡すパラメータ(文字列配列のList)を設定します。
    576         *
    577         * @og.rev 5.5.8.3 (2011/11/17) Object受け渡しのために追加
    578         *
    579         * @param       list 文字列配列のList
    580         */
    581        void setViewArrayList( List<String[]> list) ;
    582
    583        /**
    584         * マーカーオブジェクト(リンク、マーカー)を設定します。
    585         * ここでは、旧 ViewForm 属性を 新ViewForm に直接セットします。
    586         *
    587         * @og.rev 3.5.6.1 (2004/06/25) 新規追加
    588         *
    589         * @param       view ViewFormオブジェクト
    590         */
    591        void markerSet( ViewForm view ) ;
    592
    593        /**
    594         * テーブルのバックグラウンドカラーの入れ替えのサイクルをセットします。
    595         * 0(ゼブラなし)、-1(ワーニング)、-2以下(エラー)、1(ゼブラ)、2以上(行数まとめ)
    596         * 初期値は、1(ゼブラ)です。
    597         *
    598         * @og.rev 3.5.6.2 (2004/07/05) 新規追加
    599         *
    600         * @param  sycle  0(ゼブラなし)、-1(ワーニング)、-2以下(エラー)、1(ゼブラ)、2以上(行数まとめ)
    601         */
    602        void setBgColorCycle( int sycle ) ;
    603
    604        /**
    605         * テーブルのバックグラウンドカラーのクラスに指定するカラム名を指定します。
    606         *
    607         * 通常のゼブラ模様は、tr 属性のクラス指定として、row_0、row_1 が指定されます。
    608         * その代わりに、ここで指定されたカラムの値がクラス属性として設定されます。
    609         * (指定するのはカラム名です。行単位にクラス属性の値を変えることが可能です。)
    610         * 選択行(row_sel)は、優先して使用されます。
    611         * 出力されるクラス名は、"row_" + 属性値 になります。
    612         *
    613         * @og.rev 5.1.8.0 (2010/07/01) 新規追加
    614         *
    615         * @param  clsClm ゼブラ模様の替わりに指定するクラスを格納したカラム名
    616         */
    617        void setBgColorClsClm( final String clsClm ) ;
    618
    619        /**
    620         * スクロールバー用のDIV要素を出力するかどうか(初期値は、false)
    621         *
    622         * スクロールバー対応する為、テーブルの先頭に、DIV要素を出力します。
    623         * 初期値は、システムパラメータ の VIEW_USE_SCROLLBAR です。
    624         * ※ 互換性の関係より、false になっています。
    625         * ※ 互換性の関係より、新しいタイプのヘッダー固定を、"TYPE2" とします。
    626         *
    627         * @og.rev 3.5.6.4 (2004/07/16) 新規追加
    628         * @og.rev 3.8.0.3 (2005/07/15) barType 変数の追加
    629         * @og.rev 4.0.0.0 (2007/04/10) ヘッダー固定のスクロールタイプは、TYPE2 のみにする。
    630         *
    631         * @param       useBar  スクロールバー用のDIV要素を出力 [true:出力する/false:出力しない]
    632         */
    633        void setUseScrollBar( boolean useBar );
    634
    635        /**
    636         * 指定の行番号まで画面をスクロールさせる場合の行番号を設定します。
    637         *
    638         * 画面をスクロール後、リンク等で他画面を表示後、戻ってきた場合に、
    639         * 先のスクロール位置まで戻します。
    640         * ただし、厳密に戻すことはできないため、大体のあたりに戻します。
    641         * useSelRowColor は、選択行に色づけするかどうかを指定します。
    642         *
    643         * @og.rev 3.7.0.3 (2005/03/01) 新規追加
    644         * @og.rev 3.7.1.1 (2005/05/31) 選択行マーカーの使用有無
    645         *
    646         * @param  rowNo  指定の行番号まで画面をスクロールさせる場合の行番号
    647         * @param       useSelRowColor  指定の行番号(選択行)の色を変更するかどうか
    648         */
    649        void setScrollRowNo( int rowNo, boolean useSelRowColor ) ;
    650
    651        /**
    652         * 設定値に "_" が含まれている場合にレンデラーを使用するカラムをCSV形式で指定します。
    653         *
    654         * これは、従来の カラム定義の WRITABLE エディターと同等の働きを行うように
    655         * カラム属性を指定します。
    656         * WRITABLE エディターは、設定値にアンダーバー "_" が含まれている場合に、
    657         * その値を書込み禁止にする機能です。これは、エディター自身が値を判断して
    658         * 書き込み許可か禁止かを判断しています。
    659         * この動きを汎用的にするため、指定のカラムをCSV形式(CSV)で指定
    660         * することにより、レンデラーとエディターを設定値によって動的に切り替える
    661         * 機能を実現します。
    662         * その場合、表示/編集ともに、先頭のアンダーバーは削除されます。
    663         * また、全カラムについて、有効にする場合は、writableControl="*" を設定します。
    664         *
    665         * @og.rev 3.8.0.9 (2005/10/17) 新規追加
    666         *
    667         * @param  wrtCtrl 書き込み制御を行いたいカラムをCSV形式で指定
    668         */
    669        void setWritableControl( String wrtCtrl ) ;
    670
    671        /**
    672         * ogPopup で検索結果の値を返すキーを、CSV形式で指定します。
    673         *
    674         * popup の検索結果を返す画面で、結果のラジオボタンにイベントセットします。
    675         * この場合、オープンもとのwindow に値を返しますが、そのキーをCSV形式で
    676         * 指定します。
    677         * なお、このメソッドは、一覧表示(HTMLTable)関係のビューのみでサポートして
    678         * いますが、チェックメソッドの関係で、それ以外のビューに適用しても素通り
    679         * するようにします。(エラーにしません)
    680         *
    681         * @og.rev 3.8.6.1 (2006/10/20) 新規追加
    682         *
    683         * @param  rtnKeys ogPopupで値を返すカラム文字列(CSV形式)
    684         */
    685        void setPopupReturnKeys( String rtnKeys ) ;
    686
    687        /**
    688         * ビューの高さを指定します。
    689         *
    690         * @og.rev 4.2.0.0 (2008/03/18) 新規追加
    691         *
    692         * @param  height 単位付き高さ
    693         */
    694        void setHeight( String height ) ;
    695
    696        /**
    697         * ビューの幅を指定します。
    698         *
    699         * @og.rev 4.2.0.0 (2008/03/18) 新規追加
    700         *
    701         * @param  width 単位付き高さ
    702         */
    703        void setWidth( String width ) ;
    704
    705        /**
    706         * table要素に対して class 属性を設定します。
    707         *
    708         * 従来の システムリソースでのテーブルレイアウトの設定を廃止し、
    709         * CSSファイルで、指定するように変更しています。
    710         * これに伴い、CSSファイルのキーとして、クラス属性を出力します。
    711         * view(または、出力されるtableタグ)のレイアウトは、このクラス属性で
    712         * 指定することが可能になります。
    713         * 初期値は、viewTable です。
    714         *
    715         * @og.rev 4.0.0.0 (2007/04/16) 新規追加
    716         *
    717         * @param       cls     class属性を表す文字列
    718         */
    719        void setTableClass( String cls ) ;
    720
    721        /**
    722         * 改廃Cのついていない行をスキップするかどうか指定します。
    723         *
    724         * "true" で、改廃Cのついた行をスキップします。
    725         * 初期値はfalseです。
    726         *
    727         * @og.rev 4.3.1.0 (2008/09/08) 新規追加
    728         *
    729         * @param       flag 改廃Cのついていない行をスキップするかどうか(true:スキップする/false:スキップしない)
    730         */
    731        void setSkipNoEdit( boolean flag ) ;
    732
    733        /**
    734         * 画面遷移なしモードに対応した形で処理を行うかを指定します。
    735         *
    736         * "true" で、画面遷移なしモードに対応します。
    737         * 初期値はfalseです。
    738         *
    739         * @og.rev 4.3.3.0 (2008/10/01) 新規追加
    740         *
    741         * @param       flag 画面遷移なしモードに対応するかどうか(true:対応する/false:対応しない)
    742         */
    743        void setNoTransition( boolean flag ) ;
    744
    745        /**
    746         * ビューで表示したカラムの一覧をCSV形式で返します。
    747         *
    748         * @og.rev 5.1.6.0 (2010/05/01) 新規追加
    749         *
    750         * @return      ビューで表示したカラムの一覧
    751         */
    752        String getViewClms() ;
    753
    754        /**
    755         * 表示項目の編集(並び替え)が可能かどうかを返します。
    756         *
    757         * @og.rev 5.1.6.0 (2010/05/01) 新規追加
    758         *
    759         * @return      表示項目の編集(並び替え)が可能かどうか
    760         */
    761        boolean isEditable() ;
    762
    763        /**
    764         * このViewFormが作成された画面IDをセットします。
    765         *
    766         * @og.rev 5.1.7.0 (2010/06/01) 新規追加
    767         *
    768         * @param gamenId 画面ID
    769         */
    770        void setGamenId( final String gamenId );
    771
    772        /**
    773         * このViewFormが作成された画面IDを返します。
    774         *
    775         * @og.rev 5.1.7.0 (2010/06/01) 新規追加
    776         *
    777         * @return      画面ID
    778         */
    779        String getGamenId();
    780
    781        /**
    782         * 一括入力カラムのアシスト機能を利用するカラム名を、CSV形式で与えます。
    783         *
    784         * これは、カラムの書き込み時に、一括入力可能なカラムをヘッダーに表示し、
    785         * 一括登録できる機能を提供します。
    786         * この機能は、jsp/common/bulkUpdate.js JavaScript とともに提供されます。
    787         * IE については、クリップボードも利用できます。Ctrl-C と Ctrl-V でそれぞれ
    788         * 一連のカラムの値の取り出しと書き込みが可能になります。
    789         * "*" を指定すると、すべてのカラムを(columnBulkSet)指定したことになります。
    790         *
    791         * @og.rev 5.2.1.0 (2010/10/01) 新規作成
    792         *
    793         * @param       columnName      例："OYA,KO,HJO,SU,DYSET,DYUPD"
    794         */
    795        void setColumnBulkSet( final String columnName );
    796
    797        /**
    798         * このViewFormを作成するにあたり、区別するためのクラス属性をセットします。
    799         *
    800         * 通常は、viewForm より tableId を設定します。
    801         * SplitViewTag を使用する場合は、左右分割のため、同じtableId になるため、
    802         * 左右で異なるclassを設定してください。
    803         *
    804         * @og.rev 6.4.6.1 (2016/06/03) 新規追加
    805         *
    806         * @param clazz Viewのクラス属性
    807         */
    808        void setViewClass( final String clazz );
    809}