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 */ 016 package org.opengion.hayabusa.taglib; 017 018 import org.opengion.hayabusa.common.HybsSystemException; 019 import org.opengion.fukurou.util.StringUtil; 020 import org.opengion.fukurou.util.TagBuffer; 021 022 /** 023 * 明細棒グラフで、バー部のヘッ??に??捗率を示す線を表示します? 024 * 025 * iHead タグは、ガント? ヘッ??部に使用されます? 026 * 進捗率を示す線??本あり、デフォルトでは、中間点と?値になります? 027 * グラフ?右に、何かを表示する場合?、?width)を指定する?があります? 028 * 029 * @og.formSample 030 * ●形式?lt;og:iHead ... /> 031 * ●body?な? 032 * ●前提:headタグで、adjustEvent="Bar" を指定してください? 033 * 034 * ●Tag定義?? 035 * <og:iHead 036 * width 【TAG】グラフ部??横?[px]で?します? 037 * leftVal 【TAG】左線?ヘッ????を?します(?期??最大桁?半??? 038 * leftLoc 【TAG】左線?ヘッ??(及び線)?位置を左からの割合で?します? 039 * leftBorderStyle 【TAG】左線?スタイルを指定しま?初期値=dotted gray 1px)? 040 * adjustLeft 【TAG】左線?ヘッ?????上下位置をピクセル単位で?しま???数で下方?? 041 * rightVal 【TAG】右線?ヘッ????を?します(?期??最大?? 042 * rightLoc 【TAG】右線?ヘッ??(及び線)?位置を左からの割合で?します? 043 * rightBorderStyle 【TAG】右線?スタイルを指定しま?初期値=dotted gray 1px)? 044 * adjustRight 【TAG】右線?ヘッ?????上下位置をピクセル単位で?しま???数で下方?? 045 * debug 【TAG】デバッグ??を?力するかど?[true/false]を指定しま?初期値:false) 046 * /> 047 * 048 * ●使用? 049 * <og:view 050 * viewFormType = "HTMLCustomTable" 051 * command = "{@command}" 052 * writable = "false" 053 * useScrollBar = "false" 054 * headerSkipCount="10" 055 * > 056 * <og:thead rowspan="2"> 057 * <tr> 058 * <td rowspan="2">[NOORDER]</td> 059 * <td rowspan="2"> 060 * <og:iHead width="150px" 061 * leftVal ="now" leftLoc ="0.8" leftBorderStyle ="solid red 1px" adjustLeft ="15px" 062 * rightVal="Target" rightLoc="1.0" rightBorderStyle="dashed red 2px" adjustRight="-15px" 063 * /> 064 * <td rowspan="2">[SINTYOKU]</td> 065 * </tr> 066 * </og:thead> 067 * <og:tbody rowspan="2"> 068 * <td rowspan="2">[NOORDER]</td> 069 * <td rowspan="2"> 070 * <iBar id="B0_[I]" type="0" value="[SINTYOKU]" baseVal="[KNORDER]" /> 071 * <iBar id="B1_[I]" type="1" value="[KNORDER_G]" color="[COLOR]" text="[KNORDER]" /> 072 * <br/> 073 * <iBar id="B2_[I]" type="1" value="[KNJISK_G],[KNMIKM_G]" color="black,green" /> 074 * <iBar id="B3_[I]" type="2" value="[KNJISK_G],[KNMIKM_G]" baseVal="[KNORDER_G]" color="green" /> 075 * <td rowspan="2">[SINTYOKU]</td> 076 * </og:tbody> 077 * </og:view> 078 * 079 * @og.rev 5.6.3.2 (2013/04/12) 新規作? 080 * @og.group 画面部? 081 * 082 * @version 5.0 083 * @author Kazuhiko Hasegawa 084 * @since JDK6.0, 085 */ 086 public class ViewIHeadTag extends CommonTagSupport { 087 /** こ?プログラ??VERSION??を設定します? {@value} */ 088 private static final String VERSION = "5.6.3.2 (2013/04/12)" ; 089 090 private static final long serialVersionUID = 563220130412L ; 091 092 private TagBuffer tag = new TagBuffer( "iHead" ) ; 093 094 /** 095 * Taglibの終?グが見つかったときに処??doEndTag() ?オーバ?ライドします? 096 * 097 * @return 後続???? 098 */ 099 @Override 100 public int doEndTag() { 101 debugPrint(); // 4.0.0 (2005/02/28) 102 103 jspPrint( tag.makeTag() ); 104 105 return(EVAL_PAGE); // ペ?ジの残りを評価する? 106 } 107 108 /** 109 * タグリブオブジェクトをリリースします? 110 * キャ?ュされて再利用される?で、フィールド?初期設定を行います? 111 * 112 */ 113 @Override 114 protected void release2() { 115 super.release2(); 116 tag = new TagBuffer( "iHead" ); 117 } 118 119 /** 120 * 【TAG】グラフ部??横?[px]で?します? 121 * 122 * @og.tag 123 * ?しな??合?残りの横??てとなります? 124 * グラフ?右側に何かを表示した??合??する?があります? 125 * 単?px)は設定不要です?それ以外?単位?設定できません? 126 * 127 * @param width グラフ部??横? 128 */ 129 public void setWidth( final String width ) { 130 // JavaScript 側の都合で、px 単位?、削除します? 131 String tmpW = StringUtil.nval( getRequestParameter( width ),null ) ; 132 if( tmpW != null && tmpW.endsWith("px") ) { 133 tmpW = tmpW.substring( 0,tmpW.length()-2 ); 134 } 135 136 tag.add( "width",tmpW ); 137 } 138 139 /** 140 * 【TAG】左線?ヘッ????を?します(?期??最大桁?半??? 141 * 142 * @og.tag 143 * 左線?ヘッ??表示する?を?します? 144 * 左線?、中間データ、また???中経過を意味します?で、その様な単語にします? 145 * なにも指定しな??合?、右側が最大桁以下を?捨てした値となり?左側はそ?半?の値です? 146 * leftValに関しては?.4,0.4のように?の値をカンマ区?で書く事が可能です? 147 * 148 * @param leftVal 左線?ヘッ????? 149 */ 150 public void setLeftVal( final String leftVal ) { 151 tag.add( "leftVal",StringUtil.nval( getRequestParameter( leftVal ),null ) ); 152 } 153 154 /** 155 * 【TAG】左線?ヘッ??(及び線)?位置を左からの割?少数)で?します? 156 * 157 * @og.tag 158 * グラフ??体を1として、左からの割合で?します?(左?.3で右?.9など?? 159 * leftLocに関しては?.4,0.4のように?の値をカンマ区?で書く事が可能です? 160 * 161 * @param leftLoc 左線?ヘッ??(及び線)?位置の割?少数) 162 */ 163 public void setLeftLoc( final String leftLoc ) { 164 tag.add( "leftLoc",StringUtil.nval( getRequestParameter( leftLoc ),null ) ); 165 } 166 167 /** 168 * 【TAG】左線?スタイルを指定しま?初期値=dotted gray 1px)? 169 * 170 * @og.tag 171 * グラフに引かれる左線?スタイルを指定します? 172 * 初期値は、dotted gray 1px です? 173 * 174 * @param leftBorderStyle 左線?ヘッ??(及び線)?位置の割?少数) 175 */ 176 public void setLeftBorderStyle( final String leftBorderStyle ) { 177 tag.add( "leftBorderStyle",StringUtil.nval( getRequestParameter( leftBorderStyle ),null ) ); 178 } 179 180 /** 181 * 【TAG】左線?ヘッ?????上下位置をピクセル単位で?しま???数で下方?? 182 * 183 * @og.tag 184 * 左右の?が重なる可能性がある?合に利用します? 185 * 10と?すると?0マイナスされて?が上方向にずれます? 186 * ??数を指定すると、文字が下方向にずれます? 187 * 単?px)は設定不要です?それ以外?単位?設定できません? 188 * 189 * @param adjustLeft ??上下位置?? 190 */ 191 public void setAdjustLeft( final String adjustLeft ) { 192 // JavaScript 側の都合で、px 単位?、削除します? 193 String tmpA = StringUtil.nval( getRequestParameter( adjustLeft ),null ) ; 194 if( tmpA != null && tmpA.endsWith("px") ) { 195 tmpA = tmpA.substring( 0,tmpA.length()-2 ); 196 } 197 198 tag.add( "adjustLeft",tmpA ); 199 } 200 201 /** 202 * 【TAG】右線?ヘッ????を?します(?期??最大?? 203 * 204 * @og.tag 205 * 右線?ヘッ??表示する?を?します? 206 * 右線?、最終データ、また?、最大??タを意味します?で、その様な単語にします? 207 * なにも指定しな??合?、右側が最大桁以下を?捨てした値となり?左側はそ?半?の値です? 208 * 209 * @param rightVal 左線?ヘッ????? 210 */ 211 public void setRightVal( final String rightVal ) { 212 tag.add( "rightVal",StringUtil.nval( getRequestParameter( rightVal ),null ) ); 213 } 214 215 /** 216 * 【TAG】右線?ヘッ??(及び線)?位置を左からの割?少数)で?します? 217 * 218 * @og.tag 219 * グラフ??体を1として、左からの割合で?します?(左?.3で右?.9など?? 220 * 221 * @param rightLoc 右線?ヘッ??(及び線)?位置の割?少数) 222 */ 223 public void setRightLoc( final String rightLoc ) { 224 tag.add( "rightLoc",StringUtil.nval( getRequestParameter( rightLoc ),null ) ); 225 } 226 227 /** 228 * 【TAG】右線?スタイルを指定しま?初期値=dotted gray 1px)? 229 * 230 * @og.tag 231 * グラフに引かれる右線?スタイルを指定します? 232 * 初期値は、dotted gray 1px です? 233 * 234 * @param rightBorderStyle 左線?ヘッ??(及び線)?位置の割?少数) 235 */ 236 public void setRightBorderStyle( final String rightBorderStyle ) { 237 tag.add( "rightBorderStyle",StringUtil.nval( getRequestParameter( rightBorderStyle ),null ) ); 238 } 239 240 /** 241 * 【TAG】右線?ヘッ?????上下位置をピクセル単位で?しま???数で下方?? 242 * 243 * @og.tag 244 * 左右の?が重なる可能性がある?合に利用します? 245 * 10と?すると?0マイナスされて?が上方向にずれます? 246 * ??数を指定すると、文字が下方向にずれます? 247 * 単?px)は設定不要です?それ以外?単位?設定できません? 248 * 249 * @param adjustRight ??上下位置?? 250 */ 251 public void setAdjustRight( final String adjustRight ) { 252 // JavaScript 側の都合で、px 単位?、削除します? 253 String tmpA = StringUtil.nval( getRequestParameter( adjustRight ),null ) ; 254 if( tmpA != null && tmpA.endsWith("px") ) { 255 tmpA = tmpA.substring( 0,tmpA.length()-2 ); 256 } 257 258 tag.add( "adjustRight",tmpA ); 259 } 260 261 /** 262 * タグの名称を?返します? 263 * 自??身のクラス名より?自動的に取り出せな?め?こ?メソ?をオーバ?ライドします? 264 * 265 * @return タグの名称 266 */ 267 @Override 268 protected String getTagName() { 269 return "iHead" ; 270 } 271 272 /** 273 * こ?オブジェクト???表現を返します? 274 * 基本???目?使用します? 275 * 276 * @return こ?クラスの??表現 277 */ 278 @Override 279 public String toString() { 280 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 281 .println( "VERSION" ,VERSION ) 282 .println( "tag" ,tag.makeTag() ) 283 .println( "Other..." ,getAttributes().getAttribute() ) 284 .fixForm().toString() ; 285 } 286 }