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 /** 019 * ãƒ??ブルレイアウト㧠column ã‚¿ã‚°ç‰ã?å˜åœ¨ã—ãªã?©ºæ¬?®?‰€ã«æŒ¿å…¥ã—ã¦ã€? 020 * ãƒ??ブルã®è¡Œå?ã®å€‹æ•°ã‚’åˆã‚ã›ã‚‹ã‚¿ã‚°ã§ã™ã? 021 * 022 * 通常ã®ç©ºæ¬??ã€ãƒ©ãƒ™ãƒ«ã¨å€¤ã¨ã?†?’ã¤ã®é ?›®ã‚’別ã€??カラãƒ?«ç™»éŒ²ã™ã‚‹ã‚ˆã†ã« 023 * <td></td>ã‚¿ã‚°ãŒã??’ã¤ç¶šã„ãŸå½¢å¼ã‚’ã—ã¦ã?¾ã™ãŒã€ä¸?ˆ¬ã«ã€? 024 * 個数ã¯è¡¨ç¤ºä¸Šã?都åˆã§ä»»æ„ã?個数ã®<td>タグを使用ã—ãŸã?‚±ãƒ¼ã‚¹ã? 025 * ã‚りã¾ã™ã? 026 * ãã?å ´åˆã?ã“ã?SpaceTag を使ã£ã¦ãŠã‘ã°,大é‡ã?作æ?済ã¿ç”»é¢ã‚’ä¿®æ£ã—ãªãã¦ã‚? 027 * ã“ã?クラスを修æ£ã™ã‚‹ã?‘ã§,ã™ã¹ã¦ã®ç©ºæ¬??ãƒ?‚¶ã‚¤ãƒ³ãŒã‚ープã§ãã¾ã™ã? 028 * 029 * @og.formSample 030 * â—å½¢å¼ï¼?lt;og:space /> 031 * â—body?šãªã? 032 * 033 * â—Tag定義?? 034 * <og:space 035 * width ã€TAG】å?体ã?大ãã•(width 属æ?)を指定ã—ã¾ã? 036 * colspan ã€TAG】å?体ã?大ãã•(width 属æ?)を指定ã—ã¾ã? 037 * labelWidth ã€TAG】ラベル部åˆ?å‰åŠéƒ¨åˆ?ã®å¤§ãã•(width 属æ?)を指定ã—ã¾ã? 038 * valueWidth ã€TAG】å?部åˆ?後åŠéƒ¨åˆ?ã®å¤§ãã•(width 属æ?)を指定ã—ã¾ã? 039 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 040 * /> 041 * 042 * â—使用ä¾? 043 * 通常ã®ã€ãƒ©ãƒ™ãƒ«éƒ¨ã€ãƒ•ィールド部ãŒç©ºã® td タグを生æˆã—ã¾ã™ã? 044 * <og:space /> 045 * 046 * td ã‚¿ã‚°ã®å¤§ãã•を指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 047 * <og:space 048 * labelWidth = "ラベル部åˆ?å‰åŠéƒ¨åˆ?ã®å¤§ãã•(width 属æ?)を指定ã—ã¾ã™ã?" 049 * valueWidth = "値部åˆ?後åŠéƒ¨åˆ?ã®å¤§ãã•(width 属æ?)を指定ã—ã¾ã™ã?" 050 * /> 051 * 052 * @og.group ç”»é¢éƒ¨å“? 053 * 054 * @version 4.0 055 * @author Kazuhiko Hasegawa 056 * @since JDK5.0, 057 */ 058 public class SpaceTag extends CommonTagSupport { 059 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 060 private static final String VERSION = "5.1.9.0 (2010/08/01)" ; 061 062 private static final long serialVersionUID = 519020100801L ; 063 064 private String labelWidth = null ; 065 private String valueWidth = null ; 066 private String width = null ; // 5.1.9.0 (2010/08/01) 追åŠ? 067 private String colspan = null ; // 5.1.9.0 (2010/08/01) 追åŠ? 068 069 /** 070 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 071 * 072 * @return 後続å?ç??æŒ?¤º( SKIP_BODY ) 073 */ 074 @Override 075 public int doStartTag() { 076 jspPrint( makeTag() ); 077 return( SKIP_BODY ); 078 } 079 080 /** 081 * タグリブオブジェクトをリリースã—ã¾ã™ã? 082 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 083 * 084 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 085 * @og.rev 5.1.9.0 (2010/08/01) width , colspan 属æ?追åŠ? 086 */ 087 @Override 088 protected void release2() { 089 super.release2(); 090 labelWidth = null ; 091 valueWidth = null ; 092 width = null ; // 5.1.9.0 (2010/08/01) 追åŠ? 093 colspan = null ; // 5.1.9.0 (2010/08/01) 追åŠ? 094 } 095 096 /** 097 * 検索æ¡ä»¶ã®å…¥åŠ›ç”¨ã®ãƒ?‚ストフィールドを作æ?ã—ã¾ã™ã? 098 * 099 * ãƒ??ブルタグã«ã‚ˆã‚Šãƒ•ィールドã?åˆ?‰²ã•れã¾ã™ã? 100 * 使用時ã?ã€ãƒ†ãƒ¼ãƒ–ルタグをå‰å¾Œã«ä½¿ç”¨ã—ã¦ä¸‹ã•ã?? 101 * 102 * @og.rev 5.1.9.0 (2010/08/01) width , colspan 属æ?追åŠ? 103 * 104 * @return 入力用ã®ãƒ?‚ストフィールドタグ 105 */ 106 private String makeTag() { 107 StringBuilder rtn = new StringBuilder(); 108 109 // width æŒ?®? 110 if( width != null && width.length() > 0 ) { 111 // width ãŒæŒ‡å®šã•れるã¨ã€å¼·åˆ¶çš?« colspan ã‚’è¨å®šã™ã‚‹ã? 112 if( colspan == null || colspan.length() == 0 ) { 113 colspan = "2"; 114 } 115 rtn.append( "<td width=\"" ); 116 rtn.append( width ); 117 rtn.append( "\" colspan=\"" ); 118 rtn.append( colspan ); 119 rtn.append( "\"></td>" ); 120 } 121 // ã™ã§ã«ã€width ã¯æœªæŒ?®šãªã®ã§ã€colspan ã®ã¿å‡ºåŠ? 122 else if( colspan != null && colspan.length() > 0 ) { 123 rtn.append( "<td colspan=\"" ); 124 rtn.append( colspan ); 125 rtn.append( "\"></td>" ); 126 } 127 // width ã‚?colspan も未æŒ?®šã?å ´åˆã?ã¿ã€labelWidthã€valueWidth ã‚’å?åŠ? 128 else { 129 if( labelWidth == null || labelWidth.length() == 0 ) { 130 rtn.append( "<td></td>" ); 131 } 132 else { 133 rtn.append( "<td width=\"" ); 134 rtn.append( labelWidth ); 135 rtn.append( "\"></td>" ); 136 } 137 138 if( valueWidth == null || valueWidth.length() == 0 ) { 139 rtn.append( "<td></td>" ); 140 } 141 else { 142 rtn.append( "<td width=\"" ); 143 rtn.append( valueWidth ); 144 rtn.append( "\"></td>" ); 145 } 146 } 147 return rtn.toString() ; 148 } 149 150 /** 151 * ã€TAG】å?体ã?大ãã•(width 属æ?)を指定ã—ã¾ã™ã? 152 * 153 * @og.tag 154 * 通常㮠space ã‚¿ã‚°ã¯ã€td ?’å?åˆ??ã‚¿ã‚°ã‚’å?力ã—ã¾ã™ãŒã€width 属æ?ã‚? 155 * æŒ?®šã—ãŸå?åˆã?ã€colspan="2" ã‚’ã‚»ãƒ?ƒˆä¸‹ä¸Šã§ã€width 属æ?ã«è¨å®šã•れã¾ã™ã? 156 * 157 * @og.rev 5.1.9.0 (2010/08/01) æ–°è¦è¿½åŠ? 158 * 159 * @param width 属æ? 160 */ 161 public void setWidth( final String width ) { 162 this.width = getRequestParameter( width ); 163 } 164 165 /** 166 * ã€TAG】å?体ã?大ãã•(width 属æ?)を指定ã—ã¾ã™ã? 167 * 168 * @og.tag 169 * 属æ?㯠td ã‚¿ã‚°ã® colspan 属æ?ã«è¨å®šã•れã¾ã™ã? 170 * 171 * @og.rev 5.1.9.0 (2010/08/01) æ–°è¦è¿½åŠ? 172 * 173 * @param colspan 属æ? 174 */ 175 public void setColspan( final String colspan ) { 176 this.colspan = getRequestParameter( colspan ); 177 } 178 179 /** 180 * ã€TAG】ラベル部åˆ?å‰åŠéƒ¨åˆ?ã®å¤§ãã•(width 属æ?)を指定ã—ã¾ã™ã? 181 * 182 * @og.tag 183 * 属æ?㯠td ã‚¿ã‚°ã® width 属æ?ã«è¨å®šã•れã¾ã™ã? 184 * 185 * @param width 属æ? 186 */ 187 public void setLabelWidth( final String width ) { 188 labelWidth = getRequestParameter( width ); 189 } 190 191 /** 192 * ã€TAG】å?部åˆ?後åŠéƒ¨åˆ?ã®å¤§ãã•(width 属æ?)を指定ã—ã¾ã™ã? 193 * 194 * @og.tag 195 * 属æ?㯠td ã‚¿ã‚°ã® width 属æ?ã«è¨å®šã•れã¾ã™ã? 196 * 197 * @param width 属æ? 198 */ 199 public void setValueWidth( final String width ) { 200 valueWidth = getRequestParameter( width ); 201 } 202 203 /** 204 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 205 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 206 * 207 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 208 */ 209 @Override 210 public String toString() { 211 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 212 .println( "VERSION" ,VERSION ) 213 .println( "width" ,width ) 214 .println( "colspan" ,colspan ) 215 .println( "labelWidth" ,labelWidth ) 216 .println( "valueWidth" ,valueWidth ) 217 .println( "Other..." ,getAttributes().getAttribute() ) 218 .fixForm().toString() ; 219 } 220 }