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
021 import static org.opengion.fukurou.util.StringUtil.nval ;
022 import org.opengion.fukurou.util.XHTMLTag;
023
024 /**
025 * TagSupport から継承されたサブクラスですã?
026 *
027 * 汎用属æ? のsetterメソãƒ?ƒ‰を持ってã�?�¾すã?
028 * それ以外に、{@XXXX} 変数の対応と、lang属æ?のメソãƒ?ƒ‰も用意してã�?�¾すã?
029 *
030 * ロケールは、ユーザーæƒ??の lang 属æ?をデフォルトで使用しã?
031 * セãƒ?ƒˆされてã�?�ªã�??合ã?、リクエスト情報のロケールから取得しますã?
032 *
033 * å�?±žæ?は、{@XXXX} 変数が使用できますã?
034 * これは、ServletRequest から、XXXX をキーに値を取りå?ã�?こã?変数に
035 * 割り当てますã?つまりã?こã?XXXXをキーにリクエストすれã?ã€?
036 * こã?変数に値をセãƒ?ƒˆすることができますã?
037 *
038 * http://localhost/query.jsp?KEY1=VLA1&KEY2=VAL2
039 *
040 * のようなリクエストで、{@KEY1} とすればã€?VAL1 がセãƒ?ƒˆされますã?
041 *
042 * こã?タグは、ラベル部åˆ?�¨入力フィールド部åˆ?�Œãƒ??ブルタグの<td>
043 * により左右にåˆ?‰²されますã?HTML 表示時ã?、前後に<tr>タグで囲って,
044 * 整形できますã?
045 *
046 * @og.group 画面部å“?
047 *
048 * @version 4.0
049 * @author Kazuhiko Hasegawa
050 * @since JDK5.0,
051 */
052 abstract class HTMLTagSupport extends CommonTagSupport {
053 // 5.2.1.0 (2010/10/01) must , mustAny 属æ?をè?動化しますã?
054 private String mustType = null; // 5.2.1.0 (2010/10/01)
055
056 /**
057 * Taglibの終äº?‚¿グが見つかったときに処ç�?�™ã‚?doEndTag() ã‚?オーバã?ライドしますã?
058 *
059 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()で呼ぶã€?
060 * @og.rev 4.0.0.0 (2005/11/30) ロール をè?慮しますã?
061 * @og.rev 4.3.0.0 (2008/07/04) ロールモードã?ルチ対å¿?
062 * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
063 *
064 * @return 後続å?ç�?
065 */
066 @Override
067 public int doEndTag() {
068 debugPrint(); // 4.0.0 (2005/02/28)
069 // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
070 if( useTag() ) {
071 // 4.0.0 (2005/11/30) æŒ?®šã?ロールがã?アクセス許可の場合ã?、å?力しますã?
072 // if( getUser().isAccess( get( "roles" ) ) ) {
073 // jspPrint( makeTag() );
074 // }
075
076 // 4.3.0.0 (2008/07/04) ロールモードã?ルチ対å¿?
077 if( getUser().isAccess( get( "roles" ) ) ) {
078 jspPrint( makeTag() );
079 }
080 }
081 return(EVAL_PAGE);
082 }
083
084 /**
085 * タグリブオブジェクトをリリースしますã?
086 * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
087 *
088 * @og.rev 5.2.1.0 (2010/10/01) mustType 属æ?を追åŠ??
089 */
090 @Override
091 protected void release2() {
092 super.release2();
093 mustType = null; // 5.2.1.0 (2010/10/01)
094 }
095
096 /**
097 * ボタンを作æ?しますã?
098 *
099 * <button type="submit" name="名前" value="値">
100 *
101 * @return ボタンタグæ–?—å?
102 */
103 abstract protected String makeTag() ;
104
105 /**
106 * 【HTML】要ç´?�«対して固有ã?名前(id)をつける場合に設定しますã?
107 *
108 * @og.tag
109 * 特別な使用方法として、id="FOCUS" とすることで、フィールド系要ç´?�«
110 * フォーカスを移動させますã?これは、そのペã?ジå†?�§唯ä¸?? id 属æ?として使用くださいã€?
111 *
112 * @param id 固有ã?名前
113 */
114 @Override
115 public void setId( final String id ) {
116 set( "id",getRequestParameter( id ) );
117 }
118
119 /**
120 * 【HTML】要ç´?�«対して class 属æ?を設定しますã?
121 *
122 * @og.tag
123 * Javaのè¨?ªž使用上ã?class で作æ?できなã�?�Ÿめã?代用として
124 * clazz を使用してã�?�¾すã?
125 * html で作æ?される属æ?はã€?class で作æ?されますã?
126 *
127 * @og.rev 3.5.0.0 (2003/09/17) set ではなくã?add を利用しますã?
128 *
129 * @param cls classを表す文字å?
130 */
131 public void setClazz( final String cls ) {
132 add( "class",getRequestParameter( cls ) ); // 3.5.5.9 (2004/06/07) セパレータ引数付きのメソãƒ?ƒ‰に変更
133 }
134
135 /**
136 * 【HTML】要ç´??å†?®¹と他ã?属æ?値のè¨?ª?lang,xml:lang)を指定しますã?
137 *
138 * @og.tag
139 * HTMLのè¨?ªž属æ?に使われますã?æŒ?®šするå?は、ISO 639で規定されてã�?‚‹「è¨?ªžコードã?ですã?
140 * [ja/en/zh/…]などのほかに、en-US:アメリカ英語ã?en-cockney:コãƒ?‚¯ニã?英èª?などã€?
141 * 副è¨?ªžをæŒ?®šする方法も定められてã�?�¾すã?
142 * ここでは、lang と xml:lang の両方に同じ値がセãƒ?ƒˆされますã?
143 * タグの language 属æ?とは使用用途が異なりますã?
144 *
145 * @og.tag lang セãƒ?ƒˆ
146 *
147 * @param lang è¨?ªž[ja/en/zh/…]
148 */
149 public void setLang( final String lang ) {
150 String lng = getRequestParameter( lang );
151 if( lng != null ) {
152 set( "lang",lng );
153 set( "xml:lang",lng );
154 }
155 }
156
157 /**
158 * 【HTML】文字表記ã?方å�?dir)を指定しますã?
159 *
160 * @og.tag
161 * 当該要ç´??書字方向をæŒ?®šする属æ?ですã?
162 * ltr で、左から右に、rtl で、右から左に並べますã?
163 *
164 * @param dir (ltr:左から右、rtl:右から左 )
165 */
166 public void setDir( final String dir ) {
167 set( "dir",getRequestParameter( dir ) );
168 }
169
170 /**
171 * 【HTML】要ç´?�«対する補足çš?ƒ…報(title)を設定しますã?
172 *
173 * @og.tag
174 * title セãƒ?ƒˆは、ã?タンなどに適用すると、ã?ウスオーバã?によりこã?メãƒ?‚»ージã�?
175 * チップスのように表示されますã?これを利用して、説明文を登録することが可能ですã?
176 * ここに登録したæ–?—å?がã?メãƒ?‚»ージリソースに存在する場合ã?、そのメãƒ?‚»ージã‚?
177 * 存在しなã�??合ã?、そのままの値を設定しますã?
178 *
179 * @og.rev 3.5.5.8 (2004/05/20) メãƒ?‚»ージリソースから読み込んだæ–?—を使用しますã?
180 * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ージリソース統å�? getResource().getMessage > getResource().getLabel )
181 *
182 * @param title 補足çš?ƒ…報(title)
183 */
184 public void setTitle( final String title ) {
185 String str = nval( getRequestParameter( title ),null );
186 if( str != null ) {
187 // set( "title",getResource().getMessage( str ) );
188 set( "title",getResource().getLabel( str ) );
189 }
190 }
191
192 /**
193 * 【HTML】この要ç´?�«対して適用させるスタイルシーãƒ?style)を設定しますã?
194 *
195 * @og.tag
196 * タグにstyle属æ?を設定しますã?これは、キー:値; のセãƒ?ƒˆをè¤?•°記述できますã?
197 * 通常は、class属æ?ã‚??id属æ?で登録しておきã€?lg;style type="text/css"> で
198 * 外部からæŒ?®šする方がソースは読みã‚?�™くなりますã?
199 *
200 * @param style スタイルシーãƒ?style="color:red; font-size:24pt;" など)
201 */
202 public void setStyle( final String style ) {
203 set( "style",getRequestParameter( style ) );
204 }
205
206 /**
207 * 【TAG】その部品に対して変更がå?来なã�?‚ˆã�?�«(readonly)æŒ?®šしまã�?サーバã?に送信されã‚?ã€?
208 *
209 * @og.tag
210 * INPUT/TEXTAREA 系に対して、指定可能ですã?
211 * readonly="readonly" , readonly="true" が指定された場合ã?、有効ですã?
212 * false も指定å?としては、有効ですã?(大æ–?—小文字ã?区別も不è¦?
213 * それ以外ã?æŒ?®šã?、エラーとしますã?
214 *
215 * @og.rev 3.7.1.0 (2005/04/26) readonly,true,false が指定できるように変更ã€?
216 *
217 * @param ronly 読み取り専用属æ?[readonly/true/false]
218 */
219 public void setReadonly( final String ronly ) {
220 String readonly = nval( getRequestParameter( ronly ),null );
221 if( readonly != null ) {
222 if( readonly.equalsIgnoreCase( "readonly" ) ||
223 readonly.equalsIgnoreCase( "true" ) ) {
224 set( "readonly","readonly" );
225 }
226 else if( ! readonly.equalsIgnoreCase( "false" ) ) {
227 String errMsg = "readonly には、[readonly,true,false]以外ã?æ–?—ã?æŒ?®šできませんã€?
228 + " readonly=[" + readonly + "]" + HybsSystem.CR ;
229 throw new HybsSystemException( errMsg );
230 }
231 }
232 }
233
234 /**
235 * 【TAG】その部品に対してã€?�¸択や変更がå?来なã�?‚ˆã�?�«(disabled)æŒ?®šしまã�?サーバã?に送信されなã�?ã€?
236 *
237 * @og.tag
238 * BUTTON/INPUT/OPTGROUP/OPTION/SELECT/TEXTAREA 系に対して、指定可能ですã?
239 * disabled="disabled" , disabled="true" が指定された場合ã?、有効ですã?
240 * false も指定å?としては、有効ですã?(大æ–?—小文字ã?区別も不è¦?
241 * それ以外ã?æŒ?®šã?、エラーとしますã?
242 *
243 * @og.rev 3.7.1.0 (2005/04/26) disabled,true,false が指定できるように変更ã€?
244 *
245 * @param dis 選択や変更がå?来なã�?‚ˆã�?�«するかどã�?�‹[disabled/true/false]
246 */
247 public void setDisabled( final String dis ) {
248 String disabled = nval( getRequestParameter( dis ),null );
249 if( disabled != null ) {
250 if( disabled.equalsIgnoreCase( "disabled" ) ||
251 disabled.equalsIgnoreCase( "true" ) ) {
252 set( "disabled","disabled" );
253 }
254 else if( ! disabled.equalsIgnoreCase( "false" ) ) {
255 String errMsg = "disabled には、[disabled/true/false]以外ã?æ–?—ã?æŒ?®šできませんã€?
256 + " disabled=[" + disabled + "]" + HybsSystem.CR ;
257 throw new HybsSystemException( errMsg );
258 }
259 }
260 }
261
262 /**
263 * 【HTML】タブã?移動é?(tabindex)を指定しまã�?0 ??32767)ã€?
264 *
265 * @og.tag
266 * Tabキーを押したときに要ç´?�Œ選択されるé ?•ªを指定しますã?
267 * 値にはã€?�¸択させたã�??番を数値で記述しますã?
268 *
269 * @param tabindex タブã?移動é?(0 ??32767)
270 */
271 public void setTabindex( final String tabindex ) {
272 set( "tabindex",getRequestParameter( tabindex ) );
273 }
274
275 /**
276 * 【HTML】アクセスキー(alt+キーで直接æŒ?®?を割り当てますã?
277 *
278 * @og.tag
279 * アクセスキーは、ã?ウスの使えなã�?’°å¢?�§もã?リンクにジャンプするã?ボタンを押すã?入力フォーãƒ?�«
280 * フォーカスを移すなどの操作を簡単に行うことができるようにè€??されたものですã?
281 * Windows の「ファイル(F)」メニューにつã�?�¦ã�?‚‹、F と同じような働きをしますã?
282 *
283 * @param accesskey アクセスキー
284 */
285 public void setAccesskey( final String accesskey ) {
286 set( "accesskey",getRequestParameter( accesskey ) );
287 }
288
289 /**
290 * 【TAG】JavaScript などの HTML基本タグ以外ã?属æ?をã?そã?ままタグとして使用しますã?
291 *
292 * @og.tag
293 * JavaScript などの HTML基本タグ以外ã?属æ?をã?そã?まま
294 * タグとして使用しますã?<del>そã?ときにã€?')はã€?")に置き換えますã?</del>
295 *
296 * @og.rev 3.1.0.1 (2003/03/26) (')ã‚?")に置き換えå?ç�?�—てã�?�Ÿのを止めるã€?
297 *
298 * @param optionAttributes HTML基本タグ以外ã?属æ?
299 */
300 public void setOptionAttributes( final String optionAttributes ) {
301 String optAttri = getRequestParameter( optionAttributes );
302 if( optAttri != null && optAttri.length() > 0 ) {
303 set( "optionAttributes",optAttri );
304 }
305 }
306
307 /**
308 * 【HTML】JavaScriptのイベンãƒ?onClick を設定しまã�?ä¾?onClick="renew('query.jsp','QUERY');")ã€?
309 *
310 * @og.tag
311 * onClick をセãƒ?ƒˆしますã?
312 * 例えばã€?lt;og:column name="KBSAKU" onClick="renew('query.jsp','QUERY');" />
313 * のようにæŒ?®šすることで、ã?ルãƒ?‚¦ンメニューの絞込み検索が可能になりますã?
314 *
315 * @og.rev 3.5.0.0 (2003/09/17) 新規追åŠ?
316 * @og.rev 3.5.5.9 (2004/06/07) セパレータ付きの追åŠ?ƒ¡ソãƒ?ƒ‰に変更
317 *
318 * @param onClick onClickイベンãƒ?ä¾?onClick="renew('query.jsp','QUERY');")
319 */
320 public void setOnClick( final String onClick ) {
321 add( "onClick",getRequestParameter( onClick ),";" );
322 }
323
324 /**
325 * 【HTML】JavaScriptのイベンãƒ?onChange を設定しまã�?ä¾?onChange="renew('query.jsp','QUERY');")ã€?
326 *
327 * @og.tag
328 * onChange をセãƒ?ƒˆしますã?
329 * 例えばã€?lt;og:column name="KBSAKU" onChange="renew('query.jsp','QUERY');" />
330 * のようにæŒ?®šすることで、ã?ルãƒ?‚¦ンメニューの絞込み検索が可能になりますã?
331 *
332 * @og.rev 3.5.0.0 (2003/09/17) 新規追åŠ?
333 * @og.rev 3.5.5.9 (2004/06/07) セパレータ付きの追åŠ?ƒ¡ソãƒ?ƒ‰に変更
334 *
335 * @param onChange onChangeイベンãƒ?ä¾?onChange="renew('query.jsp','QUERY');")
336 */
337 public void setOnChange( final String onChange ) {
338 add( "onChange",getRequestParameter( onChange ),";" );
339 }
340
341 /**
342 * 【HTML】JavaScriptのイベンãƒ?onBlur を設定しまã�?ä¾?onBlur="this.value=value.toUpperCase();")ã€?
343 *
344 * @og.tag
345 * onBlur は、フォーカスが離れたときに発生するイベントですã?
346 *
347 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
348 *
349 * @param onBlur onBlurイベンãƒ?ä¾?onBlur="this.value=value.toUpperCase();")
350 */
351 public void setOnBlur( final String onBlur ) {
352 add( "onBlur",getRequestParameter( onBlur ),";" );
353 }
354
355 /**
356 * 【HTML】JavaScriptのイベンãƒ?onFocus を設定しますã?
357 *
358 * @og.tag
359 * onFocus は、フォーカスされたときに発生するイベントですã?
360 *
361 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
362 *
363 * @param onFocus onFocusイベンãƒ?
364 */
365 public void setOnFocus( final String onFocus ) {
366 add( "onFocus",getRequestParameter( onFocus ),";" );
367 }
368
369 /**
370 * 【HTML】JavaScriptのイベンãƒ?onSelect を設定しますã?
371 *
372 * @og.tag
373 * onSelect は、テキストフィールãƒ?ãƒ?‚ストエリアのãƒ?‚ストが
374 * 選択されたときに発生するイベントですã?
375 *
376 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
377 *
378 * @param onSelect onSelectイベンãƒ?
379 */
380 public void setOnSelect( final String onSelect ) {
381 add( "onSelect",getRequestParameter( onSelect ),";" );
382 }
383
384 /**
385 * 【HTML】JavaScriptのイベンãƒ?ondblClick を設定しますã?
386 *
387 * @og.tag
388 * ondblClick は、ã?ウスでãƒ?ƒ–ルクリãƒ?‚¯されたときに発生するイベントですã?
389 *
390 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
391 *
392 * @param ondblClick ondblClickイベンãƒ?
393 */
394 public void setOndblClick( final String ondblClick ) {
395 add( "ondblClick",getRequestParameter( ondblClick ),";" );
396 }
397
398 /**
399 * 【HTML】JavaScriptのイベンãƒ?onMouseDown を設定しますã?
400 *
401 * @og.tag
402 * onMouseDown は、ã?ウスãƒ?‚¦ンされたときに発生するイベントですã?
403 *
404 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
405 *
406 * @param onMouseDown onMouseDownイベンãƒ?
407 */
408 public void setOnMouseDown( final String onMouseDown ) {
409 add( "onMouseDown",getRequestParameter( onMouseDown ),";" );
410 }
411
412 /**
413 * 【HTML】JavaScriptのイベンãƒ?onMouseUp を設定しますã?
414 *
415 * @og.tag
416 * onMouseUp は、ã?ウスアãƒ??されたときに発生するイベントですã?
417 *
418 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
419 *
420 * @param onMouseUp onMouseUpイベンãƒ?
421 */
422 public void setOnMouseUp( final String onMouseUp ) {
423 add( "onMouseUp",getRequestParameter( onMouseUp ),";" );
424 }
425
426 /**
427 * 【HTML】JavaScriptのイベンãƒ?onMouseMove を設定しますã?
428 *
429 * @og.tag
430 * onMouseMove は、ã?ウスが移動されたときに発生するイベントですã?
431 *
432 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
433 *
434 * @param onMouseMove onMouseMoveイベンãƒ?
435 */
436 public void setOnMouseMove( final String onMouseMove ) {
437 add( "onMouseMove",getRequestParameter( onMouseMove ),";" );
438 }
439
440 /**
441 * 【HTML】JavaScriptのイベンãƒ?onMouseOut を設定しますã?
442 *
443 * @og.tag
444 * onMouseOut は、ã?ウスが離れたときに発生するイベントですã?
445 *
446 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
447 *
448 * @param onMouseOut onMouseOutイベンãƒ?
449 */
450 public void setOnMouseOut( final String onMouseOut ) {
451 add( "onMouseOut",getRequestParameter( onMouseOut ),";" );
452 }
453
454 /**
455 * 【HTML】JavaScriptのイベンãƒ?onMouseOver を設定しますã?
456 *
457 * @og.tag
458 * onMouseOver は、ã?ウスが重なったときに発生するイベントですã?
459 *
460 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
461 *
462 * @param onMouseOver onMouseOverイベンãƒ?
463 */
464 public void setOnMouseOver( final String onMouseOver ) {
465 add( "onMouseOver",getRequestParameter( onMouseOver ),";" );
466 }
467
468 /**
469 * 【HTML】JavaScriptのイベンãƒ?onKeydown を設定しますã?
470 *
471 * @og.tag
472 * onKeydown は、キーが押されたときに発生するイベントですã?
473 *
474 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
475 *
476 * @param onKeydown onKeydownイベンãƒ?
477 */
478 public void setOnKeydown( final String onKeydown ) {
479 add( "onKeydown",getRequestParameter( onKeydown ),";" );
480 }
481
482 /**
483 * 【HTML】JavaScriptのイベンãƒ?onKeypress を設定しますã?
484 *
485 * @og.tag
486 * onKeypress は、キーが押され続けてã�?�Ÿときに発生するイベントですã?
487 *
488 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
489 *
490 * @param onKeypress onKeypressイベンãƒ?
491 */
492 public void setOnKeypress( final String onKeypress ) {
493 add( "onKeypress",getRequestParameter( onKeypress ),";" );
494 }
495
496 /**
497 * 【HTML】JavaScriptのイベンãƒ?onKeyup を設定しますã?
498 *
499 * @og.tag
500 * onKeyup は、キーが押された状態から離されたときに発生するイベントですã?
501 *
502 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
503 *
504 * @param onKeyup onKeyupイベンãƒ?
505 */
506 public void setOnKeyup( final String onKeyup ) {
507 add( "onKeyup",getRequestParameter( onKeyup ),";" );
508 }
509
510 /**
511 * 【TAG】ロールをセãƒ?ƒˆしますã?
512 *
513 * @og.tag
514 * ここでæŒ?®šしたカラãƒ?ƒールをå?に、ユーザー毎ã?アクセス許可がチェãƒ?‚¯されますã?
515 * アクセス許可されなã�?�¨、表示されませんã€?
516 * こã?ロールを指定しなã�??合ã?、カラãƒ?ƒªソースのロールが使用されますã?
517 *
518 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
519 *
520 * @param roles ロール
521 */
522 public void setRoles( final String roles ) {
523 set( "roles",getRequestParameter( roles ) );
524 }
525
526 /**
527 * 【TAG】å¿??入力を表す色に変えるかどã�?�‹[true/false]を指定しまã�?初期値:false)ã€?
528 *
529 * @og.tag
530 * 初期値は、å¿??でなã�?"false") ですã?
531 *
532 * <og:input name="PN" must="true" />
533 *
534 * @og.rev 5.2.1.0 (2010/10/01) 新規追åŠ?
535 *
536 * @param flag å¿??入力色に変えるかどã�?�‹[true:å¿??入åŠ?それ以å¤?å¿??でない]
537 */
538 public void setMust( final String flag ) {
539 mustType = nval( getRequestParameter( flag ),null );
540 if( "true".equalsIgnoreCase( mustType ) ) {
541 mustType = "must";
542 add( "class","must" );
543 }
544 }
545
546 /**
547 * 【TAG】選択å¿??入åŠ?どれかひとつå¿??)を表す色[true/mustAny/そã?他]を指定しまã�?初期値:無æŒ?®?ã€?
548 *
549 * @og.tag
550 * è¤?•°のカラãƒ??ã�?�¡、どれかひとつをå¿??とする選択å¿??入力を示す色を指定しますã?
551 * true またã?、mustAny を設定すると、class属æ?に、mustAny がセãƒ?ƒˆされますã?
552 * mustAny は、CSSファイルに初期設定されてã�?�¾すã?true またã?、mustAny 以外ã?値をセãƒ?ƒˆ
553 * すると、その値がそのまま、class属æ?にセãƒ?ƒˆされますã?でã€?�¸択å¿??のグループ化ã�?
554 * 可能ですã?
555 * なおã?実際の選択å¿??入力チェãƒ?‚¯は、ここではなくã?columnCheck タグでæŒ?®šがå¿?¦�ですã?
556 * 自動å?ç�??、mustAny="true" æŒ?®šã?場合ã?み有効ですã?
557 * 初期値は、無æŒ?®šですã?
558 *
559 * @og.rev 5.2.1.0 (2010/10/01) 新規追åŠ?
560 *
561 * @param flag 選択å¿??入のæŒ?®š[true/mustAny/そã?他]
562 */
563 public void setMustAny( final String flag ) {
564 if( mustType == null ) { // must 属æ?と同時設定時には、must 属æ?を優先しますã?
565 mustType = nval( getRequestParameter( flag ),null );
566 if( "true".equalsIgnoreCase( mustType ) ) {
567 mustType = "mustAny";
568 }
569 add( "class",mustType ); // mustType == null の場合ã?、add されませんã€?
570 }
571 }
572
573 /**
574 * mustType 属æ?を取得しますã?
575 *
576 * must , mustAny 属æ?を設定するå?合に、mustType 属æ?を設定しますã?
577 * そã?設定された値を取りå?しますã?
578 * 何も設定されてã�?�ªã�?ж態では、null を返しますã?
579 *
580 * @og.rev 5.2.1.0 (2010/10/01) 新規追åŠ??
581 *
582 * @return mustType属æ?
583 */
584 protected String getMustType() {
585 return mustType ;
586 }
587
588 /**
589 * must , mustAny 属æ?をè?動化するためのhiddenタグを生成しますã?
590 *
591 * HybsSystem.MUST_KEY + mustType をキーに、指定ã?カラãƒ?��をå?として
592 * hidden を作æ?しますã?こã?値ã‚?columnChack タグで拾って must 処ç�?�—ますã?
593 * なおã?must , mustAny 属æ?を使用してã�?�ªã�??合ã?、null を返しますã?
594 *
595 * @og.rev 5.2.1.0 (2010/10/01) 新規追åŠ??
596 *
597 * @param name mustæŒ?®šするカラãƒ?‰ã?名称
598 *
599 * @return 自動化するためのhiddenタグ
600 */
601 protected String makeMustHidden( final String name ) {
602 String rtn = null;
603 if( mustType != null ) {
604 rtn = XHTMLTag.hidden( HybsSystem.MUST_KEY + mustType, name );
605 }
606 return rtn;
607 }
608 }