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 org.opengion.hayabusa.db.DBTableModel; 019import org.opengion.fukurou.util.Attributes; 020 021/** 022 * DBTableModelの表示を行うインターフェースです。 023 * 各種の表示形式をサポートするには、ViewMarker インターフェースを implements した 024 * クラスを作成して、DBTableModel をセットするだけです。 025 * ViewMarker 自体は、Controller クラスよりアクセスされます。 026 * 027 * ViewMarker の実装クラス( implements されたクラス)に対する 各種設定(たとえば、HTMLタグなど) 028 * は、個々の実装クラス毎に設定します。 029 * 030 * @og.group 画面表示 031 * 032 * @version 4.0 033 * @author Kazuhiko Hasegawa 034 * @since JDK5.0, 035 */ 036public interface ViewMarker { 037 038 /** 039 * 内容をクリア(初期化)します。 040 * 041 */ 042 void clear() ; 043 044 /** 045 * カラムに対するマーカーアトリビュートをセットします。 046 * 047 * @og.rev 4.0.0.0 (2005/08/31) 同一カラムの複数登録を許可します。 048 * 049 * @param attri リンクアトリビュート 050 */ 051 void addAttribute( Attributes attri ) ; 052 053 /** 054 * このマーカーが、初期化されているかどうかを判定します。 055 * 056 * 使用できる状態の場合は、true , 初期化が出来ていない場合は、false を返します。 057 * 058 * @og.rev 6.7.2.0 (2017/01/16) caseKey,caseVal等で未使用のときの対応。 059 * 060 * @return 初期化状況 [true:初期化済み/false:未初期化] 061 */ 062 boolean isUsable() ; 063 064 /** 065 * 内部に DBTableModel をセットします。 066 * 067 * @param table DBTableModelオブジェクト 068 */ 069 void setDBTableModel( DBTableModel table ) ; 070 071 /** 072 * 指定の行列に対するマーカー文字列を返します。 073 * この値は、すでにマーカー文字列処理されている為、RendererValue で 074 * 変換する必要はありません。 075 * 引数の value はそのカラムの値として利用されます。この値は、修飾済みの 076 * 値を与えることが可能です。 077 * 078 * @param row 指定の行 079 * @param column 指定の列 080 * @param value カラムの値 081 * 082 * @return row行、colum列 のマーカー文字列 083 */ 084 String getMarkerString( int row,int column,String value ) ; 085 086 /** 087 * マーカーされたカラム番号の配列を返します。 088 * 089 * これは特殊処理で、Edit機能で、カラム列をキャッシュしているときに、 090 * JSPのソース等の変更時に、変更が反映されない対応を行う場合、 091 * 通常の ViewFormのサブクラスから、Edit専用の ViewForm_HTMLSeqClmTable で 092 * 制御する場合、ViewMarkerのEditMarkerでは、通常非表示(検索の場合)ですが 093 * Editのポップアップ画面に、表示されてしまうのを避けるため、noDisplay に 094 * 強制的にするカラム番号が必要です。 095 * あくまで、暫定処置です。Edit機能を改修するときに、この機能は削除します。 096 * 097 * @og.rev 6.0.3.0 (2014/11/13) Edit機能で、JSPソース変更時の対応 098 * 099 * @return マーカーされたカラム番号の配列 100 */ 101 int[] getColumnNos(); 102}