org.opengion.hayabusa.taglib

## クラス ViewTimeBarParamTag

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

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

      public class ViewTimeBarParamTag
      extends ViewParamImpl

       viewタグの viewFormType が ImageTimeBar の場合にパラメータを設定します。

       キー、日時、状況コードを持つ稼働状況の表示を行う、ViewForm_ImageTimeBar クラスに対して、
       各種パラメータを設定します。
       (パラメータを使用するには、viewタグのuseParam 属性をtrueに設定する必要があります。)

       SELECT文は、キー、日時、状況コードが、必須項目で、カラムの並び順は、完全に固定です。
       よって、カラム位置を指定する必要はありませんが、SELECT文を自由に設定することも
       出来ませんので、ご注意ください。
       この固定化に伴い、WRITABLE 指定も使用できません。（そもそも書き込み不可です）
       それ以降のカラムについては、内部処理としては、使用していません。
       ただし、パラメータで、カラー色指定、ラベル表記部、イメージ重ね合わせ、
       ポップアップ表記、リンク表記に使えます。

       データの並び順(ORDER BY)も、キー、日時順にしてください。
       データは、キー単位に１レコード作成されます。（キーブレイク）その間、日時順に
       データを処理します。

       データの表示は、今のレコードの日時から、次のレコードの日時までを一つの状態と
       して表します。今のレコードを表示するには、次のレコードが必要になります。
       画面表示は、表示開始日時(minStartTime) から 表示期間(timeSpan)分を表示します。
       通常、開始時刻は、表示開始時刻より前より始まり、次のレコードで、終了時刻が決定
       されます。最後のデータは、期間満了まで続いていると仮定されます。
       データが存在しないのであれば、「存在しないデータ」を作成してください。

       ImageTimeBar では、キーでまとめた値について、各状況コードをカラー化し、積み上げ
       帯グラフ形式でPNG画像化します。
       この画像を、読み込む HTML を出力することで、画面上に、積み上げ帯グラフを表示します。
       状況コードに対応する色は、標準では自動作成ですが、外部から色文字列を与えることで
       自由に指定する事も可能です。

       ポップアップ表記(tipsClm)、リンク表記(linkClm)は、この画像に対するエリア指定タグを出力する事で実現します。
       画像ファイルは、全データに対して、１画像だけなので、サイズは大きくなりますが、１レコード
       単位に画像を作成しないため、レスポンスは向上します。
       それぞれ、viewMarker , viewLink を利用することが可能です。特に、リンク表記(linkClm) については、
       linkタグの hrefTarget 属性を true に設定することで適用できます。

       画像ファイルは、java.io.File.createTempFile( File ) で作成するため、JavaVM(=Tomcat)が
       正常終了するときに、削除されます。異常終了時には残りますが、temp フォルダを定期的に
       整理すれば、それほど大量のファイルが残ることはないと思われます。

       データは、イベント発生時に作成されると仮定しています。つまり、書き込まれた日時から、
       状況コードに対応する状況が発生し、次の状況違いのレコードまで継続していると考えます。
       よって、データを途中で切り出す場合、切り出す範囲の前の状態が必要になります。
       一番最初の状態は、"不明" として扱います。（空欄＝白色）

  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:timeBarParam startDate="･･･" timeSpan="･･･" ･･･ />
         ●body：なし

         ●Tag定義：
           <og:timeBarParam
               startDate     ○【TAG】タイムテーブルの表示開始日時をセットします(必須)。
               timeSpan      ○【TAG】タイムテーブルの表示期間を時間で指定します(必須)。
               labelClms       【TAG】一覧表のラベル表示部に表示するカラムをCSV形式で指定します(初期値:キーのRenderer値)。
               colorClm        【TAG】レコードに付ける色を色文字列で指定する場合のカラム名を指定します(初期値:指定しない)。
               tipsClm         【TAG】レコード単位に、マウスオーバー時のTips表示を行うカラムを指定します(初期値:指定しない)。
               linkClm         【TAG】レコード単位に、クリッカブルリンクを設定するカラムを指定します(初期値:指定しない)。
               useLegend       【TAG】カラーの凡例を使用するかどうか[true/false]を指定します(初期値:true)。
               maxLabelWidth   【TAG】ラベル表記部の最大サイズをpxで指定します(初期値:null)。
               maxTimeWidth    【TAG】タイム表記部の最大サイズをpxで指定をpxで指定します(初期値:600)。
               chartHeight     【TAG】１行のタイムチャートの幅をpxで指定します(初期値:20)。
               headerHeight    【TAG】チャートの凡例、ヘッダー部の高さ(指定されない場合は、チャートの間隔:chartHeight)(初期値:20)。
               padding         【TAG】イメージ作成の 全体テーブルの隙間（パディング）をpxで指定します(初期値:5)。
               margin          【TAG】１レコードの文字やタイムチャートのマージンをpxで指定します(初期値:3)。
               useLastData     【TAG】行の最後の情報が、継続しているとして使うかどうか[true/false]を指定(初期値:true)。
               headerUpFmt     【TAG】一覧表のヘッダー部分上段の日付フォーマット(初期値：未指定) 7.1.0.0 (2020/01/20)
               headerDwFmt     【TAG】一覧表のヘッダー部分下段の日付フォーマット(初期値：未指定) 7.1.0.0 (2020/01/20)
               debug           【TAG】内部情報を出力します(初期値:false)。
           />

         ●使用例
             ViewFormTag の viewFormType が、ImageTimeBar の場合に使用します。
             useParam 属性を設定しておかないと、使用されません。
             <og:view
                 viewFormType = "ImageTimeBar"
                 command      = "{@command}"
                 useParam     = "true"
             >
                 <og:timeBarParam
                     startDate   = "{@DYFROM}"
                     timeSpan    = "24"
                 />
             </og:view >

  機能分類
    画面表示
  変更履歴:
    5.5.5.6 (2012/08/31) 新規追加
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド 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`

  - ### コンストラクタのサマリー

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

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected java.lang.String` | `getTagName()` タグの名称を、返します。
    `void` | `setChartHeight(java.lang.String chartHeight)` 【TAG】１行のタイムチャートの幅をpxで指定します(初期値:)。
    `void` | `setColorClm(java.lang.String colorClm)` 【TAG】レコードに付ける色を色文字列で指定する場合のカラム名を指定します(初期値:指定しない)。
    `void` | `setHeaderDwFmt(java.lang.String fmt)` 【TAG】一覧表のヘッダー部分下段の日付フォーマットを指定します(初期値:未指定)。
    `void` | `setHeaderHeight(java.lang.String headerHeight)` 【TAG】チャートの凡例、ヘッダー部の高さをpxで指定します(初期値:)。
    `void` | `setHeaderUpFmt(java.lang.String fmt)` 【TAG】一覧表のヘッダー部分上段の日付フォーマットを指定します(初期値:未指定)。
    `void` | `setLabelClms(java.lang.String labelClms)` 【TAG】一覧表のラベル表示部に表示するカラムをCSV形式で指定します(初期値:キーのRenderer値)。
    `void` | `setLinkClm(java.lang.String linkClm)` 【TAG】レコード単位に、クリッカブルリンクを設定するカラムを指定します(初期値:指定しない)。
    `void` | `setMargin(java.lang.String margin)` 【TAG】１レコードの文字やタイムチャートのマージンをpxで指定します(初期値:)。
    `void` | `setMaxLabelWidth(java.lang.String maxLblWidth)` 【TAG】ラベル表記部の最大サイズをpxで指定します(初期値:)。
    `void` | `setMaxTimeWidth(java.lang.String maxTmWidth)` 【TAG】タイム表記部の最大サイズをpxで指定をpxで指定します(初期値:)。
    `void` | `setPadding(java.lang.String padding)` 【TAG】イメージ作成のパディング (全体テーブルの隙間)をpxで指定します(初期値:)。
    `void` | `setStartDate(java.lang.String startDate)` 【TAG】タイムテーブルの表示開始日時をセットします(初期値:データの最小日時)。
    `void` | `setTimeSpan(java.lang.String timeSpan)` 【TAG】タイムテーブルの表示期間を時間で指定します(初期値:)。
    `void` | `setTipsClm(java.lang.String tipsClm)` 【TAG】レコード単位に、マウスオーバー時のTips表示を行うカラムを指定します(初期値:指定しない)。
    `void` | `setUseLastData(java.lang.String useLastData)` 【TAG】行の最後の情報が、継続しているとして使うかどうか[true/false]を指定します(初期値:)。
    `void` | `setUseLegend(java.lang.String useLegend)` 【TAG】カラーの凡例を使用可否[true:する/false:しない]を指定します(初期値:)。

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

      `doEndTag, initParam, putParam, release2, toString`

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

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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`

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

    - #### ViewTimeBarParamTag

          public ViewTimeBarParamTag()

      デフォルトコンストラクター
      変更履歴:
        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`
      戻り値:
        後続処理の指示

    - #### setStartDate

          public void setStartDate(java.lang.String startDate)

      【TAG】タイムテーブルの表示開始日時をセットします(初期値:データの最小日時)。
      パラメータ:
        `startDate` - 表示開始日時
      説明:
        表示開始日時を起点として、タイムテーブルを表示します。 実際に画面に表示されるのは、開始時刻から終了時刻の範囲内だけですが、 起点は、この日時になります。 指定方法として、フォーマットされた日付、時刻情報も設定可能です。（内部的に処理します） また、処理後(例：20120824102823）１４ケタ以上の場合は、１４ケタにカットします。 ８ケタ以上の場合は、時刻 000000 を追加します。 それ以下の場合は、設定エラーとして、HybsSystemException を throw します。 表示開始日時が指定されない場合は、データの最小時刻を利用して表示します。 初期値は、データの最小日時 です。
      変更履歴:
        6.9.7.0 (2018/05/14) 14桁 丁度のときに、エラーになるので、修正します。

    - #### setTimeSpan

          public void setTimeSpan(java.lang.String timeSpan)

      【TAG】タイムテーブルの表示期間を時間で指定します(初期値:)。
      パラメータ:
        `timeSpan` - 表示期間(時)
      説明:
        表示開始日時から、どれだけの時間範囲を表示対象とするかを指定します。 指定する単位は、時間です。 小数点は指定できません。また、１０日なら、"240" 、１か月（３０日）なら、"720" １年（３６５日）なら、"8760" を指定します。 実際に画面に表示されるのは、開始時刻から終了時刻の範囲内だけです。 初期値は、"" です。

    - #### setLabelClms

          public void setLabelClms(java.lang.String labelClms)

      【TAG】一覧表のラベル表示部に表示するカラムをCSV形式で指定します(初期値:キーのRenderer値)。
      パラメータ:
        `labelClms` - ラベルカラム (CSV形式)
      説明:
        ラベル表示部に表示するカラムをCSV形式で指定します。 指定されたカラムの値の、Renderer値を画面上に表示します。 ラベル表記部の最大サイズ（maxLblWidth）を指定しない場合は、ここで指定されたカラムの 値のそれぞれの最大長を加算した値が、ラベル表記部の最大サイズ（maxLblWidth）になります。 初期値は、キーのRenderer値 です。

    - #### setColorClm

          public void setColorClm(java.lang.String colorClm)

      【TAG】レコードに付ける色を色文字列で指定する場合のカラム名を指定します(初期値:指定しない)。
      パラメータ:
        `colorClm` - 色指定カラム名
      説明:
        レコード単位に、色を付ける場合、指定の色を付けたい場合に、外部から色文字列を与えることが可能です。 色文字列は、java.awt.Color の フィールド定義されているコードと同じ文字列です。 また、#XXXXXX 形式の １６進文字列を与えることで、任意の色を指定可能です。 ※ 6.7.5.0 (2017/03/10) で、値の取得を、getValue から、getValueLabel に変更したため、 リソース変換が使用できます。columnEditor等で、renderer="DBMENU" が使用可能です。
      変更履歴:
        6.7.5.0 (2017/03/10) COLOR_CLM の値を、getValueLabel で取得するように変更。 初期値は、"指定しない" です。

    - #### setTipsClm

          public void setTipsClm(java.lang.String tipsClm)

      【TAG】レコード単位に、マウスオーバー時のTips表示を行うカラムを指定します(初期値:指定しない)。
      パラメータ:
        `tipsClm` - Tips表示カラム名
      説明:
        レコード単位に、画像にマウスオーバー時のツールチップ表示のためのデータを作成します。 HTMLのareaタグの alt 属性を出力します。 通常は、複数の文字列を使用しますので、viewMarker タグ等で整形してください。 何も指定しない場合は、リンクがなければ、なにも出力しません。 初期値は、"指定しない" です。

    - #### setLinkClm

          public void setLinkClm(java.lang.String linkClm)

      【TAG】レコード単位に、クリッカブルリンクを設定するカラムを指定します(初期値:指定しない)。
      パラメータ:
        `linkClm` - リンク設定カラム名
      説明:
        レコード単位に、画像にクリッカブルリンクを設定するためのデータを作成します。 HTMLのareaタグ の href 属性を出力します。 通常は、viewLink タグ等でリンクを作成してください。 何も指定しない場合は、Tipsがなければ、なにも出力しません。 初期値は、"指定しない" です。

    - #### setUseLegend

          public void setUseLegend(java.lang.String useLegend)

      【TAG】カラーの凡例を使用可否[true:する/false:しない]を指定します(初期値:)。
      パラメータ:
        `useLegend` - 凡例使用可否 [true:する/false:しない]
      説明:
        状況コード、または、色文字列等でグラフ作成した場合の色に対する凡例を使用するかどうかを指定します。 凡例の表示位置は、グラフの上側で、１レコード分出力します。 初期値は、"" です。

    - #### setMaxLabelWidth

          public void setMaxLabelWidth(java.lang.String maxLblWidth)

      【TAG】ラベル表記部の最大サイズをpxで指定します(初期値:)。
      パラメータ:
        `maxLblWidth` - ラベル最大幅 (px)
      説明:
        画像の１行は、ラベル表記部と、タイムチャート部に分かれます。 その、ラベル表記部の最大サイズを指定します。 何も指定しなければ、可変長サイズ（ラベルの大きさに合わせた値）になります。 単位は px です。（pxは記述不要です） 初期値は、"" です。

    - #### setMaxTimeWidth

          public void setMaxTimeWidth(java.lang.String maxTmWidth)

      【TAG】タイム表記部の最大サイズをpxで指定をpxで指定します(初期値:)。
      パラメータ:
        `maxTmWidth` - タイム最大幅(px)
      説明:
        画像の１行は、ラベル表記部と、タイムチャート部に分かれます。 そのタイムチャート部の最大サイズを指定します。 この幅は、ここで指定した幅に固定されるため、時間範囲が多ければ、１時間当たりの表示幅が 小さくなります。 たとえば、8H～20H=12H を 600px で表示すれば、１時間=５０px になりますし、24H 表示ならば、 半分の ２５px 、6H ならば、倍の 100px が、１時間の表示幅になります。 単位は px です。（pxは記述不要です） 初期値は、"" です。

    - #### setChartHeight

          public void setChartHeight(java.lang.String chartHeight)

      【TAG】１行のタイムチャートの幅をpxで指定します(初期値:)。
      パラメータ:
        `chartHeight` - タイムチャートの幅
      説明:
        画像の１行の間隔は、上下のRECODE_MARGIN と、このチャート本体の幅になります（CHART_HEIGHT＋RECODE_MARGIN＊２）。 ここでは、チャート本体の幅を指定します。 単位は px です。（pxは記述不要です） 初期値は、"" です。

    - #### setHeaderHeight

          public void setHeaderHeight(java.lang.String headerHeight)

      【TAG】チャートの凡例、ヘッダー部の高さをpxで指定します(初期値:)。
      パラメータ:
        `headerHeight` - タイムチャートの幅
      説明:
        画像の１行の間隔は、上下のRECODE_MARGIN と、このチャート本体の幅になります（CHART_HEIGHT＋RECODE_MARGIN＊２）。 ここでは、チャートの凡例、ヘッダー部の高さを指定します。 指定しない場合の初期値は、chartHeight の値を使用します。 単位は px です。（pxは記述不要です） 初期値は、"" です。
      変更履歴:
        6.4.7.0 (2016/06/03) 新規追加

    - #### setPadding

          public void setPadding(java.lang.String padding)

      【TAG】イメージ作成のパディング (全体テーブルの隙間)をpxで指定します(初期値:)。
      パラメータ:
        `padding` - パディング (全体テーブルの隙間)
      説明:
        イメージは、データの全行を含んだ１枚の画像ファイルになります。 画像ファイル自体の大きさと、書き込まれた画像の大きさは異なります。 この、padding は、画像の周りに、余白として指定するサイズをpx単位で指定します。 ここでは、上下左右に、均等にとります。 単位は px です。（pxは記述不要です） 初期値は、"" です。

    - #### setMargin

          public void setMargin(java.lang.String margin)

      【TAG】１レコードの文字やタイムチャートのマージンをpxで指定します(初期値:)。
      パラメータ:
        `margin` - マージン(px)
      説明:
        イメージは、１レコードづつ書き込まれますが、そのレコードの幅は、chartHeight で指定された タイムチャートの幅＋マージン＊２ になります。 同様に、ラベル表記部の文字の書き出し位置も、この、マージンが適用されます。 （文字の場合は、上下左右に適用され、チャート部は、上下のみ適用されます。） 単位は px です。（pxは記述不要です） 初期値は、"" です。

    - #### setUseLastData

          public void setUseLastData(java.lang.String useLastData)

      【TAG】行の最後の情報が、継続しているとして使うかどうか[true/false]を指定します(初期値:)。
      パラメータ:
        `useLastData` - 継続使用可否 [true:する/false:しない]
      説明:
        データは、開始時刻を与えられ、次のデータの開始時刻が前のデータの終了時刻として 処理しています。行の最後のデータは、表示範囲いっぱいまで、続いていると認識する場合は、 この値を true とします。つまり、最後のデータは利用されます。 最後のデータがそこで処理を停止したイベントの場合、そのデータは使われません。 その場合は、false に設定します。イベント色としては、"不明"（空欄＝白色） として扱います。 初期値は、"" です。
      変更履歴:
        5.6.1.1 (2013/02/08) 新規追加, 7.1.0.0 (2020/01/20) putPxParamは間違い

    - #### setHeaderUpFmt

          public void setHeaderUpFmt(java.lang.String fmt)

      【TAG】一覧表のヘッダー部分上段の日付フォーマットを指定します(初期値:未指定)。
      パラメータ:
        `fmt` - 上段日付フォーマット
      説明:
        ヘッダー部分の日付は、上段下段に分かれています。 ここでは、上段部分に表示される日付フォーマットを指定します。 未指定の場合は、STEPが日単位より大きい場合は、"M月" 小さい場合は "M/d(EE)" になります。
      変更履歴:
        7.1.0.0 (2020/01/20) ヘッダー部分の日付フォーマット指定の追加

    - #### setHeaderDwFmt

          public void setHeaderDwFmt(java.lang.String fmt)

      【TAG】一覧表のヘッダー部分下段の日付フォーマットを指定します(初期値:未指定)。
      パラメータ:
        `fmt` - 下段日付フォーマット
      説明:
        ヘッダー部分の日付は、上段下段に分かれています。 ここでは、下段部分に表示される日付フォーマットを指定します。 未指定の場合は、STEPが日単位より大きい場合は、"dEE" 小さい場合は "H:mm" になります。
      変更履歴:
        7.1.0.0 (2020/01/20) ヘッダー部分の日付フォーマット指定の追加

    - #### getTagName

          protected java.lang.String getTagName()

      タグの名称を、返します。 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
      オーバーライド:
        `getTagName` クラス内 `CommonTagSupport`
      戻り値:
        タグの名称
      関連項目:
        `CommonTagSupport.getDocumentLink()`
      このメソッドは、nullを返しません

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.