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 * 147 * @param leftVal 左線?ヘッ????? 148 */ 149 public void setLeftVal( final String leftVal ) { 150 tag.add( "leftVal",StringUtil.nval( getRequestParameter( leftVal ),null ) ); 151 } 152 153 /** 154 * 【TAG】左線?ヘッ??(及び線)?位置を左からの割?少数)で?します? 155 * 156 * @og.tag 157 * グラフ??体を1として、左からの割合で?します?(左?.3で右?.9など?? 158 * 159 * @param leftLoc 左線?ヘッ??(及び線)?位置の割?少数) 160 */ 161 public void setLeftLoc( final String leftLoc ) { 162 tag.add( "leftLoc",StringUtil.nval( getRequestParameter( leftLoc ),null ) ); 163 } 164 165 /** 166 * 【TAG】左線?スタイルを指定しま?初期値=dotted gray 1px)? 167 * 168 * @og.tag 169 * グラフに引かれる左線?スタイルを指定します? 170 * 初期値は、dotted gray 1px です? 171 * 172 * @param leftBorderStyle 左線?ヘッ??(及び線)?位置の割?少数) 173 */ 174 public void setLeftBorderStyle( final String leftBorderStyle ) { 175 tag.add( "leftBorderStyle",StringUtil.nval( getRequestParameter( leftBorderStyle ),null ) ); 176 } 177 178 /** 179 * 【TAG】左線?ヘッ?????上下位置をピクセル単位で?しま???数で下方?? 180 * 181 * @og.tag 182 * 左右の?が重なる可能性がある?合に利用します? 183 * 10と?すると?0マイナスされて?が上方向にずれます? 184 * ??数を指定すると、文字が下方向にずれます? 185 * 単?px)は設定不要です?それ以外?単位?設定できません? 186 * 187 * @param adjustLeft ??上下位置?? 188 */ 189 public void setAdjustLeft( final String adjustLeft ) { 190 // JavaScript 側の都合で、px 単位?、削除します? 191 String tmpA = StringUtil.nval( getRequestParameter( adjustLeft ),null ) ; 192 if( tmpA != null && tmpA.endsWith("px") ) { 193 tmpA = tmpA.substring( 0,tmpA.length()-2 ); 194 } 195 196 tag.add( "adjustLeft",tmpA ); 197 } 198 199 /** 200 * 【TAG】右線?ヘッ????を?します(?期??最大?? 201 * 202 * @og.tag 203 * 右線?ヘッ??表示する?を?します? 204 * 右線?、最終データ、また?、最大??タを意味します?で、その様な単語にします? 205 * なにも指定しな??合?、右側が最大桁以下を?捨てした値となり?左側はそ?半?の値です? 206 * 207 * @param rightVal 左線?ヘッ????? 208 */ 209 public void setRightVal( final String rightVal ) { 210 tag.add( "rightVal",StringUtil.nval( getRequestParameter( rightVal ),null ) ); 211 } 212 213 /** 214 * 【TAG】右線?ヘッ??(及び線)?位置を左からの割?少数)で?します? 215 * 216 * @og.tag 217 * グラフ??体を1として、左からの割合で?します?(左?.3で右?.9など?? 218 * 219 * @param rightLoc 右線?ヘッ??(及び線)?位置の割?少数) 220 */ 221 public void setRightLoc( final String rightLoc ) { 222 tag.add( "rightLoc",StringUtil.nval( getRequestParameter( rightLoc ),null ) ); 223 } 224 225 /** 226 * 【TAG】右線?スタイルを指定しま?初期値=dotted gray 1px)? 227 * 228 * @og.tag 229 * グラフに引かれる右線?スタイルを指定します? 230 * 初期値は、dotted gray 1px です? 231 * 232 * @param rightBorderStyle 左線?ヘッ??(及び線)?位置の割?少数) 233 */ 234 public void setRightBorderStyle( final String rightBorderStyle ) { 235 tag.add( "rightBorderStyle",StringUtil.nval( getRequestParameter( rightBorderStyle ),null ) ); 236 } 237 238 /** 239 * 【TAG】右線?ヘッ?????上下位置をピクセル単位で?しま???数で下方?? 240 * 241 * @og.tag 242 * 左右の?が重なる可能性がある?合に利用します? 243 * 10と?すると?0マイナスされて?が上方向にずれます? 244 * ??数を指定すると、文字が下方向にずれます? 245 * 単?px)は設定不要です?それ以外?単位?設定できません? 246 * 247 * @param adjustRight ??上下位置?? 248 */ 249 public void setAdjustRight( final String adjustRight ) { 250 // JavaScript 側の都合で、px 単位?、削除します? 251 String tmpA = StringUtil.nval( getRequestParameter( adjustRight ),null ) ; 252 if( tmpA != null && tmpA.endsWith("px") ) { 253 tmpA = tmpA.substring( 0,tmpA.length()-2 ); 254 } 255 256 tag.add( "adjustRight",tmpA ); 257 } 258 259 /** 260 * タグの名称を?返します? 261 * 自??身のクラス名より?自動的に取り出せな?め?こ?メソ?をオーバ?ライドします? 262 * 263 * @return タグの名称 264 */ 265 @Override 266 protected String getTagName() { 267 return "iHead" ; 268 } 269 270 /** 271 * こ?オブジェクト???表現を返します? 272 * 基本???目?使用します? 273 * 274 * @return こ?クラスの??表現 275 */ 276 @Override 277 public String toString() { 278 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 279 .println( "VERSION" ,VERSION ) 280 .println( "tag" ,tag.makeTag() ) 281 .println( "Other..." ,getAttributes().getAttribute() ) 282 .fixForm().toString() ; 283 } 284 }