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.fukurou.util.XHTMLTag; 020 021 import org.opengion.fukurou.util.StringUtil; 022 023 /** 024 * 【?力??行?入力が可能な?スト?力フィールドを作?するHTML拡張タグです? 025 * 026 * name 属?に ラベルリソース のキーを与えることで?ロケールにあわせたリソースを使用して? 027 * 画面に表示します? 028 * ロケールは、ユーザー??の lang 属?を?期?で使用し? セ?されて???合?? 029 * リクエスト情報のロケールから取得します? 030 * ラベル部?入力フィールド部???ブルタグの <td> により左右に?されます? 031 * HTML 表示時?、前後に<tr>タグで囲って?整形できます? 032 * 033 * @og.formSample 034 * ●形式?lt;og:queryOption > 035 * SELECT? 036 * </og:queryOption > 037 * ●body?あ?EVAL_BODY_BUFFERED:BODYを評価し?{@XXXX} を解析しま? 038 * 039 * ●Tag定義?? 040 * <og:textarea 041 * name ○?HTML】名前を?しま???)? 042 * lbl 【TAG】ラベルリソースのラベルIDを指定しま? 043 * rows 【HTML】高さ(行数)を指定しま? 044 * cols 【HTML】横?カラ?)を指定しま? 045 * must 【TAG】??入力を表す色に変えるかど?[true/false]を指定しま?初期値:false) 046 * mustAny 【TAG】選択??入?どれかひとつ??)を表す色[true/mustAny/そ?他]を指定しま?初期値:無?? 047 * aimai 【TAG】曖昧検索可能フィールドとして、曖昧検索方法を?しま?初期値:null) 048 * id 【HTML】要?対して固有?名前(id)をつける場合に設定しま? 049 * lang 【HTML】要???と他?属?値の??lang,xml:lang)を指定しま? 050 * dir 【HTML】文字表記?方?dir)を指定しま? 051 * title 【HTML】要?対する補足?報(title)を設定しま? 052 * style 【HTML】この要?対して適用させるスタイルシー?style)を設定しま? 053 * readonly 【TAG】その部品に対して変更が?来な??(readonly)?しま?サーバ?に送信され? 054 * disabled 【TAG】その部品に対して?択や変更が?来な??(disabled)?しま?サーバ?に送信されな? 055 * tabindex 【HTML】タブ?移動?(tabindex)を指定しま?0 ??32767) 056 * accesskey 【HTML】アクセスキー(alt+キーで直接??を割り当てま? 057 * clazz 【HTML】要?対して class 属?を設定しま? 058 * language 【TAG】タグ?で使用する?コード[ja/en/zh/…]を指定しま? 059 * onClick 【HTML】JavaScriptのイベン?onClick を設定しま??onClick="renew('query.jsp','QUERY');") 060 * onBlur 【HTML】JavaScriptのイベン?onBlur を設定しま??onBlur="this.value=value.toUpperCase();") 061 * onFocus 【HTML】JavaScriptのイベン?onFocus を設定しま? 062 * ondblClick 【HTML】JavaScriptのイベン?ondblClick を設定しま? 063 * onMouseDown 【HTML】JavaScriptのイベン?onMouseDown を設定しま? 064 * onMouseUp 【HTML】JavaScriptのイベン?onMouseUp を設定しま? 065 * onMouseMove 【HTML】JavaScriptのイベン?onMouseMove を設定しま? 066 * onMouseOut 【HTML】JavaScriptのイベン?onMouseOut を設定しま? 067 * onMouseOver 【HTML】JavaScriptのイベン?onMouseOver を設定しま? 068 * onSelect 【HTML】JavaScriptのイベン?onSelect を設定しま? 069 * onKeydown 【HTML】JavaScriptのイベン?onKeydown を設定しま? 070 * onKeypress 【HTML】JavaScriptのイベン?onKeypress を設定しま? 071 * onKeyup 【HTML】JavaScriptのイベン?onKeyup を設定しま? 072 * autofocus 【HTML5】指定した?力?カーソルが当たって自動的にフォーカスされます? 073 * placeholder 【HTML5】?力?初期表示する?を指定します? 074 * required 【HTML5】?力??を指定しま? 075 * roles 【TAG】ロールをセ?しま? 076 * debug 【TAG】デバッグ??を?力するかど?[true/false]を指定しま?初期値:false) 077 * > ... Body ... 078 * </og:textarea> 079 * 080 * ●使用? 081 * <og:textarea name="BUN" /> 082 * 083 * <og:textarea name="BUN"> 初期値に値をセ?した?? 084 * test 085 * </og:textarea name="BUN"> 086 * 087 * @og.group 画面部? 088 * 089 * @version 4.0 090 * @author Kazuhiko Hasegawa 091 * @since JDK5.0, 092 */ 093 public class TextareaTag extends HTMLTagSupport { 094 //* こ?プログラ??VERSION??を設定します? {@value} */ 095 private static final String VERSION = "5.2.1.0 (2010/10/01)" ; 096 097 private static final long serialVersionUID = 521020101001L ; 098 099 /** 100 * Taglibの開始タグが見つかったときに処??doStartTag() ?オーバ?ライドします? 101 * 102 * @return 後続????( EVAL_BODY_BUFFERED ) 103 */ 104 @Override 105 public int doStartTag() { 106 return( EVAL_BODY_BUFFERED ); // Body を評価する? extends BodyTagSupport ? 107 } 108 109 /** 110 * Taglibのタグ本体を処??doAfterBody() ?オーバ?ライドします? 111 * 112 * @og.rev 3.1.1.0 (2003/03/28) ボディの?を取得する??、CommonTagSupport で行う? 113 * @og.rev 3.1.1.0 (2003/03/28) body 属?に?{@XXXX} パ?ス機?を付加する? 114 * 115 * @return 後続????(SKIP_BODY) 116 */ 117 @Override 118 public int doAfterBody() { 119 String str = getBodyString(); 120 121 if( str != null && str.length() > 0 ) { 122 String label = StringUtil.htmlFilter( str ); 123 if( label != null && label.length() > 0 ) { 124 set( "body",label ); 125 } 126 } 127 128 return(SKIP_BODY); 129 } 130 131 /** 132 * 検索条件の入力用の?ストフィールドを作?します? 133 * 134 * ??ブルタグによりフィールド??されます? 135 * 使用時?、テーブルタグを前後に使用して下さ?? 136 * 137 * @og.rev 4.3.7.1 (2009/06/08) id=labelのclass? 138 * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属?を?動化します? 139 * @og.rev 5.8.4.1 (2015/02/20) aimai対?6.2.0.0?? 140 * 141 * @return 入力用の?ストフィールドタグ 142 */ 143 @Override 144 protected String makeTag() { 145 StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 146 if( getMsglbl() == null ) { setLbl( get( "name" ) ); } 147 148 // 4.3.7.1 (2009/06/08) id=labelのclass? 149 // rtn.append( "<td id=\"label\">" ); 150 rtn.append( "<td class=\"label\">" ); 151 rtn.append( getLongLabel() ); // 4.0.0 (2005/01/31) 152 rtn.append( "</td>" ); 153 rtn.append( "<td>" ); 154 rtn.append( XHTMLTag.textarea( getAttributes() ) ); 155 rtn.append( "</td>" ); 156 157 rtn.append( makeAimaiPicker( get( "name" ) ) ); 158 // 5.2.1.0 (2010/10/01) must , mustAny 属?を?動化します? 159 if( getMustType() != null ) { rtn.append( makeMustHidden( get( "name" ) ) ); } 160 161 return rtn.toString() ; 162 } 163 164 /** 165 * 【HTML】名前を?します? 166 * 167 * @og.tag 名前を指定します? 168 * 169 * @param name 名前 170 */ 171 public void setName( final String name ) { 172 set( "name",getRequestParameter( name ) ); 173 } 174 175 /** 176 * 【HTML】高さ(行数)を指定します? 177 * 178 * @og.tag 高さ(行数)を指定します? 179 * 180 * @param rows 高さ(行数) 181 */ 182 public void setRows( final String rows ) { 183 set( "rows",getRequestParameter( rows ) ); 184 } 185 186 /** 187 * 【HTML】横?カラ?)を指定します? 188 * 189 * @og.tag 横??します? 190 * 191 * @param cols 横?カラ?) 192 */ 193 public void setCols( final String cols ) { 194 set( "cols",getRequestParameter( cols ) ); 195 } 196 }