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.HybsSystem; 019 import org.opengion.hayabusa.common.HybsSystemException; 020 import org.opengion.fukurou.util.StringUtil; 021 import org.opengion.fukurou.util.TagBuffer; 022 023 /** 024 * é…置図?座å¸è¡¨ã‚’表ã™ç‰¹æ®Šç³»ã®ãƒ“ューã§ã™ã? 025 * 026 * itd ã‚¿ã‚°ã¯ã€ã‚¬ãƒ³ãƒˆã?ãƒ?ƒ€ãƒ¼éƒ¨ã® TDã‚¿ã‚°ã®ç¹°è¿”ã—ã«ä½¿ç”¨ã•れã¾ã™ã? 027 * ã“ã?ç¹°è¿”ã—ã¯ã€ganttParam ã‚¿ã‚°ã® minDuration ã§æŒ?®šã•れãŸé–“éš”ã§è¡Œã‚れã¾ã™ã? 028 * (例ãˆã°ã€?.5 を指定ã™ã‚Œã?ã€åŠæ—¥å˜ä½ã§å‡¦ç?•れã¾ã™ã?) 029 * itd ã‚¿ã‚°ã® colspan 属æ?を指定ã—ãŸå?åˆã?ã€itd 自身ãŒã?td ã‚¿ã‚°ã« colspan ã‚? 030 * 追åŠ?™ã‚‹ã¨å…±ã«ã€ç¹°è¿”ã—自身をã?ãã?æŒ?®šæ•°ã?‘ã«æŠ‘åˆ¶ã—ã¾ã™ã? 031 * 具体的ã«ã¯ã€colspan="2" ã¨ã™ã‚‹ã¨ã€?¼’回ã«ä¸?›žã—ã‹ã€itd ã‚¿ã‚°ãŒå‘¼ã³å‡ºã•れãªã? 032 * ãªã‚Šã¾ã™ã? 033 * 034 * @og.formSample 035 * â—å½¢å¼ï¼?lt;og:iMatrix ... /> 036 * â—body?šãªã? 037 * â—å‰æï¼šheadã‚¿ã‚°ã§ã€adjustEvent="Matrix" を指定ã—ã¦ãã ã•ã„ã€? 038 * 039 * â—Tag定義?? 040 * <og:iMatrix 041 * mode ã€TAG】[Layout:レイアウト編é›?Value:è¨å®šå?ã®ç·¨é›?(åˆæœŸå€¤:Layout) 042 * countPro ã€TAG】データノã?ドã?属æ?æ•°( è¡? åˆ? åç§°, 値, 色, ç·¨é›?¯å¦, スãƒ??タス )(åˆæœŸå€¤:7) 043 * (SQLæ–??カラãƒ?•°(éžè¡¨ç¤ºé ?›®ã‚’除ã?) 044 * inputWidth ã€TAG】編é›?™‚ã®å…¥åŠ›æ¬?¹?px)(åˆæœŸå€¤:50px) 045 * cellWidth ã€TAG】セルå¹?px) (åˆæœŸå€¤:75px) 046 * cellHeight ã€TAG】セル高ã•(px) (åˆæœŸå€¤:30px) 047 * showStatus ã€TAG】スãƒ??タスã®å‡ºåŠ›ã‚’è¡Œã†ã‹ã©ã?‹[[true:表示ã™ã‚‹/false:表示ã—ãªã„]](åˆæœŸå€¤:false) 048 * countStatus ã€TAG】スãƒ??タスã®ç¨®é¡žæ•°??:会è°ã€?:æ¥å®¢ã€?:出張ã€?:外å?ã€?:休暇ã€?:ä»–ï¼?åˆæœŸå€¤:6) 049 * writable ã€TAG】画é¢ç·¨é›?ƒ•ラグを[true:å¯/false:ä¸å¯](åˆæœŸå€¤:false) 050 * editColor ã€TAG】セル背景色ã®ç·¨é›?¯å¦[true:ç·¨é›?¯/false:ç·¨é›?¸å¯](åˆæœŸå€¤:false) 051 * separator ã€TAG】セルåç§°ã¨è¨å®šå?ã®é–“ã?区åˆ?‚Šæ–??åˆæœŸå€¤:":") 052 * paramVal ã€TAG】セルã®è¨å®šå?ã¯ãƒ‘ラメータより渡ã?åˆæœŸå€¤:"") 053 * paramColor ã€TAG】セルã®èƒŒæ™¯è‰²ã¯ãƒ‘ラメータより渡ã?åˆæœŸå€¤:"") 054 * notEditBgColor ã€TAG】編é›?¸å¯ã®ã‚»ãƒ«ã®èƒŒæ™¯è‰²(åˆæœŸå€¤:gray) 055 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 056 * /> 057 * 058 * â—使用ä¾? 059 * Select æ–??ã€è¡? åˆ? åç§°, 値, 色, ç·¨é›?¯å¦, スãƒ??タス ã®é ?§æ¤œç´¢ã—ã¾ã™ã? 060 * <og:query > 061 * select 行番å·,列番å·,セルåç§°,セルè¨å®šå?,セル背景色,セルã®ç·¨é›?¯å¦,セルã®ã‚¹ãƒ??タス 062 * from レイアウトテーブル 063 * where ãƒã‚±ãƒ¼ã‚·ãƒ§ãƒ³ID = 'XXXX' 064 * order by 行番å·,åˆ—ç•ªå· 065 * </og:query> 066 * 067 * viewã‚¿ã‚°ã«ã‚ˆã‚‹HTML出åŠ?ã¯ã€ã“ã®é€šã‚Šã«ã—ã¦ãã ã•ã„ã€? 068 * <og:view 069 * viewFormType = "HTMLDynamic" 070 * useScrollBar = "false" 071 * useHilightRow = "false" 072 * noMessage = "true" 073 * pageSize = "0" 074 * /> 075 * 076 * <og:iMatrix 077 * mode = "Layout/Value" 078 * countPro = "7" 079 * inputWidth = "80px" 080 * cellWidth = "100px" 081 * cellHeight = "30px" 082 * showStatus = "true/false" 083 * countStatus = "6" 084 * writable = "true/false" 085 * editColor = "true/false" 086 * separator = ":" 087 * paramVal = "{@XXX}" 088 * paramColor = "{@XXX}" 089 * notEditBgColor = "#XXXXXX" 090 * /> 091 * 092 * @og.rev 5.6.3.2 (2013/04/12) æ–°è¦ä½œæ? 093 * @og.group ç”»é¢éƒ¨å“? 094 * 095 * @version 5.0 096 * @author Kazuhiko Hasegawa 097 * @since JDK6.0, 098 */ 099 public class ViewIMatrixTag extends CommonTagSupport { 100 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 101 private static final String VERSION = "5.6.3.2 (2013/04/12)" ; 102 103 private static final long serialVersionUID = 563220130412L ; 104 105 /** mode å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?モードリスãƒ? */ 106 private static final String[] MODE_LIST = new String[] { "Layout" , "Value" }; 107 108 private TagBuffer tag = new TagBuffer( "iMatrix" ) ; 109 110 /** 111 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 112 * 113 * @return 後続å?ç??æŒ?¤º 114 */ 115 @Override 116 public int doEndTag() { 117 debugPrint(); // 4.0.0 (2005/02/28) 118 119 jspPrint( tag.makeTag() ); 120 121 return(EVAL_PAGE); // ペã?ã‚¸ã®æ®‹ã‚Šã‚’評価ã™ã‚‹ã€? 122 } 123 124 /** 125 * タグリブオブジェクトをリリースã—ã¾ã™ã? 126 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 127 * 128 */ 129 @Override 130 protected void release2() { 131 super.release2(); 132 tag = new TagBuffer( "iMatrix" ); 133 } 134 135 /** 136 * ã€TAG】é?置図?座å¸è¡¨ã®ç·¨é›?ƒ¢ãƒ¼ãƒ?Layout:レイアウト編é›?Value:è¨å®šå?ã®ç·¨é›?を指定ã—ã¾ã?åˆæœŸå€¤:Layout)ã€? 137 * 138 * @og.tag 139 * mode ã¯ã€Layout:レイアウト編é›?‚’行ã†ã®ã‹ã?Value:è¨å®šå?ã®ç·¨é›?‚’行ã†ã‹ã‚’æŒ?®šã—ã¾ã™ã? 140 * Layout:レイアウト編é›?CELLNAMEã¨FGCELLEDITã®å€¤ã‚’ç·¨é›?—ã¾ã™ã?) 141 * Value :è¨å®šå?ã®ç·¨é›?VALUEã¨COLORã®å€¤ã‚’ç·¨é›?—ã¾ã™ã?) 142 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€Layout:レイアウト編é›?ã§ã™ã? 143 * 144 * @param mode ç·¨é›?ƒ¢ãƒ¼ãƒ?Layout:レイアウト編é›?Value:è¨å®šå?ã®ç·¨é›? 145 */ 146 public void setMode( final String mode ) { 147 String tmpMode = StringUtil.nval( getRequestParameter( mode ),null ); 148 149 if( !check( tmpMode, MODE_LIST ) ) { 150 String errMsg = "æŒ?®šã?モーãƒ?mode)ã¯æŒ?®šã§ãã¾ã›ã‚“。モード指定エラー" 151 + HybsSystem.CR 152 + "mode=[" + tmpMode + "] " 153 + HybsSystem.CR 154 + StringUtil.array2csv( MODE_LIST ) ; 155 throw new HybsSystemException( errMsg ); 156 } 157 158 tag.add( "mode",tmpMode ); 159 } 160 161 /** 162 * ã€TAG】データノã?ドã?属æ?æ•°( è¡? åˆ? åç§°, 値, 色, ç·¨é›?¯å¦, スãƒ??タス )を指定ã—ã¾ã?åˆæœŸå€¤:7)ã€? 163 * 164 * @og.tag 165 * SQLæ–??カラãƒ?•°(éžè¡¨ç¤ºé ?›®ã‚’除ã?を指定ã—ã¾ã™ã? 166 * SQLæ–??ã€å?é ã‹ã‚‰ã€ã?è¡? åˆ? åç§°, 値, 色, ç·¨é›?¯å¦, スãƒ??タスã€ã?é ?«æ¤œç´¢ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã? 167 * ã“れ以外ã«ã€è¡¨ç¤ºé ?›®ã«ãªã‚‹ã‚«ãƒ©ãƒ?‚’æŒ?®šã™ã‚‹å?åˆã«ã€è¡¨ç¤ºã‚«ãƒ©ãƒ?•°ã‚’è¨å®šã—ã¾ã™ã? 168 * å¿?¦å?ã?‘?ˆè¡? åˆ? åç§°, 値, 色, ç·¨é›?¯å¦, スãƒ??タス?‰ã?å ´åˆã?ã€?7" を指定ã—ã¾ã™ã? 169 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?7" ã§ã™ã? 170 * 171 * @param countPro ãƒ??タノã?ドã?属æ?æ•° 172 */ 173 public void setCountPro( final String countPro ) { 174 tag.add( "countPro",StringUtil.nval( getRequestParameter( countPro ),null ) ); 175 } 176 177 /** 178 * ã€TAG】編é›?™‚ã®å…¥åŠ›æ¬?¹?px)を指定ã—ã¾ã?åˆæœŸå€¤:50px)ã€? 179 * 180 * @og.tag 181 * ç·¨é›?™‚ã®å…¥åŠ›æ¬?¹?px)を指定ã—ã¾ã™ã? 182 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?50px" ã§ã™ã? 183 * 184 * @param inputWidth ç·¨é›?™‚ã®å…¥åŠ›æ¬?¹?px) 185 */ 186 public void setInputWidth( final String inputWidth ) { 187 tag.add( "inputWidth",StringUtil.nval( getRequestParameter( inputWidth ),null ) ); 188 } 189 190 /** 191 * ã€TAG】セルå¹?px)を指定ã—ã¾ã?åˆæœŸå€¤:75px)ã€? 192 * 193 * @og.tag 194 * セルå¹?px)を指定ã—ã¾ã™ã? 195 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?75px" ã§ã™ã? 196 * 197 * @param cellWidth セルå¹?px) 198 */ 199 public void setCellWidth( final String cellWidth ) { 200 tag.add( "cellWidth",StringUtil.nval( getRequestParameter( cellWidth ),null ) ); 201 } 202 203 /** 204 * ã€TAG】セル高ã•(px)を指定ã—ã¾ã?åˆæœŸå€¤:30px)ã€? 205 * 206 * @og.tag 207 * セル高ã•(px)を指定ã—ã¾ã™ã? 208 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?30px" ã§ã™ã? 209 * 210 * @param cellHeight セル高ã•(px) 211 */ 212 public void setCellHeight( final String cellHeight ) { 213 tag.add( "cellHeight",StringUtil.nval( getRequestParameter( cellHeight ),null ) ); 214 } 215 216 /** 217 * ã€TAG】スãƒ??タスã®å‡ºåŠ›ã‚’è¡Œã†ã‹ã©ã?‹[true:表示ã™ã‚‹/false:表示ã—ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€? 218 * 219 * @og.tag 220 * スãƒ??タスã®å‡ºåŠ›ã‚’è¡Œã†å ´åˆã?ã€?./image/status_番å·.png イメージを画é¢ã«è¡¨ç¤ºã—ã¾ã™ã? 221 * 番å·ãŒã?スãƒ??タス番å·ã«ãªã‚Šã¾ã™ã? 222 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€false:表示ã—ãªã?ã§ã™ã? 223 * 224 * @param showStatus スãƒ??タスã®å‡ºåŠ›å¯å¦[true/false] 225 */ 226 public void setShowStatus( final String showStatus ) { 227 tag.add( "showStatus",StringUtil.nval( getRequestParameter( showStatus ),null ) ); 228 } 229 230 /** 231 * ã€TAG】スãƒ??タスã®ç¨®é¡žæ•°??:会è°ã€?:æ¥å®¢ã€?:出張ã€?:外å?ã€?:休暇ã€?:他)をæŒ?®šã—ã¾ã?åˆæœŸå€¤:6)ã€? 232 * 233 * @og.tag 234 * スãƒ??タスã®ç¨®é¡žæ•°??:会è°ã€?:æ¥å®¢ã€?:出張ã€?:外å?ã€?:休暇ã€?:他)ã?ã€ç·¨é›??ãƒ??ã‚¢ãƒ??ã®ä½œæ?ã«ä½¿ã?¾ã™ã? 235 * 上記ã?å ´åˆã??–種類ã«ãªã‚‹ãŸã‚ã?countStatus="6" ã¨ã—ã¾ã™ã? 236 * å†?ƒ¨çš?«ã¯ã€status_0.png ãŒã‚りã¾ã™ã? 237 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?6" ã§ã™ã? 238 * 239 * @param countStatus スãƒ??タスã®ç¨®é¡žæ•° 240 */ 241 public void setCountStatus( final String countStatus ) { 242 tag.add( "countStatus",StringUtil.nval( getRequestParameter( countStatus ),null ) ); 243 } 244 245 /** 246 * ã€TAG】画é¢ç·¨é›?‚’許å¯ã™ã‚‹ã‹ã©ã?‹[true:å¯/false:ä¸å¯]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€? 247 * 248 * @og.tag 249 * true:ç”»é¢ç·¨é›?¯/false:ç”»é¢ç·¨é›?¸å¯ã‚’指定ã—ã¾ã™ã? 250 * ã“ã“ã§ã¯ã€mode=[Layout/Value] ã«é–¢ä¿‚ãªãã?false ã«ã™ã‚‹ã¨ç·¨é›?¸å¯ã«ãªã‚Šã¾ã™ã? 251 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€false:ç·¨é›?¸å¯ ã§ã™ã? 252 * 253 * @param writable ç”»é¢ç·¨é›?¯å¦[true/false] 254 */ 255 public void setWritable( final String writable ) { 256 tag.add( "writable",StringUtil.nval( getRequestParameter( writable ),null ) ); 257 } 258 259 /** 260 * ã€TAG】セル背景色ã®ç·¨é›?¯å¦[true:ç·¨é›?¯/false:ç·¨é›?¸å¯]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€? 261 * 262 * @og.tag 263 * セル背景色ã®ç·¨é›?¯å¦[true:ç·¨é›?¯/false:ç·¨é›?¸å¯]を指定ã—ã¾ã™ã? 264 * ã“れã¯ã€mode="Value" ã§ã€writable="true" ã®å ´åˆã?ã¿æœ‰åйã§ã™ã? 265 * false ã«ã™ã‚‹ã¨ã€COLOR属æ?ã®ç·¨é›?Œã§ããªããªã‚Šã¾ã™ã? 266 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€false:ç·¨é›?¸å¯ ã§ã™ã? 267 * 268 * @param editColor セル背景色ã®ç·¨é›?¯å¦[true/false] 269 */ 270 public void setEditColor( final String editColor ) { 271 tag.add( "editColor",StringUtil.nval( getRequestParameter( editColor ),null ) ); 272 } 273 274 /** 275 * ã€TAG】セルåç§°ã¨è¨å®šå?ã®é–“ã?区åˆ?‚Šæ–?—ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:":")ã€? 276 * 277 * @og.tag 278 * ç”»é¢ä¸Šã«ã¯ã€ã‚»ãƒ«åç§°(CELLNAME)ã¨è¨å®šå?(VALUE)ãŒè¡¨ç¤ºã•れã¾ã™ã?ãã?時ã?ã€åŒºåˆ?‚Šæ–?—ã‚’æŒ?®šã—ã¾ã™ã? 279 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?:" ã§ã™ã? 280 * 281 * @param separator 区åˆ?‚Šæ–?? 282 */ 283 public void setSeparator( final String separator ) { 284 tag.add( "separator",StringUtil.nval( getRequestParameter( separator ),null ) ); 285 } 286 287 /** 288 * ã€TAG】セルã®è¨å®šå?(VALUE)を指定ã—ã¾ã?åˆæœŸå€¤:"")ã€? 289 * 290 * @og.tag 291 * セルã®è¨å®šå?(VALUE)を指定ã—ã¾ã™ã? 292 * 293 * @param paramVal セルã®è¨å®šå? 294 */ 295 public void setParamVal( final String paramVal ) { 296 tag.add( "paramVal",StringUtil.nval( getRequestParameter( paramVal ),null ) ); 297 } 298 299 /** 300 * ã€TAG】セルã®èƒŒæ™¯è‰²(COLOR)を指定ã—ã¾ã?åˆæœŸå€¤:"")ã€? 301 * 302 * @og.tag 303 * セルã®èƒŒæ™¯è‰²ã‚’指定ã—ã¾ã™ã? 304 * 305 * @param paramColor セルã®èƒŒæ™¯è‰² 306 */ 307 public void setParamColor( final String paramColor ) { 308 tag.add( "paramColor",StringUtil.nval( getRequestParameter( paramColor ),null ) ); 309 } 310 311 /** 312 * ã€TAG】編é›?¸å¯ã®ã‚»ãƒ«ã®èƒŒæ™¯è‰²ã‚’指定ã—ã¾ã?åˆæœŸå€¤:gray)ã€? 313 * 314 * @og.tag 315 * ç·¨é›?¸å¯ã®ã‚»ãƒ«ã®èƒŒæ™¯è‰²ã‚’指定ã—ã¾ã™ã? 316 * (adjustMatrix.jsã®)åˆæœŸå€¤ã¯ã€?gray" ã§ã™ã? 317 * 318 * @param notEditBgColor ç·¨é›?¸å¯ã®ã‚»ãƒ«ã®èƒŒæ™¯è‰² 319 */ 320 public void setNotEditBgColor( final String notEditBgColor ) { 321 tag.add( "notEditBgColor",StringUtil.nval( getRequestParameter( notEditBgColor ),null ) ); 322 } 323 324 /** 325 * ã‚¿ã‚°ã®åç§°ã‚’ã?è¿”ã—ã¾ã™ã? 326 * 自åˆ??身ã®ã‚¯ãƒ©ã‚¹åよりã?自動的ã«å–り出ã›ãªã?Ÿã‚ã?ã“ã?メソãƒ?ƒ‰ã‚’オーãƒã?ライドã—ã¾ã™ã? 327 * 328 * @return ã‚¿ã‚°ã®åç§° 329 */ 330 @Override 331 protected String getTagName() { 332 return "iMatrix" ; 333 } 334 335 /** 336 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 337 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 338 * 339 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 340 */ 341 @Override 342 public String toString() { 343 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 344 .println( "VERSION" ,VERSION ) 345 .println( "tag" ,tag.makeTag() ) 346 .println( "Other..." ,getAttributes().getAttribute() ) 347 .fixForm().toString() ; 348 } 349 }