    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.hayabusa.taglib;
    017
    018import org.opengion.fukurou.util.TagBuffer;
    019import org.opengion.fukurou.util.ToString;                                              // 6.1.1.0 (2015/01/17)
    020
    021import static org.opengion.fukurou.util.StringUtil.nval ;               // 6.1.0.0 (2014/12/26)
    022
    023/**
    024 * ガントチャートの繰り返しタグのフォーマットに使用します。
    025 *
    026 * iGanttBar タグは、TDタグの繰返し部に記述することで、個々のガントのタスクを作成します。
    027 * これを使用する場合は、iGant タグを全体に一つ指定する必要があります。
    028 *
    029 * @og.formSample
    030 * ●形式：&lt;og:iGanttBar  ... /&gt;
    031 * ●body：なし
    032 * ●前提：headタグで、adjustEvent="Gantt" を指定してください。
    033 *
    034 * ●Tag定義：
    035 *   &lt;og:iGanttBar
    036 *       type       ○ 【TAG】ガント要素のタイプ（0:マイルストーン 1:バー ）(必須)
    037 *       color         【TAG】バーの色（マイルストーンの場合は不要）
    038 *       colorNo       【TAG】バーの色番号で指定します
    039 *       src           【TAG】マイルストーンのアイコン画像(URIより設定)
    040 *       start         【TAG】開始日(YYYYMMDD)、または開始時間(YYYYMMDDHH24MM)
    041 *       end           【TAG】終了日(YYYYMMDD)、または終了時間(YYYYMMDDHH24MM)
    042 *       text          【TAG】ガント要素の注釈メッセージ。
    043 *       href          【TAG】入力した場合はガントにリンクを付加します。
    044 *       target        【TAG】hrefを指定した場合に付加されるリンクのターゲット
    045 *       barLink       【TAG】hrefで付加されるリンクの範囲にバー本体を含めるかどうか[true/false]を指定します(初期値:false)
    046 *       startDateInput【TAG】6.9.9.0 (2018/08/20) 開始日付の入力欄のｶﾗﾑ名を指定します。
    047 *       startTimeInput【TAG】6.9.9.0 (2018/08/20) 開始時刻の入力欄のｶﾗﾑ名を指定します。
    048 *       endDateInput  【TAG】6.9.9.0 (2018/08/20) 終了日付の入力欄のｶﾗﾑ名を指定します。
    049 *       endTimeInput  【TAG】6.9.9.0 (2018/08/20) 終了時刻の入力欄のｶﾗﾑ名を指定します。
    050 *       moveStep      【TAG】6.9.9.2 (2018/09/18) ガントバーの移動歩幅単位（moveStep 1:日、2:時間、3:分）
    051 *       fixed         【TAG】6.9.9.2 (2018/09/18) 固定2分割するｶﾗﾑを指定します。
    052 *       mStone        【TAG】6.9.9.2 (2018/09/18) マイルストーンｶﾗﾑを指定します。
    053 *       balloon       【TAG】6.9.9.2 (2018/09/18) バルーンとして表示するカラムを指定します。
    054 *       keyInfo       【TAG】6.9.9.2 (2018/09/18) キー情報のカラムを、指定します。
    055 *       writable      【TAG】6.9.9.2 (2018/09/18) writable属性のカラムを指定します。
    056 *       report        【TAG】6.9.9.2 (2018/09/18) レポートカラムを指定します。
    057 *       zindex        【TAG】6.9.9.2 (2018/09/18) 表示の重なり順のカラムを指定します。
    058 *       id            【TAG】要素を一意に指定する値を指定します。(ガント要素を動かす際に指定)
    059 *       cost          【TAG】開始日、終了日を利用して積上げられる工数を指定します。
    060 *       capacity      【TAG】積上げの最大値（キャパシティ）を指定します。
    061 *       debug         【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
    062 *   /&gt;
    063 *
    064 * 【廃止】6.9.9.0 (2018/08/20) 物理削除
    065 *   //  startInput    【廃止】(startDateInputと同じ)ガント要素の開始日に紐付く入力欄（開始日または終了日に紐付く入力欄が設定しなければガント要素は動かせない）
    066 *   //  endInput      【廃止】(endDateInputと同じ)ガント要素の終了日に紐付く入力欄（開始日または終了日に紐付く入力欄が設定しなければガント要素は動かせない）
    067 *   //  chbox         【廃止】6.9.9.2 (2018/09/18) 行選択のチェックボックス 設定値：[ROW.ID]
    068 *
    069 * ●使用例
    070 *   (通常ガント)
    071 *  &lt;og:view
    072 *      viewFormType = "HTMLCustomTable"
    073 *      command      = "{&#064;command}"
    074 *      writable     = "false"
    075 *      useScrollBar = "false"
    076 *  &gt;
    077 *    &lt;og:thead rowspan="2"&gt;
    078 *      &lt;tr&gt;
    079 *          &lt;td&gt;[NOORDER]&lt;/td&gt;
    080 *          &lt;td rowspan="2" class="gantt zoom{&#064;VZOOM}" style="line-height:normal;text-align:left;background-image: url('../image/ganttBG{&#064;VZOOM}.gif');" &gt;
    081 *              &lt;div style="position:relative;left:0px;z-index:101; " height="100%" width="100%" &gt;
    082 *                  &lt;og:ganttHeader
    083 *                      startDate       = "{&#064;startDate}"
    084 *                      endDate         = "{&#064;endDate}"
    085 *                      zoom            = "{&#064;VZOOM}"
    086 *                      daySpan         = "{&#064;daySpan}"
    087 *                  /&gt;
    088 *              &lt;/div&gt;
    089 *          &lt;/td&gt;
    090 *      &lt;/tr&gt;
    091 *    &lt;/og:thead&gt;
    092 *    &lt;og:tbody rowspan="2"&gt;
    093 *      &lt;tr&gt;
    094 *          &lt;td&gt;[NOORDER]&lt;/td&gt;
    095 *          &lt;td rowspan="2" class="gantt zoom{&#064;VZOOM}" style="text-align:left;background-image: url('../image/ganttBG{&#064;VZOOM}.gif');" &gt;
    096 *              &lt;og:iGanttBar type="1" colorNo="[COLOR]" start="[DYORDER]" end="[DYNOKI]" text="[PN]" /&gt;
    097 *              &lt;og:iGanttBar type="0" src="../image/dia_blue.gif" start="[DYORDER]"      text="開始" /&gt;
    098 *              &lt;og:iGanttBar type="0" src="../image/dia_red.gif"  end="[DYNOKI]"         text="終了" /&gt;
    099 *          &lt;/td&gt;
    100 *      &lt;/tr&gt;
    101 *    &lt;/og:tbody&gt;
    102 *  &lt;/og:view&gt;
    103 *
    104 *   &lt;og:iGantt
    105 *       margeRows      = "true"
    106 *       fixedCols      = "1"
    107 *   /&gt;
    108 *
    109 *   (積み上げガント)
    110 *  &lt;og:view
    111 *      viewFormType = "HTMLStackedGanttTable"
    112 *      command      = "{&#064;command}"
    113 *      writable     = "false"
    114 *      useScrollBar = "false"
    115 *      useParam     = "true"
    116 *      numberType   = "none"
    117 *  &gt;
    118 *  &lt;og:stackParam
    119 *      stackColumns = "NOORDER"
    120 *  /&gt;
    121 *
    122 *    &lt;og:thead rowspan="2"&gt;
    123 *      &lt;tr&gt;
    124 *          &lt;td&gt;[NOORDER]&lt;/td&gt;
    125 *          &lt;td&gt;[PN]&lt;/td&gt;
    126 *          &lt;td rowspan="2" class="gantt zoom{&#064;SZOOM}" style="text-align:left;background-image: url('../image/ganttBG{&#064;SZOOM}.gif');" &gt;
    127 *              &lt;div style="position:relative;left:0px;z-index:101; " height="100%" width="100%" &gt;
    128 *                  &lt;og:ganttHeader
    129 *                      startDate   = "{&#064;startDate}"
    130 *                      endDate     = "{&#064;endDate}"
    131 *                      zoom        = "{&#064;SZOOM}"
    132 *                      calDB       = "GE13"
    133 *                      arg1        = "A"
    134 *                  /&gt;
    135 *              &lt;/div&gt;
    136 *          &lt;/td&gt;
    137 *      &lt;/tr&gt;
    138 *    &lt;/og:thead&gt;
    139 *    &lt;og:tbody rowspan="2"&gt;
    140 *      &lt;tr&gt;
    141 *          &lt;td&gt;[NOORDER]&lt;/td&gt;
    142 *          &lt;td&gt;[PN]&lt;/td&gt;
    143 *          &lt;td rowspan="2" class="gantt zoom{&#064;VZOOM}" style="text-align:left;background-image: url('../image/ganttBG{&#064;VZOOM}.gif');" &gt;
    144 *              &lt;iGanttBar type="1" colorNo="[COLOR]" start="[DYORDER]" end="[DYNOKI]"  text="[COSTCLM]"
    145 *                    cost="[COSTCLM]" capacity="[CAPACITY]" /&gt;
    146 *              &lt;og:iGanttBar type="0" src="../image/dia_blue.gif" start="[DYORDER]"      text="開始" /&gt;
    147 *          &lt;/td&gt;
    148 *      &lt;/tr&gt;
    149 *    &lt;/og:tbody&gt;
    150 *  &lt;/og:view&gt;
    151 *
    152 *   &lt;og:iGantt
    153 *       margeRows      = "true"
    154 *       fixedCols      = "1"
    155 *       verticalShift  = "false"
    156 *       viewGantt      = "{&#064;viewGantt}"
    157 *       stackHoliday   = "{&#064;stackHoliday}"
    158 *       useBgColor     = "true"
    159 *       viewMode       = "2"
    160 *   /&gt;
    161 *
    162 * @og.rev 5.6.3.2 (2013/04/12) 新規作成
    163 * @og.group 画面部品
    164 *
    165 * @version  5.0
    166 * @author       Kazuhiko Hasegawa
    167 * @since    JDK6.0,
    168 */
    169public class ViewIGanttBarTag extends CommonTagSupport {
    170        /** このプログラムのVERSION文字列を設定します。   {@value} */
    171        private static final String VERSION = "6.9.9.2 (2018/09/18)" ;
    172        private static final long serialVersionUID = 699220180918L ;
    173
    174        private transient TagBuffer tag = new TagBuffer( "iGanttBar" ).addBody( "<!-- -->" );           // 6.1.1.0 (2015/01/17) TagBufferの連結記述
    175
    176        /**
    177         * デフォルトコンストラクター
    178         *
    179         * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
    180         */
    181        public ViewIGanttBarTag() { super(); }          // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。
    182
    183        /**
    184         * Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    185         *
    186         * @og.rev 6.0.2.5 (2014/10/31) HTML5対応。javaScriptで、BODYがないと入れ子になってしまう。
    187         *
    188         * @return      後続処理の指示
    189         */
    190        @Override
    191        public int doEndTag() {
    192                debugPrint();           // 4.0.0 (2005/02/28)
    193
    194                // 6.1.1.0 (2015/01/17) TagBufferの連結記述
    195                jspPrint( tag.makeTag() );
    196
    197                return EVAL_PAGE ;              // ページの残りを評価する。
    198        }
    199
    200        /**
    201         * タグリブオブジェクトをリリースします。
    202         * キャッシュされて再利用されるので、フィールドの初期設定を行います。
    203         *
    204         */
    205        @Override
    206        protected void release2() {
    207                super.release2();
    208                tag = new TagBuffer( "iGanttBar" ).addBody( "<!-- -->" );               // 6.1.1.0 (2015/01/17) TagBufferの連結記述
    209        }
    210
    211        /**
    212         * 【TAG】ガント要素のタイプ[0:ﾏｲﾙｽﾄｰﾝ/1:ﾊﾞｰ]を指定します。
    213         *
    214         * @og.tag
    215         * 0:マイルストーン を指定すると、その日（時間）に、マーカーがされます。
    216         * ガントのような期間ではなく、そのポイントを表すのに使用します。
    217         * 例えば、受注日、納期 などの設定値です。
    218         * start か end どちらかの指定で構いません。
    219         * start を使用した場合は、指定日（時間）の前方に、endを使用した場合は、
    220         * 指定日（時間）の後方にマーカーが置かれます。
    221         *
    222         * @param   type ガント要素のタイプ [0:ﾏｲﾙｽﾄｰﾝ/1:ﾊﾞｰ]
    223         */
    224        public void setType( final String type ) {
    225                tag.add( "type",nval( getRequestParameter( type ),null ) );
    226        }
    227
    228        /**
    229         * 【TAG】ガント要素（バー）の色コードを設定します。
    230         *
    231         * @og.tag
    232         * color は、ガント要素の色コードを設定します。
    233         * type="0:マイルストーン" の場合は不要です。
    234         * このコードは、予め決められた色画像を呼び出しますので、任意の色が使えるという事ではありません。
    235         * 色指定は、横棒の場合は、image/W_色コード.png の画像を使います。
    236         * 色コード と 色番号が同時に指定された場合は、色コード が優先されます。
    237         *
    238         * type=2:差分枠 は、value ＞ baseVal の場合は、超過を、value ＜ baseValの場合は、不足を表します。
    239         * <table class="plain">
    240         *   <caption>色番号 対応表</caption>
    241     *   <tr><th>色番号</th><th>設定値    </th><th>棒色   </th><th>　</th><th>横棒サンプル</th></tr>
    242     *   <tr><td> 0    </td><td>blue      </td><td>青     </td><td> </td><td style="background-image:url(../image/W_blue.png);">   　</td></tr>
    243     *   <tr><td> 1    </td><td>black     </td><td>黒     </td><td> </td><td style="background-image:url(../image/W_black.png);">  　</td></tr>
    244     *   <tr><td> 2    </td><td>brown     </td><td>茶     </td><td> </td><td style="background-image:url(../image/W_brown.png);">  　</td></tr>
    245     *   <tr><td> 3    </td><td>green     </td><td>緑     </td><td> </td><td style="background-image:url(../image/W_green.png);">  　</td></tr>
    246     *   <tr><td> 4    </td><td>lightblue </td><td>薄青   </td><td> </td><td style="background-image:url(../image/W_lightblue.png);"> 　</td></tr>
    247     *   <tr><td> 5    </td><td>lightgreen</td><td>薄緑   </td><td> </td><td style="background-image:url(../image/W_lightgreen.png);"> 　</td></tr>
    248     *   <tr><td> 6    </td><td>orange    </td><td>オレンジ</td><td> </td><td style="background-image:url(../image/W_orange.png);"> 　</td></tr>
    249     *   <tr><td> 7    </td><td>pink      </td><td>ピンク </td><td> </td><td style="background-image:url(../image/W_pink.png);">  　</td></tr>
    250     *   <tr><td> 8    </td><td>purple    </td><td>紫     </td><td> </td><td style="background-image:url(../image/W_purple.png);">  　</td></tr>
    251     *   <tr><td> 9    </td><td>red       </td><td>赤     </td><td> </td><td style="background-image:url(../image/W_red.png);">       　</td></tr>
    252     *   <tr><td> 10   </td><td>yellow    </td><td>黄     </td><td> </td><td style="background-image:url(../image/W_yellow.png);"> 　</td></tr>
    253     *   <tr><td> 11   </td><td>navy      </td><td>濃紺   </td><td> </td><td style="background-image:url(../image/W_navy.png);">  　</td></tr>
    254     *   <tr><td> 12   </td><td>teal      </td><td>青緑   </td><td> </td><td style="background-image:url(../image/W_teal.png);">  　</td></tr>
    255     *   <tr><td> 13   </td><td>gray      </td><td>灰     </td><td> </td><td style="background-image:url(../image/W_gray.png);">    　</td></tr>
    256     *   <tr><td> 14   </td><td>indigo    </td><td>藍     </td><td> </td><td style="background-image:url(../image/W_indigo.png);"> 　</td></tr>
    257     *   <tr><td> 15   </td><td>slategray </td><td>鉄色   </td><td> </td><td style="background-image:url(../image/W_slategray.png);"> 　</td></tr>
    258     *   <tr><td> 16   </td><td>chocorlate</td><td>チョコレート</td><td> </td><td style="background-image:url(../image/W_chocorlate.png);"> 　</td></tr>
    259     *   <tr><td> 17   </td><td>darkgreen </td><td>深緑   </td><td> </td><td style="background-image:url(../image/W_darkgreen.png);"> 　</td></tr>
    260     *   <tr><td> 18   </td><td>violet    </td><td>すみれ </td><td> </td><td style="background-image:url(../image/W_violet.png);"> 　</td></tr>
    261     *   <tr><td> 19   </td><td>darkslategray</td><td>深鉄色</td><td> </td><td style="background-image:url(../image/W_darkslategray.png);"> 　</td></tr>
    262     *   <tr><td> 20   </td><td>lime      </td><td>緑     </td><td> </td><td style="background-image:url(../image/W_lime.png);">    　</td></tr>
    263     *   <tr><td> 21   </td><td>aqua      </td><td>水色   </td><td> </td><td style="background-image:url(../image/W_aqua.png);">  　</td></tr>
    264     *   <tr><td> 22   </td><td>maroon    </td><td>ひわだいろ</td><td> </td><td style="background-image:url(../image/W_maroon.png);"> 　</td></tr>
    265     *   <tr><td> 23   </td><td>olive     </td><td>オリーブ</td><td> </td><td style="background-image:url(../image/W_olive.png);">  　</td></tr>
    266     *   <tr><td> 24   </td><td>silver    </td><td>銀     </td><td> </td><td style="background-image:url(../image/W_silver.png);"> 　</td></tr>
    267     *   <tr><td> 25   </td><td>fuchsia   </td><td>赤紫   </td><td> </td><td style="background-image:url(../image/W_fuchsia.png);"> 　</td></tr>
    268     *   <tr><td colspan="6"> </td></tr>
    269     *   <tr><td> BK   </td><td>black2    </td><td>黒     </td><td> </td><td style="background-image:url(../image/W_black2.png);"> 　</td></tr>
    270     *   <tr><td> WT   </td><td>white2    </td><td>白     </td><td> </td><td style="background-image:url(../image/W_white2.png);"> 　</td></tr>
    271     *   <tr><td> BL   </td><td>blue2     </td><td>青     </td><td> </td><td style="background-image:url(../image/W_blue2.png);">   　</td></tr>
    272     *   <tr><td> RD   </td><td>red2      </td><td>赤     </td><td> </td><td style="background-image:url(../image/W_red2.png);">   　</td></tr>
    273     *   <tr><td> YL   </td><td>yellow2   </td><td>黄     </td><td> </td><td style="background-image:url(../image/W_yellow2.png);"> 　</td></tr>
    274         * </table>
    275         *
    276         * @param   color バー色
    277         */
    278        public void setColor( final String color ) {
    279                tag.add( "color",nval( getRequestParameter( color ),null ) );
    280        }
    281
    282        /**
    283         * 【TAG】グラフ要素の色番号を設定します。
    284         *
    285         * @og.tag
    286         * 色番号は、色コードを直接指定するのではなく、番号で指定する場合に使用します。
    287         * 棒グラフ要素（type="1"(横棒),"6"(縦棒)）の色を設定します。
    288         * "1～25 , BK,WT,BL,RD,YL" の色番号で指定します。
    289         * 色番号は、与えた数字を内部色数で割り算した余を使用しますので、連番の場合でも
    290         * 繰返し使われます。特殊な色として、BK,WT,BL,RD,YLは、番号ではなく記号で指定できます。
    291         * 色コード と 色番号が同時に指定された場合は、色コード が優先されます。
    292         *
    293         * @param   clrNo 色番号 [1～25/BK/WT/BL/RD/YL]
    294         * @see         #setColor( String )
    295         */
    296        public void setColorNo( final String clrNo ) {
    297                tag.add( "colorNo",nval( getRequestParameter( clrNo ),null ) );
    298        }
    299
    300        /**
    301         * 【TAG】マイルストーンのアイコン画像(URIより設定)を設定します。
    302         *
    303         * @og.tag
    304         * type="0:マイルストーン" の場合、表示するアイコンイメージの所在を指定します。
    305         * 例："../image/xxx.png"
    306         *
    307         * @param   src アイコン画像
    308         */
    309        public void setSrc( final String src ) {
    310                tag.add( "src",nval( getRequestParameter( src ),null ) );
    311        }
    312
    313        /**
    314         * 【TAG】開始日(YYYYMMDD)、または開始時間(YYYYMMDDHH24MM)を設定します。
    315         *
    316         * @og.tag
    317         * type="1:バー" の場合は、バー表示の場合の書き始め（開始）を指定します。
    318         * この値は、バーでは、「含む」になります。
    319         * type="0:マイルストーン" の場合は、マイルストンを左端に表示します。
    320         *
    321         * @param   start 開始日or開始時間 (YYYYMMDD or YYYYMMDDHH24MM)
    322         * @see         #setType( String )
    323         * @see         #setEnd( String )
    324         */
    325        public void setStart( final String start ) {
    326                tag.add( "start",nval( getRequestParameter( start ),null ) );
    327        }
    328
    329        /**
    330         * 【TAG】終了日(YYYYMMDD)、または終了時間(YYYYMMDDHH24MM)を設定します。
    331         *
    332         * @og.tag
    333         * type="1:バー" の場合は、バー表示の場合の書き終わり（終了）を指定します。
    334         * この値は、日付か時刻かで「含む」/「含まない」が異なります。
    335         * 日付の場合は、この値を「含む」です。例えば、4/12 を指定した場合、4/12は含みます。
    336         * 時刻の場合は、「含まない」です。4/12 070000 を指定した場合は、午前7時は含まないので、
    337         * ６時５９分５９秒までのバーが引かれます。
    338         * type="0:マイルストーン" の場合は、マイルストンを右端に表示します。
    339         *
    340         * @param   end 終了日or終了時間 (YYYYMMDD or YYYYMMDDHH24MM)
    341         * @see         #setType( String )
    342         * @see         #setStart( String )
    343         */
    344        public void setEnd( final String end ) {
    345                tag.add( "end",nval( getRequestParameter( end ),null ) );
    346        }
    347
    348        /**
    349         * 【TAG】バー上に表示するテキストを指定します。
    350         *
    351         * @og.tag
    352         * バーの上に、値などの文字を重ねて表示できます。
    353         *
    354         * @param   text 表示テキスト
    355         */
    356        public void setText( final String text ) {
    357                tag.add( "text",nval( getRequestParameter( text ),null ) );
    358        }
    359
    360        /**
    361         * 【TAG】リンク作成時の値を設定します。
    362         *
    363         * 7.1.0.1 (2020/02/07)
    364         * 通常の iGanttBar タグを使う場合、viewタグの HTMLCustomTable で一覧表示します。
    365         * その際、hrefも繰り返しリンクを使用しますが、viewLinkタグのlinkタグを使用し、
    366         * hrefOnly="true" を設定することでurlEncode されたリンクを使用できます。
    367         * linkタグを使わず、hrefに直接URLを記述した場合、リンクはurlEncodeされません。
    368         *
    369         * @og.tag
    370         * バーの上の文字に対して、リンクを作成できます。
    371         *
    372         * @param   href リンク
    373         * @see         #setTarget( String )
    374         */
    375        public void setHref( final String href ) {
    376                tag.add( "href",nval( getRequestParameter( href ),null ) );
    377        }
    378
    379        /**
    380         * 【TAG】リンク作成時のターゲット名を指定します。
    381         *
    382         * @og.tag
    383         * バーの上の文字に対して、リンクを作成するときの、ターゲット名を指定できます。
    384         *
    385         * @param   target ターゲット
    386         * @see         #setHref( String )
    387         */
    388        public void setTarget( final String target ) {
    389                tag.add( "target",nval( getRequestParameter( target ),null ) );
    390        }
    391
    392        /**
    393         * 【TAG】hrefで付加されるリンクの範囲にバー本体を含めるかどうか[true/false]を指定します(初期値:false)。
    394         *
    395         * @og.tag
    396         * true を指定すると、hrefで付加されるリンクの範囲にバー本体を含めます。
    397         *
    398         * @param   barLink バー可否 [true:する/false:しない]
    399         * @see         #setHref( String )
    400         */
    401        public void setBarLink( final String barLink ) {
    402                tag.add( "barLink",nval( getRequestParameter( barLink ),null ) );
    403        }
    404
    405//      /**
    406//       * 【廃止】(startDateInputと同じ)ガント要素の開始日に紐付く入力欄を指定します。
    407//       *
    408//       * @og.tag
    409//       * この入力欄がないと、ガント要素は動かせません。
    410//       *
    411//       * @og.rev 5.9.14.1 (2016/11/11) startInputではなくstartDateInut
    412//       * @og.rev 6.9.9.0 (2018/08/20) startDateInput として、用意します。
    413//       *
    414//       * @param   startInput 開始日入力欄
    415//       * @see         #setStart( String )
    416//       */
    417//      public void setStartInput( final String startInput ) {
    418//              tag.add( "startDateInput",nval( getRequestParameter( startInput ),null ) );
    419//      }
    420
    421        /**
    422         * 【TAG】ガント要素の開始日に紐付く入力欄を指定します。
    423         *
    424         * @og.tag
    425         * この入力欄がないと、ガント要素は動かせません。
    426         *
    427         * @og.rev 5.9.14.1 (2016/11/11) startInputではなくstartDateInut
    428         * @og.rev 6.9.9.0 (2018/08/20) startDateInput として、用意します。
    429         *
    430         * @param   startDateInput 開始日入力欄
    431         * @see         #setStart( String )
    432         */
    433        public void setStartDateInput( final String startDateInput ) {
    434                tag.add( "startDateInput",nval( getRequestParameter( startDateInput ),null ) );
    435        }
    436
    437        /**
    438         * 【TAG】ガント要素の開始時刻に紐付く入力欄を指定します。
    439         *
    440         * @og.tag
    441         * ガント要素の開始時刻に紐付く入力欄を指定します。
    442         *
    443         * @og.rev 6.9.9.0 (2018/08/20) startTimeInput として、用意します。
    444         *
    445         * @param   startTimeInput 開始日入力欄
    446         * @see         #setStart( String )
    447         */
    448        public void setStartTimeInput( final String startTimeInput ) {
    449                tag.add( "startTimeInput",nval( getRequestParameter( startTimeInput ),null ) );
    450        }
    451
    452//      /**
    453//       * 【廃止】(endDateInputと同じ)ガント要素の終了日に紐付く入力欄を指定します。
    454//       *
    455//       * @og.tag
    456//       * この入力欄がないと、ガント要素は動かせません。
    457//       *
    458//       * @og.rev 5.9.14.1 (2016/11/11) endInputではなくendDateInut
    459//       * @og.rev 6.9.9.0 (2018/08/20) endDateInput として、用意します。
    460//       *
    461//       * @param   endInput 終了日入力欄
    462//       * @see         #setEnd( String )
    463//       */
    464//      public void setEndInput( final String endInput ) {
    465//              tag.add( "endDateInput",nval( getRequestParameter( endInput ),null ) );
    466//      }
    467
    468        /**
    469         * 【TAG】ガント要素の終了日に紐付く入力欄を指定します。
    470         *
    471         * @og.tag
    472         * この入力欄がないと、ガント要素は動かせません。
    473         *
    474         * @og.rev 5.9.14.1 (2016/11/11) endInputではなくendDateInut
    475         * @og.rev 6.9.9.0 (2018/08/20) endDateInput として、用意します。
    476         *
    477         * @param   endDateInput 終了日入力欄
    478         * @see         #setEnd( String )
    479         */
    480        public void setEndDateInput( final String endDateInput ) {
    481                tag.add( "endDateInput",nval( getRequestParameter( endDateInput ),null ) );
    482        }
    483
    484        /**
    485         * 【TAG】ガント要素の終了時刻に紐付く入力欄を指定します。
    486         *
    487         * @og.tag
    488         * ガント要素の終了時刻に紐付く入力欄を指定します。
    489         *
    490         * @og.rev 6.9.9.0 (2018/08/20) endTimeInput として、用意します。
    491         *
    492         * @param   endTimeInput 終了日入力欄
    493         * @see         #setEnd( String )
    494         */
    495        public void setEndTimeInput( final String endTimeInput ) {
    496                tag.add( "endTimeInput",nval( getRequestParameter( endTimeInput ),null ) );
    497        }
    498
    499        /**
    500         * 【TAG】ガントバーの移動歩幅単位（1:日、2:時間、3:分）を指定します。
    501         *
    502         * @og.tag
    503         * ガントバーの移動歩幅単位（1:日、2:時間、3:分）を指定します。
    504         *
    505         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    506         *
    507         * @param   moveStep ガントバーの移動歩幅単位（moveStep 1:日、2:時間、3:分）
    508         */
    509        public void setMoveStep( final String moveStep ) {
    510                tag.add( "moveStep",nval( getRequestParameter( moveStep ),null ) );
    511        }
    512
    513        /**
    514         * 【TAG】固定2分割するｶﾗﾑを指定します。
    515         *
    516         * @og.tag
    517         * 固定2分割するｶﾗﾑを指定します。
    518         *
    519         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    520         *
    521         * @param   fixed 固定2分割するｶﾗﾑ
    522         */
    523        public void setFixed( final String fixed ) {
    524                tag.add( "fixed",nval( getRequestParameter( fixed ),null ) );
    525        }
    526
    527        /**
    528         * 【TAG】マイルストーンカラムを指定します。
    529         *
    530         * @og.tag
    531         * マイルストーンカラムを指定します。
    532         *
    533         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    534         *
    535         * @param   mStone マイルストーンカラム
    536         */
    537        public void setMStone( final String mStone ) {
    538                tag.add( "mStone",nval( getRequestParameter( mStone ),null ) );
    539        }
    540
    541        /**
    542         * 【TAG】バルーンとして表示するカラムを指定します。
    543         *
    544         * @og.tag
    545         * バルーンとして表示するカラムを指定します。
    546         *
    547         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    548         *
    549         * @param   balloon バルーンとして表示するカラム
    550         */
    551        public void setBalloon( final String balloon ) {
    552                tag.add( "balloon",nval( getRequestParameter( balloon ),null ) );
    553        }
    554
    555        /**
    556         * 【TAG】キー情報のカラムを、指定します。
    557         *
    558         * @og.tag
    559         * キー情報のカラムを、指定します。
    560         *
    561         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    562         *
    563         * @param   keyInfo キー情報のカラム
    564         */
    565        public void setKeyInfo( final String keyInfo ) {
    566                tag.add( "keyInfo",nval( getRequestParameter( keyInfo ),null ) );
    567        }
    568
    569        /**
    570         * 【TAG】writable属性のカラムを指定します。
    571         *
    572         * @og.tag
    573         * writable属性のカラムを指定します。
    574         *
    575         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    576         *
    577         * @param   writable writable属性のカラム
    578         */
    579        public void setWritable( final String writable ) {
    580                tag.add( "writable",nval( getRequestParameter( writable ),null ) );
    581        }
    582
    583        /**
    584         * 【TAG】レポートカラムを指定します。
    585         *
    586         * @og.tag
    587         * レポートカラムを指定します。
    588         *
    589         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    590         *
    591         * @param   report レポートカラム
    592         */
    593        public void setReport( final String report ) {
    594                tag.add( "report",nval( getRequestParameter( report ),null ) );
    595        }
    596
    597        /**
    598         * 【TAG】表示の重なり順のカラムを指定します。
    599         *
    600         * @og.tag
    601         * 表示の重なり順のカラムを指定します。
    602         *
    603         * @og.rev 6.9.9.2 (2018/09/18) 新規追加。
    604         *
    605         * @param   zindex 表示の重なり順のカラム
    606         */
    607        public void setZindex( final String zindex ) {
    608                tag.add( "zindex",nval( getRequestParameter( zindex ),null ) );
    609        }
    610
    611//      /**
    612//       * 【TAG】行選択のチェックボックスを指定します。
    613//       *
    614//       * @og.tag
    615//       * 例えば、[ROW.ID] を指定する事で、選択行を指定する事ができます。
    616//       *
    617//       * @og.rev 6.9.9.2 (2018/09/18) 廃止
    618//       *
    619//       * @param   chboxid チェックボックス指定
    620//       */
    621//      public void setChbox( final String chbox ) {
    622//              tag.add( "chbox",nval( getRequestParameter( chbox ),null ) );
    623//      }
    624
    625        /**
    626         * 【TAG】積み上げガントの工数を指定します。
    627         *
    628         * @og.tag
    629         * 積み上げガントの工数を指定します。
    630         * 開始日、終了日を利用して積上げ計算されます。
    631         *
    632         * @param   cost 積み上げガントの工数
    633         */
    634        public void setCost( final String cost ) {
    635                tag.add( "cost",nval( getRequestParameter( cost ),null ) );
    636        }
    637
    638        /**
    639         * 【TAG】積上げの最大値（キャパシティ）を指定します。
    640         *
    641         * @og.tag
    642         * 最大値を超えた場合は、マーカーされます。
    643         *
    644         * @param   capacity 積み上げガントの工数
    645         */
    646        public void setCapacity( final String capacity ) {
    647                tag.add( "capacity",nval( getRequestParameter( capacity ),null ) );
    648        }
    649
    650        /**
    651         * 【TAG】要素を一意に指定するためのidを指定します。
    652         *
    653         * @og.tag
    654         * 要素を一意に指定するためのID体系を指定します。
    655         * 例えばA__[I]のように設定します。
    656         * ガント要素は動かす際には必要です。
    657         *
    658         * @og.rev 5.9.14.1 (2016/11/11)
    659         *
    660         * @param   id 一意になる文字列
    661         */
    662        @Override
    663        public void setId( final String id ) {
    664                tag.add( "id",nval( getRequestParameter( id ),null ) );
    665        }
    666
    667        /**
    668         * タグの名称を、返します。
    669         * 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
    670         *
    671         * @return  タグの名称
    672         * @og.rtnNotNull
    673         */
    674        @Override
    675        protected String getTagName() {
    676                return "iGanttBar" ;
    677        }
    678
    679        /**
    680         * このオブジェクトの文字列表現を返します。
    681         * 基本的にデバッグ目的に使用します。
    682         *
    683         * @return このクラスの文字列表現
    684         * @og.rtnNotNull
    685         */
    686        @Override
    687        public String toString() {
    688                return ToString.title( this.getClass().getName() )
    689                                .println( "VERSION"             ,VERSION        )
    690                                .println( "tag"                 ,tag.makeTag()  )
    691                                .println( "Other..."    ,getAttributes().getAttribute() )
    692                                .fixForm().toString() ;
    693        }
    694}