パッケージ org.opengion.hayabusa.taglib

## クラス TabLinkTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.TabLinkTag

- すべての実装されたインタフェース:
    `Serializable`, `javax.servlet.jsp.tagext.BodyTag`, `javax.servlet.jsp.tagext.IterationTag`, `javax.servlet.jsp.tagext.JspTag`, `javax.servlet.jsp.tagext.Tag`, `javax.servlet.jsp.tagext.TryCatchFinally`

      public class TabLinkTag
      extends CommonTagSupport

  タブ形式のリンクを表示するタグです。 このタグ形式の実態は、リンクのリストであるため、実の画面の表示はターゲットを指定して 別フレームで行う必要があります。 タブの指定方法については、listType属性の指定により、クエリ発行(DB)により動的に生成する パターンと、タグ指定(TAG)により、静的に生成するパターンがあります。 listType属性に何も指定されていない場合は、Body部分に記述された内容により、自動判定されます。 ("SELECT"で始まっている場合はDB、それ以外はTAGとして処理) ①listType属性が"DB"の場合 検索された各カラムは、その順番により次の意味を持ちます。 [第1カラム] タブの名前 : リンク時のキー情報、後述のopenTabName属性のキーとしても使用 ※必須 [第2カラム] タブの表示名称 : タブの表示名称 指定がない場合は、第1カラムが表示名称となります。 [第3カラム] タブのリンク先URL : タブのリンク先URL 指定がない場合は、href属性の値が適用されます。 [第4カラム] タブのクラス属性 : 個別のタブに付加されるクラス属性 指定がない場合は、unselClass属性の値が適用されます。 [第5カラム] タブのロールズ : タブのロールズを指定します。ユーザーロールズと一致しない指定した場合は、タブが表示されなくなります。 [第6カラム] タブの選択可否 : タブの選択可否を'true'or'false'で指定します。falseを指定した場合は、タブが表示されなくなります。 (ロールズで選択不可になっている場合は、この値は無視されます) 各カラムの値は[カラム名]=[値]の形で、リンク先のJSPに引数として渡されます。 また、リンク先のJSPについては、href属性で指定します。 ②listType属性が"TAG"の場合 tabListタグを記述し、個別にタブを定義します。 制御可能な項目は、①DBの場合と同等です。 タブの名前を定義するname属性は、tabListタグで必ず定義する必要があります。 lbl属性が指定されていない場合は、name属性のラベル名称を取得します。 タブのリンク先JSP及び、クラス属性については、tabListタグで指定がない場合、tabListタグの値が適用されます。 [共通設定] 初期設定では、第1番目の"有効な"タブが自動的に開かれます。(="true") 各タブの表示方法で、選択不可能なタブが存在している場合は、それらを読み飛ばした上で、"有効な"タブを 検索します。 また、自動で開くタブは、openTabName属性で指定可能であり、これに変数を定義することで、 画面リロード時も、開いていたタブを再度選択された状態で表示することが可能です。 選択したタブ及び非選択のタブの枠線や、背景色等を変更する場合は、custom.cssでクラスを定義し、 変更して下さい。 タブの表示方向(水平方向 or 垂直方向)については、orientation属性で変更することが可能です。 (初期値は、水平方向) 水平方向にした場合は、listCount属性により強制的に一定数のタブを表示する毎に、改行を挿入することができます。 このタグを使用する場合は、headタグで必ずuseTabLink="true"を指定してJavaScriptをロードして下さい。 各属性は、{@XXXX} 変数が使用できます。 これは、ServletRequest から、XXXX をキーに値を取り出し,この変数に割り当てます。 つまり、このXXXXをキーにリクエストすれば、この変数に値をセットすることができます。
  関連項目:
    直列化された形式
  機能分類
    画面表示
  形式サンプル:
    ●形式：<og:tabLink href="…" … /> ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義： <og:tabLink listType 【TAG】タブの一覧をどこから取得するかを指定します(初期値:AUTO) href 【TAG】リンク先のJSPを指定します(初期値:result.jsp) target 【TAG】リンクのターゲットを指定します(初期値:RESULT) openTab 【TAG】リンク表示にタブリンクを自動で開くかどうか[true/false]を指定します(初期値:true[=開く]) openTabName 【TAG】最初に開くタブリンクの名前を指定します constKeys 【TAG】次画面に渡す定数パラメーターのキーを指定します constVals 【TAG】次画面に渡す定数パラメーターの値を指定します listCount 【TAG】1行辺りに表示するタブの数を指定します(初期値:10) selClass 【TAG】選択タブのクラスを指定します(初期値:selTab) unselClass 【TAG】非選択タブのクラスを指定します(初期値:unselTab) orientation 【TAG】タブの方向、横型(Horizontal)か縦型(Vertical)を指定します(初期値:横型) width 【TAG】タブリンクの幅を % 、px 、または "auto" で指定します height 【TAG】タブの高さを、% 、px 、または "auto" で指定します debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:tabLink> ●使用例 ①DBからタブリストを取得する場合 Body部分に記述されたクエリよりタブ一覧を生成します。 <og:tabLink listType = "DB" タブの一覧をどこから取得するか href = "result.jsp" リンク先のJSP target = "RESULT" リンクターゲット openTab = "[true/false]" タブ表示後にタブを自動で開く openTabName = "{@PN} 自動で開くタブの名前 constKeys = "KEY1" 次画面に固定で渡すキー一覧 constVals = "{@VAL1}" 次画面に固定で渡す値一覧 listCount = "10" 1行辺りに表示するタブの数 selClass = "selTab" 選択タブのクラス unselClass = "unselTab" 非選択タブのクラス width = "100px" タブリンクの幅 height = "50px" タブリンクの高さ > select PN,HINM,'tabClass','query.jsp','ADMIN','false' from XX01 where PN = '{@PN}' order by PN </og:tabLink> ②tabListタグからタブリストを生成する場合 tabListタグよりタブ一覧を生成します。 <og:tabLink listType = "DB" タブの一覧をどこから取得するか href = "result.jsp" リンク先のJSP target = "RESULT" リンクターゲット openTab = "[true/false]" タブ表示後にタブを自動で開く openTabName = "{@PN} 自動で開くタブの名前 constKeys = "KEY1" 次画面に固定で渡すキー一覧 constVals = "{@VAL1}" 次画面に固定で渡す値一覧 listCount = "10" 1行辺りに表示するタブの数 selClass = "selTab" 選択タブのクラス unselClass = "unselTab" 非選択タブのクラス width = "100px" タブリンクの幅 height = "50px" タブリンクの高さ > <og:tabList name="TAB1" href="result1.jsp" keys="PN,CDK" vals="ABC,V" /> <og:tabList name="TAB2" href="result2.jsp" keys="PN,CDK" vals="BCD,W" /> <og:tabList name="TAB3" href="result3.jsp" keys="PN,CDK" vals="CDE,X" /> </og:tabLink>
  バージョン
    0.9.0 2008/09/26
  作成者
    Nakamura
  導入されたバージョン:
    JDK1.4,

