クラス TableFormatter
- java.lang.Object
-
- org.opengion.hayabusa.html.TableFormatter
-
public class TableFormatter extends Object
[PN],[OYA] などの [] で指定されたカラムで表されたフォーマットデータに対して、 DBTableModelオブジェクトを適用して 各カラムに実データを割り当てるオブジェクトです。 特に、[XXXX]に対して、[#XXXX]、[$XXXX]、[$XXXX]などの特殊記号が使用できます。 特殊記号の解釈は、HTMLFormatTextField系とHTMLFormatTable系で異なりますので ご注意ください。- 変更履歴:
- 3.5.4.0 (2003/11/25) 新規追加
- 機能分類
- 画面表示
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static StringHYBS_ITD_MARKERフォーマットタイプの指定の特殊なマーク "h_itd_marker"
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 TableFormatter()デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 StringgetFormat()フォーマットを取得します。StringgetFormat(int no)フォーマット文字列を返します。FormatterTypegetFormatType()このフォーマットのタイプを返します。StringgetItdBody()itdフォーマット文字列を取得します。intgetLocation(int no)カラムのロケーション番号を返します。intgetLocationSize()ロケーション番号のサイズを返します。IntStreamgetLocationStream()カラムのロケーション番号をIntStreamで返します。StringgetRowspan()設定された rowspan を返します。StringgetSystemFormat(int row, int loc)システムフォーマット文字列を返します。StringgetTrTag()設定された フォーマットの trタグを返します。chargetType(int no)タイプ文字列を返します。booleanisNoClass()カラムのクラス名(X,S9 など)のセットを行うかどうか取得します。booleanisUse(int row, DBTableModel table)このフォーマットを使用するかどうかの問い合わせを返します。voidmakeFormat(DBTableModel table)DBTableModelを利用して、フォーマットデータを初期化します。voidsetFormat(String fmt)フォーマットをセットします。voidsetFormat(String fmt, boolean flag)フォーマットをセットします。voidsetFormatType(FormatterType ftype)テーブルフォーマットのタイプを指定します。voidsetItdBody(String itd)itdフォーマット文字列を設定します。voidsetKeyBreakClm(String kclm)ここで指定したカラムの値が、キーブレイクした場合、このタグを使用します。voidsetNoClass(String flag)カラムのクラス名(X,S9 など)のセットを行うかどうか指定します。protected voidsetNoDisplay(int no)指定のロケーション番号の値をクリアします。voidsetRowspan(String rowspan)テーブルの rowspan 属性をセットします。voidsetUsableKey(String key)フォーマットの使用可否を判断するキーとなるカラム名を指定します。voidsetUsableList(String list)フォーマットの使用可否を判断する文字列リストを指定します。
-
-
-
メソッドの詳細
-
setFormat
public void setFormat(String fmt, boolean flag)
フォーマットをセットします。 フォーマットに、<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
public void setFormat(String fmt)
フォーマットをセットします。 フォーマットに、<table>を含む場合、TextField扱いなので、フォーマット分割 しません。table を含まず、tr を含む場合は、1行分のデータとして扱う為、 trTag を求めます。 trTag と format との間に、行ヘッダーが入ります。 Tomcat6では、JSPのパース時に、tabやspaceはそのままパースされるため、</td>前 のスペース削除処理も行います。- パラメータ:
fmt- [カラム名] 形式のフォーマットデータ- 変更履歴:
- 5.5.0.3 (2012/03/13) 引数追加につき。
-
getFormat
public String getFormat()
フォーマットを取得します。- 戻り値:
- フォーマットデータ
- 変更履歴:
- 3.5.5.8 (2004/05/20) 新規追加, 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加
-
makeFormat
public void makeFormat(DBTableModel table)
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
public void setFormatType(FormatterType ftype)
テーブルフォーマットのタイプを指定します。 enum FormatterType で、指定します。- パラメータ:
ftype- フォーマットのタイプ- 変更履歴:
- 4.0.0.0 (2007/05/02) enum 定義に変更
-
getFormatType
public FormatterType getFormatType()
このフォーマットのタイプを返します。 このフォーマットのタイプを返します。- 戻り値:
- このフォーマットのタイプを返します。
- 変更履歴:
- 4.0.0.0 (2007/05/02) enum 定義に変更
-
setRowspan
public void setRowspan(String rowspan)
テーブルの rowspan 属性をセットします。 rowspan は、ヘッダー部のフォーマットの行数です。初期値は 2行 です。 設定は、"2" などの、数字部のみをセットします。- パラメータ:
rowspan- 属性
-
getRowspan
public String getRowspan()
設定された rowspan を返します。 これは、フォーマットの段組の数を取り出します。 文字列としては、rowspan="2" という形で取り出します。- 戻り値:
- フォーマット文字列
-
getLocationSize
public int 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
public int getLocation(int no)
カラムのロケーション番号を返します。 引数は、0 から、getLocationSize()-1 までの数で指定します。 指定の位置の、フォーマットのカラム名に対応するロケーション番号 を返します。- パラメータ:
no- フォーム位置番号- 戻り値:
- ロケーション番号
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getLocationStream
public IntStream getLocationStream()
カラムのロケーション番号をIntStreamで返します。 指定の位置の、フォーマットのカラム名に対応するロケーション番号のIntStreamです。- 戻り値:
- 内部のLocation配列を、IntStreamで返します。
- 変更履歴:
- 6.4.3.4 (2016/03/11) 内部のLocation配列を、IntStreamで返します。
-
setNoDisplay
protected void setNoDisplay(int no)
指定のロケーション番号の値をクリアします。 ただし、直前のフォーマットに、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
public String getFormat(int no)
フォーマット文字列を返します。 引数は、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
public String getSystemFormat(int row, int loc)
システムフォーマット文字列を返します。 システムフォーマット文字列は、[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
public char getType(int no)
タイプ文字列を返します。 タイプとは、[XXX] の記述で、[#XXX] は、XXXカラムのラベルを、[$XXX]は、XXXカラムの レンデラーを、[!XXX} は、値のみ取り出す指定を行います。 主に、TextField系のフォーマットとTable系では、意味合いが異なりますので、 ご注意ください。- パラメータ:
no- フォーム位置番号- 戻り値:
- タイプ文字列 '#':ラベルのみ '$':レンデラー '!':値のみ その他:通常
- 変更履歴:
- 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
getTrTag
public String getTrTag()
設定された フォーマットの trタグを返します。 これは、trタグにclass属性他の設定がされていた場合に、変換後の 文字列にも反映させる為に必要です。- 戻り値:
- フォーマットの trタグ
- 変更履歴:
- 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加
- このメソッドは、nullを返しません
-
setNoClass
public void setNoClass(String flag)
カラムのクラス名(X,S9 など)のセットを行うかどうか指定します。 "true" で、クラス属性を設定しません。これは、CSSファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。- パラメータ:
flag- クラス名使用の有無(true:使用しない/false:使用する。)
-
isNoClass
public boolean isNoClass()
カラムのクラス名(X,S9 など)のセットを行うかどうか取得します。 "true" で、クラス属性を設定しません。これは、CSSファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。- 戻り値:
- クラス名使用の有無(true:使用しない/false:使用する。)
-
setUsableKey
public void setUsableKey(String key)
フォーマットの使用可否を判断するキーとなるカラム名を指定します。 キーが、usableList に含まれる場合は、このフォームを使用できます。 キー(カラム名)が指定されない場合は、常に使用されます。 ※ 現時点では、BODYタイプのみ使用しています。- パラメータ:
key- フォーマットの使用可否を判断するカラム名
-
setUsableList
public void setUsableList(String list)
フォーマットの使用可否を判断する文字列リストを指定します。 キーが、この文字列リスト中に存在する場合は、このフォームを使用できます。 この文字列リストは、固定な文字列です。{@XXXX}は使用できますが、[XXXX]は 使用できません。 初期値は、"1" です。 ※ 現時点では、BODYタイプのみ使用しています。- パラメータ:
list- フォーマットの使用可否を判断する文字列リスト- 関連項目:
isUse( int,DBTableModel )
-
setKeyBreakClm
public void setKeyBreakClm(String kclm)
ここで指定したカラムの値が、キーブレイクした場合、このタグを使用します。 キーブレイクで 使用可否を指定する為の機能です。 この設定値は、usableKey,usableList とは、独立しているため、それぞれで 有効になれば、使用されると判断されます。 キーブレイク判定では、最初の1件目は、必ず使用されると判断されます。- パラメータ:
kclm- キーブレイクをチェックするカラムID- 変更履歴:
- 5.7.6.3 (2014/05/23) 新規追加
-
isUse
public boolean isUse(int row, DBTableModel table)このフォーマットを使用するかどうかの問い合わせを返します。 "true" で、使用します。setUsableKey( String ) で、指定された カラム名の値が、setUsableList( String ) で指定された文字列に含まれていれば、 使用します。カラム名がセットされない場合は、デフォルト値("true")が使用されます。 ※ 現時点では、BODYタイプのみ使用しています。 カラムのデータに、不正なスペースが入る場合を想定して、trim() しています。 よって、usableList の値にスペースは使用できません。 5.7.6.3 (2014/05/23) 以降は、keyBreakClm によるキーブレイクチェックも追加されました。 従来の usableKey,usableList とは、独立しているため、それぞれで有効になれば、 使用されると判断されます。- パラメータ:
row- 行番号table- DBTableModelオブジェクト- 戻り値:
- このフォームを使用するかどうか(true:使用する/false:使用しない)
- 関連項目:
setUsableKey( String ),setUsableList( String )- 変更履歴:
- 3.5.6.2 (2004/07/05) 判定評価用カラムの値を trim() します。, 5.7.6.3 (2014/05/23) キーブレイクをチェックする keyBreakClm 属性追加
-
setItdBody
public void setItdBody(String itd)
itdフォーマット文字列を設定します。 itd ボディ部の文字列を指定します。 itd ボディは、繰り返し処理を行います。これを、上位のボディ文字列の中の HYBS_ITD_MARKER 文字列 と置き換えます。- パラメータ:
itd- itdフォーマットの文字列- 変更履歴:
- 3.5.6.0 (2004/06/18) itdフォーマット文字列の取り込み
-
getItdBody
public String getItdBody()
itdフォーマット文字列を取得します。 itd ボディ部の文字列を取得します。 itd ボディは、繰り返し処理を行います。これを、上位のボディ文字列の中の HYBS_ITD_MARKER 文字列 と置き換えます。- 戻り値:
- itdフォーマットの文字列
- 変更履歴:
- 3.5.6.0 (2004/06/18) itdフォーマット文字列の取り込み
-
-