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

# クラス TabLinkTag

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

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

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属性で指定可能であり、これに変数を定義することで、 画面リロード時も、開いていたタブを再度選択された状態で表示することが可能です。 7.4.1.0 (2021/04/23) openTab = false を指定すると、自動でオープンしません。 選択したタブ及び非選択のタブの枠線や、背景色等を変更する場合は、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" で指定します onClick 【HTML】JavaScriptのイベント onClick を設定します(初期値：:onClick="changeTab( this, 'selTab' );") 7.4.1.0 (2021/04/23) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 7.4.1.0 (2021/04/23) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 7.4.1.0 (2021/04/23) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) 7.4.1.0 (2021/04/23) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) 7.4.1.0 (2021/04/23) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) 7.4.1.0 (2021/04/23) 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>
導入されたバージョン:
  JDK1.4,

- ## フィールドの概要

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

  `BR, BUFFER_MIDDLE, CR`

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

  `bodyContent`

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

  `id, pageContext`

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

  `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

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

  `EVAL_BODY_AGAIN`

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

  `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

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

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

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `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`
  `setOnClick(String scrpt)`
  【HTML】JavaScriptのイベント onClick を設定します(初期値：:onClick="changeTab( this, 'selTab' );")。
  `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, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, 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`

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

  `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

  ### クラスから継承されたメソッド jakarta.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`

  ### インタフェースから継承されたメソッド jakarta.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` インタフェース内 `Tag`
    オーバーライド:
      `doStartTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示( EVAL_BODY_BUFFERED )
    変更履歴:
      7.4.1.0 (2021/04/23) caseKey,caseVal,caseNN,caseNull,caseIf 属性を追加

  - ### doAfterBody

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

  - ### doEndTag

    public int doEndTag()
    Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    定義:
      `doEndTag` インタフェース内 `Tag`
    オーバーライド:
      `doEndTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示
    変更履歴:
      4.3.5.0 (2008/02/01) 処理及び内部構造を大幅に見直し, 7.4.1.0 (2021/04/23) caseKey,caseVal,caseNN,caseNull,caseIf 属性を追加

  - ### release2

    protected void release2()
    タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
    オーバーライド:
      `release2` クラス内 `CommonTagSupport`
    変更履歴:
      7.4.1.0 (2021/04/23) タブをクリックした際のJavaScriptを外部から設定できるようにします。

  - ### 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(開く)」です。 7.4.1.0 (2021/04/23) openTab = false を指定すると、自動でオープンしません。

  - ### 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"(自動設定) です。

  - ### setOnClick

    public void setOnClick(String scrpt)
    【HTML】JavaScriptのイベント onClick を設定します(初期値：:onClick="changeTab( this, 'selTab' );")。
    パラメータ:
      `scrpt` - onClickイベント
    変更履歴:
      7.4.1.0 (2021/04/23) タブをクリックした際のJavaScriptを外部から設定できるようにします。
    説明:
      onClick をセットします。 初期値は、選択タブをクリックしたタブの色を新しく選択されたタブの色と入れ替えます。 ゼロ文字列を指定すると、onClick を何も指定しないことになります。 初期値：:onClick="changeTab( this, 'selTab' );"

  - ### toString

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