- - ### フィールドの概要

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `TabLinkTag()` | デフォルトコンストラクター

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `protected void` | `addTag​(String hr, String name, String label, String clz, boolean visible, String[] keys, String[] vals)` | 子タグであるタブリストタグからタブ情報をセットします。
    `int` | `doAfterBody()` | Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
    `int` | `doEndTag()` | Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` | Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` | タグリブオブジェクトをリリースします。
    `void` | `setConstKeys​(String keys)` | 【TAG】次画面に渡す定数パラメーターのキーを指定します。
    `void` | `setConstVals​(String vals)` | 【TAG】次画面に渡す定数パラメーターの値を指定します。
    `void` | `setHeight​(String ht)` | 【TAG】タブの高さを、% 、px 、または "auto" で指定します(初期値:auto)。
    `void` | `setHref​(String hr)` | 【TAG】リンク先のJSPを指定します(初期値:result.jsp)。
    `void` | `setListCount​(String cnt)` | 【TAG】1行辺りに表示するタブの数を指定します(初期値:10)。
    `void` | `setListType​(String tp)` | 【TAG】タブの一覧をどこから取得するか[AUTO/DB/TAG]を指定します(初期値:AUTO)。
    `void` | `setOpenTab​(String flag)` | 【TAG】リンク表示にタブリンクを自動で開くかどうか[true/false]を指定します(初期値:true[=開く])。
    `void` | `setOpenTabName​(String name)` | 【TAG】最初に開くタブリンクの名前を指定します。
    `void` | `setOrientation​(String ori)` | 【TAG】タブの方向[Horizontal(or H):横型/Vertical(or V):縦型]を指定します(初期値:Horizontal:横型)。
    `void` | `setSelClass​(String cls)` | 【TAG】選択タブのクラスを指定します(初期値:selTab)。
    `void` | `setTarget​(String tgt)` | 【TAG】リンクのターゲットを指定します(初期値:RESULT)。
    `void` | `setUnselClass​(String cls)` | 【TAG】非選択タブのクラスを指定します(初期値:unselTab)。
    `void` | `setWidth​(String wh)` | 【TAG】タブリンクの幅を % 、px 、または "auto" で指定します(初期値:auto)。
    `String` | `toString()` | このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### コンストラクタの詳細

    - #### TabLinkTag

          public TabLinkTag()

      デフォルトコンストラクター
      変更履歴:
        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
        `doStartTag` インタフェース内 `javax.servlet.jsp.tagext.Tag`
      オーバーライド:
        `doStartTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示( EVAL_BODY_BUFFERED )

    - #### doAfterBody

          public int doAfterBody()

      Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
      定義:
        `doAfterBody` インタフェース内 `javax.servlet.jsp.tagext.IterationTag`
      オーバーライド:
        `doAfterBody` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示(SKIP_BODY)
      変更履歴:
        6.3.1.1 (2015/07/10) BodyString,BodyRawStringは、CommonTagSupport で、trim() します。

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `javax.servlet.jsp.tagext.Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:
        4.3.5.0 (2008/02/01) 処理及び内部構造を大幅に見直し

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`

    - #### addTag

          protected void addTag​(String hr,
                                String name,
                                String label,
                                String clz,
                                boolean visible,
                                String[] keys,
                                String[] vals)

      子タグであるタブリストタグからタブ情報をセットします。
      パラメータ:
        `hr` - 画面URL
        `name` - タブの名前
        `label` - タブの表示名称
        `clz` - 非選択状態のタブに付加するclass名
        `visible` - タブが選択可能 [true:可能/false:不可能]
        `keys` - リンク先のJSPに渡すキー一覧
        `vals` - リンク先のJSPに渡す値一覧

    - #### setListType

          public void setListType​(String tp)

      【TAG】タブの一覧をどこから取得するか[AUTO/DB/TAG]を指定します(初期値:AUTO)。
      パラメータ:
        `tp` - 取得方法 [AUTO/DB/TAG]
      変更履歴:
        6.4.3.4 (2016/03/11) CSV形式の文字連結を、stream 経由で行います。
      説明:
        タブの一覧をどこから取得するかを指定します。 現状の実装では、クエリを発行して一覧を生成する「DB」と、子タグである tabListタグを列挙してタブを定義する「TAG」が実装されています。 また、「AUTO」と指定した場合は、Body部分の内容に応じて自動的に判定されます。 初期値は、｢AUTO」です。

    - #### setHref

          public void setHref​(String hr)

      【TAG】リンク先のJSPを指定します(初期値:result.jsp)。
      パラメータ:
        `hr` - リンク先のJSP
      説明:
        リンク先のJSPを指定します。 このタブリンクは、あくまで「タブの形をしたリンク」なので、 target属性と合わせてセットする必要があります。 初期値は、｢result.jsp」です。

    - #### setTarget

          public void setTarget​(String tgt)

      【TAG】リンクのターゲットを指定します(初期値:RESULT)。
      パラメータ:
        `tgt` - リンクターゲット
      説明:
        リンクのターゲットを指定します。 このタブリンクは、あくまで「タブの形をしたリンク」なので、 target属性を設定し、別のフレームに実画面を表示するようにします。 初期値は、｢RESULT」です。

    - #### setOpenTab

          public void setOpenTab​(String flag)

      【TAG】リンク表示にタブリンクを自動で開くかどうか[true/false]を指定します(初期値:true[=開く])。
      パラメータ:
        `flag` - 自動タブオープン [true:自動で開く/false:開かない]
      説明:
        リンク表示にタブリンクを自動で開くかを指定します。 openTabName属性が指定されていない場合、自動で開くタブは 「1番目に表示されたタブリンク」です。 指定されている場合は、その名前を持つ「1番目」のタブが自動で開かれます。 タブが選択不可能な状態の場合は、「1番目」の条件から除外されます。 初期値は、「true(開く)」です。

    - #### setOpenTabName

          public void setOpenTabName​(String name)

      【TAG】最初に開くタブリンクの名前を指定します。
      パラメータ:
        `name` - 初期表示タブ名前
      説明:
        最初に開くタブリンクのキーを指定します。

    - #### setConstKeys

          public void setConstKeys​(String keys)

      【TAG】次画面に渡す定数パラメーターのキーを指定します。
      パラメータ:
        `keys` - 定数キー (CSV形式)
      関連項目:
        `setConstVals( String )`
      説明:
        次画面に渡す定数パラメーターのキーを指定します。 キーはCSV形式で複数指定が可能です。 パラメーターの値は、constVals属性の数と一致している必要があります。

    - #### setConstVals

          public void setConstVals​(String vals)

      【TAG】次画面に渡す定数パラメーターの値を指定します。
      パラメータ:
        `vals` - 定数値 (CSV形式)
      関連項目:
        `setConstKeys( String )`
      説明:
        次画面に渡す定数パラメーターの値を指定します。 値はCSV形式で複数指定が可能です。 パラメーターの値は、constKeys属性の数と一致している必要があります。

    - #### setListCount

          public void setListCount​(String cnt)

      【TAG】1行辺りに表示するタブの数を指定します(初期値:10)。
      パラメータ:
        `cnt` - 1行タブ数
      説明:
        1行辺りに表示するタブの数を指定します。 1行辺りのタブの数がこの設定を超えると、自動的に折り返します。 また、折り返し毎に、左に10pxのマージンを設けます。 初期値は、10です。 この属性は、orientationがHorizontal(水平方向)の場合のみ有効です。

    - #### setSelClass

          public void setSelClass​(String cls)

      【TAG】選択タブのクラスを指定します(初期値:selTab)。
      パラメータ:
        `cls` - 選択タブのクラス名
      説明:
        タブが選択されている状態にある場合の、タブ部分のクラス名を指定します。 このクラス名を変更する場合は、そのクラスをcustom/custom.css等で再定義して下さい。 初期値は、selTabです。

    - #### setUnselClass

          public void setUnselClass​(String cls)

      【TAG】非選択タブのクラスを指定します(初期値:unselTab)。
      パラメータ:
        `cls` - 選択タブのクラス名
      説明:
        タブが選択されていない状態にある場合の、タブ部分のクラス名を指定します。 このクラス名を変更する場合は、そのクラスをcustom/custom.css等で再定義して下さい。 初期値は、unselTabです。

    - #### setOrientation

          public void setOrientation​(String ori)

      【TAG】タブの方向[Horizontal(or H):横型/Vertical(or V):縦型]を指定します(初期値:Horizontal:横型)。
      パラメータ:
        `ori` - タブの方向 [Horizontal(or H):横型/Vertical(or V):縦型]
      説明:
        タブは、上にタブが並ぶ横型と左にタブが並ぶ縦型があります。 この属性では、横型は、Horizontal 、縦型は、Vertical を指定します。 指定は、文字列の最初の一文字を見ているだけですので、HかVでも構いません。 縦型(Vertical)にした場合、各タブ要素は、フレームサイズの幅に合わせて 最大で表示されます。幅を固定する場合は、width属性を指定して下さい。 初期値は、横型(Horizontal) です。

    - #### setWidth

          public void setWidth​(String wh)

      【TAG】タブリンクの幅を % 、px 、または "auto" で指定します(初期値:auto)。
      パラメータ:
        `wh` - 幅 (% 、px 、または "auto" )
      説明:
        初期値は、"auto"(自動設定) です。 autoの場合、横型表示では、文字の幅に合わせて自動的に調整され、 縦型表示の場合は、フレームサイズに合わせて拡大して表示されます。

    - #### setHeight

          public void setHeight​(String ht)

      【TAG】タブの高さを、% 、px 、または "auto" で指定します(初期値:auto)。
      パラメータ:
        `ht` - 高さ (% 、px 、または "auto" )
      説明:
        タブの高さを、% 、px 、または "auto" で指定します 初期値は、"auto"(自動設定) です。

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現
      このメソッドは、nullを返しません