クラス TableFormatter
java.lang.Object
org.opengion.hayabusa.html.TableFormatter
[PN],[OYA] などの [] で指定されたカラムで表されたフォーマットデータに対して、
DBTableModelオブジェクトを適用して 各カラムに実データを割り当てるオブジェクトです。
特に、[XXXX]に対して、[#XXXX]、[$XXXX]、[!XXXX]などの特殊記号が使用できます。
特殊記号の解釈は、HTMLFormatTextField系とHTMLFormatTable系で異なりますので
ご注意ください。
'#':ラベルのみ '$':レンデラー '!':値のみ
- 変更履歴:
- 3.5.4.0 (2003/11/25) 新規追加
- 機能分類
- 画面表示
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド -
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明フォーマットを取得します。getFormat
(int no) フォーマット文字列を返します。このフォーマットのタイプを返します。itdフォーマット文字列を取得します。int
getLocation
(int no) カラムのロケーション番号を返します。int
ロケーション番号のサイズを返します。カラムのロケーション番号をIntStreamで返します。設定された rowspan を返します。getSystemFormat
(int row, int loc) システムフォーマット文字列を返します。getTrTag()
設定された フォーマットの trタグを返します。char
getType
(int no) タイプ文字列を返します。boolean
カラムのクラス名(X,S9 など)のセットを行うかどうか取得します。boolean
isUse
(int row, DBTableModel table) このフォーマットを使用するかどうかの問い合わせを返します。void
makeFormat
(DBTableModel table) DBTableModelを利用して、フォーマットデータを初期化します。void
フォーマットをセットします。void
フォーマットをセットします。void
setFormatType
(FormatterType ftype) テーブルフォーマットのタイプを指定します。void
setItdBody
(String itd) itdフォーマット文字列を設定します。void
setKeyBreakClm
(String kclm) ここで指定したカラムの値が、キーブレイクした場合、このタグを使用します。void
setNoClass
(String flag) カラムのクラス名(X,S9 など)のセットを行うかどうか指定します。protected void
setNoDisplay
(int no) 指定のロケーション番号の値をクリアします。void
setRowspan
(String rowspan) テーブルの rowspan 属性をセットします。void
setUsableKey
(String key) フォーマットの使用可否を判断するキーとなるカラム名を指定します。void
setUsableList
(String list) フォーマットの使用可否を判断する文字列リストを指定します。
-
フィールド詳細
-
コンストラクタの詳細
-
TableFormatter
public TableFormatter()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
setFormat
フォーマットをセットします。 フォーマットに、<table>を含む場合、TextField扱いなので、フォーマット分割 しません。table を含まず、tr を含む場合は、1行分のデータとして扱う為、 trTag を求めます。 trTag と format との間に、行ヘッダーが入ります。 Tomcat6では、JSPのパース時に、tabやspaceはそのままパースされるため、</td>前 のスペース削除処理も行います。- パラメータ:
fmt
- [カラム名] 形式のフォーマットデータflag
- falseにすると先頭のtrタグを取る処理を行いません(5.5.0.3)- 変更履歴:
- 4.3.2.0 (2008/09/10) </td>前のスペースを取り消します。, 5.5.0.3 (2012/03/13) <tr>を取らないフラグ追加
-
setFormat
フォーマットをセットします。 フォーマットに、<table>を含む場合、TextField扱いなので、フォーマット分割 しません。table を含まず、tr を含む場合は、1行分のデータとして扱う為、 trTag を求めます。 trTag と format との間に、行ヘッダーが入ります。 Tomcat6では、JSPのパース時に、tabやspaceはそのままパースされるため、</td>前 のスペース削除処理も行います。- パラメータ:
fmt
- [カラム名] 形式のフォーマットデータ- 変更履歴:
- 5.5.0.3 (2012/03/13) 引数追加につき。
-
getFormat
フォーマットを取得します。- 戻り値:
- フォーマットデータ
- 変更履歴:
- 3.5.5.8 (2004/05/20) 新規追加, 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加
-
makeFormat
DBTableModelを利用して、フォーマットデータを初期化します。- パラメータ:
table
- DBTableModelオブジェクト- 変更履歴:
- 3.5.5.0 (2004/03/12) [KEY.カラム名] 機能追加, 3.5.5.2 (2004/04/02) [I] で、行番号を作成します。, 3.5.6.0 (2004/06/18) '!' 値のみ 追加 既存の '$' は、レンデラー, 3.6.0.0 (2004/09/17) [ROW.ID] で、行毎のチェックボックスのIDを返します。, 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加, 5.7.6.3 (2014/05/23) キーブレイクをチェックする keyBreakClm 属性追加, 6.4.3.4 (2016/03/11) Formatterに新しいコンストラクターを追加する。
-
setFormatType
テーブルフォーマットのタイプを指定します。 enum FormatterType で、指定します。- パラメータ:
ftype
- フォーマットのタイプ- 変更履歴:
- 4.0.0.0 (2007/05/02) enum 定義に変更
-
getFormatType
このフォーマットのタイプを返します。 このフォーマットのタイプを返します。- 戻り値:
- このフォーマットのタイプを返します。
- 変更履歴:
- 4.0.0.0 (2007/05/02) enum 定義に変更
-
setRowspan
テーブルの rowspan 属性をセットします。 rowspan は、ヘッダー部のフォーマットの行数です。初期値は 2行 です。 設定は、"2" などの、数字部のみをセットします。- パラメータ:
rowspan
- 属性
-
getRowspan
設定された rowspan を返します。 これは、フォーマットの段組の数を取り出します。 文字列としては、rowspan="2" という形で取り出します。- 戻り値:
- フォーマット文字列
-
getLocationSize
ロケーション番号のサイズを返します。 フォーム位置番号は、0 から getLocationSize()-1 までの数字を指定します。 ロケーションサイズは、aaa[ABC]bbb[DEF]ccc[GHI]ddd となっている場合、 aaa , bbb , ccc , ddd は、フォーマットで、サイズは4。 ABC , DEF , GHI に対応するカラム番号がロケーションで、サイズは3。 このメソッドで返すのは、ロケーション番号(3)の方です。- 戻り値:
- ロケーション番号のサイズ
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getLocation
カラムのロケーション番号を返します。 引数は、0 から、getLocationSize()-1 までの数で指定します。 指定の位置の、フォーマットのカラム名に対応するロケーション番号 を返します。- パラメータ:
no
- フォーム位置番号- 戻り値:
- ロケーション番号
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getLocationStream
カラムのロケーション番号をIntStreamで返します。 指定の位置の、フォーマットのカラム名に対応するロケーション番号のIntStreamです。- 戻り値:
- 内部のLocation配列を、IntStreamで返します。
- 変更履歴:
- 6.4.3.4 (2016/03/11) 内部のLocation配列を、IntStreamで返します。
-
setNoDisplay
指定のロケーション番号の値をクリアします。 ただし、直前のフォーマットに、td タグが存在する場合は、 style="display:none;" を設定することで、td タグそのものが 無くなります。 その場合、段組みなどのレイアウトを行っていると、フォーマットが 崩れますので、十分ご確認ください。 また、同一 td 内に複数のカラムを指定した場合は、tdタグ内のすべての カラムが消えます。 td タグが存在しない場合は、非表示というより、データを空に するだけになります。- パラメータ:
no
- フォーム位置番号- 変更履歴:
- 6.2.0.0 (2015/02/27) フォーマット系の noDisplay 対応, 6.2.0.1 (2015/03/06) 非表示のマーカーに、Formatter#NO_DISPLAY を使用する。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getFormat
フォーマット文字列を返します。 引数は、0 から、getLocationSize() までの数で指定します。 指定のフォーマットが、aaa[ABC]bbb[DEF]ccc[GHI]ddd となっている場合、 aaa , bbb , ccc , ddd を引数 0 , 1 , 2 , 3 で返します。- パラメータ:
no
- フォーム位置番号- 戻り値:
- フォーマット文字列
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getSystemFormat
システムフォーマット文字列を返します。 システムフォーマット文字列は、[KEY.カラム名] などの特殊記号で指定された カラム名の事で、location には、マイナスの値が設定されます。 マイナスの値に応じて、処理を変えることが出来ます。 [KEY.カラム名] : 行番号付きカラム名 [I] : 行番号 [J] : 登録数 7.3.1.3 (2021/03/09) ※ ただし、ここでは登録件数が判らないため、行番号を返しておきます。 [ROW.ID] : 行毎のチェックボックスのID [ROW.JSON] : 行毎の全データのJavaScriptオブジェクト形式- パラメータ:
row
- 行番号loc
- 位置番号- 戻り値:
- フォーマット文字列
- 変更履歴:
- 3.5.5.0 (2004/03/12) [KEY.カラム名] 機能追加, 3.5.5.2 (2004/04/02) [I] で、行番号を作成します。, 3.6.0.0 (2004/09/17) [ROW.ID] で、行毎のチェックボックスのIDを返します。, 4.0.0.0 (2007/05/02) Formatter を使用するように変更, 6.2.0.1 (2015/03/06) 非表示のマーカーに、Formatter#NO_DISPLAY を使用する。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs), 7.3.1.3 (2021/03/09) [J] で、登録件数(1~) を表現する。
- このメソッドは、nullを返しません
-
getType
タイプ文字列を返します。 タイプとは、[XXX] の記述で、[#XXX] は、XXXカラムのラベルを、[$XXX]は、XXXカラムの レンデラーを、[!XXX} は、値のみ取り出す指定を行います。 主に、TextField系のフォーマットとTable系では、意味合いが異なりますので、 ご注意ください。- パラメータ:
no
- フォーム位置番号- 戻り値:
- タイプ文字列 '#':ラベルのみ '$':レンデラー '!':値のみ その他:通常
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getTrTag
設定された フォーマットの trタグを返します。 これは、trタグにclass属性他の設定がされていた場合に、変換後の 文字列にも反映させる為に必要です。- 戻り値:
- フォーマットの trタグ
- 変更履歴:
- 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加
- このメソッドは、nullを返しません
-
setNoClass
カラムのクラス名(X,S9 など)のセットを行うかどうか指定します。 "true" で、クラス属性を設定しません。これは、CSSファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。- パラメータ:
flag
- クラス名使用の有無(true:使用しない/false:使用する。)
-
isNoClass
カラムのクラス名(X,S9 など)のセットを行うかどうか取得します。 "true" で、クラス属性を設定しません。これは、CSSファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。- 戻り値:
- クラス名使用の有無(true:使用しない/false:使用する。)
-
setUsableKey
フォーマットの使用可否を判断するキーとなるカラム名を指定します。 キーが、usableList に含まれる場合は、このフォームを使用できます。 キー(カラム名)が指定されない場合は、常に使用されます。 ※ 現時点では、BODYタイプのみ使用しています。- パラメータ:
key
- フォーマットの使用可否を判断するカラム名
-
setUsableList
フォーマットの使用可否を判断する文字列リストを指定します。 キーが、この文字列リスト中に存在する場合は、このフォームを使用できます。 この文字列リストは、固定な文字列です。{@XXXX}は使用できますが、[XXXX]は 使用できません。 初期値は、"1" です。 ※ 現時点では、BODYタイプのみ使用しています。- パラメータ:
list
- フォーマットの使用可否を判断する文字列リスト- 関連項目:
-
setKeyBreakClm
ここで指定したカラムの値が、キーブレイクした場合、このタグを使用します。 キーブレイクで 使用可否を指定する為の機能です。 この設定値は、usableKey,usableList とは、独立しているため、それぞれで 有効になれば、使用されると判断されます。 キーブレイク判定では、最初の1件目は、必ず使用されると判断されます。- パラメータ:
kclm
- キーブレイクをチェックするカラムID- 変更履歴:
- 5.7.6.3 (2014/05/23) 新規追加
-
isUse
このフォーマットを使用するかどうかの問い合わせを返します。 "true" で、使用します。setUsableKey( String ) で、指定された カラム名の値が、setUsableList( String ) で指定された文字列に含まれていれば、 使用します。カラム名がセットされない場合は、デフォルト値("true")が使用されます。 ※ 現時点では、BODYタイプのみ使用しています。 カラムのデータに、不正なスペースが入る場合を想定して、trim() しています。 よって、usableList の値にスペースは使用できません。 5.7.6.3 (2014/05/23) 以降は、keyBreakClm によるキーブレイクチェックも追加されました。 従来の usableKey,usableList とは、独立しているため、それぞれで有効になれば、 使用されると判断されます。- パラメータ:
row
- 行番号table
- DBTableModelオブジェクト- 戻り値:
- このフォームを使用するかどうか(true:使用する/false:使用しない)
- 関連項目:
- 変更履歴:
- 3.5.6.2 (2004/07/05) 判定評価用カラムの値を trim() します。, 5.7.6.3 (2014/05/23) キーブレイクをチェックする keyBreakClm 属性追加
-
setItdBody
itdフォーマット文字列を設定します。 itd ボディ部の文字列を指定します。 itd ボディは、繰り返し処理を行います。これを、上位のボディ文字列の中の HYBS_ITD_MARKER 文字列 と置き換えます。- パラメータ:
itd
- itdフォーマットの文字列- 変更履歴:
- 3.5.6.0 (2004/06/18) itdフォーマット文字列の取り込み
-
getItdBody
itdフォーマット文字列を取得します。 itd ボディ部の文字列を取得します。 itd ボディは、繰り返し処理を行います。これを、上位のボディ文字列の中の HYBS_ITD_MARKER 文字列 と置き換えます。- 戻り値:
- itdフォーマットの文字列
- 変更履歴:
- 3.5.6.0 (2004/06/18) itdフォーマット文字列の取り込み
-