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.XHTMLTag;
021    
022    /**
023     * プルãƒ?‚¦ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®é¸æŠžé?目を作æ?ã™ã‚‹HTML拡張タグã§ã™ã?
024     *
025     * name 属æ?ã¯ã€ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ ã®ã‚­ãƒ¼ã‚’与ãˆã‚‹ã“ã¨ã§ã€ä½¿ç”¨ã™ã‚‹ä¸Šä½ã?ã‚¿ã‚°ã®
026     * ロケールã«ã‚ã‚ã›ãŸãƒªã‚½ãƒ¼ã‚¹ã‚’使用ã—ã¦ã€ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã?
027     * 従ã£ã¦ã€ã“ã®ã‚¿ã‚°ã§ã¯ ãƒ­ã‚±ãƒ¼ãƒ«ã¯æŒ?®šã§ãã¾ã›ã‚“ã€?
028     * selected属æ?ã¯ã€ãã®ã‚¿ã‚°ãŒé¸ã°ã‚Œã¦ã?‚‹å ´åˆã‚’ã€?true" ã§æŒ?®šã—ã¾ã™ã? åˆæœŸå€¤ã¯ã€?false" ã§ã™ã?
029     *
030     * @og.formSample
031     * â—å½¢å¼ï¼?lt;og:option value="…" lbl ="…" selected="…" />
032     * â—body?šãªã?
033     *
034     * â—Tag定義??
035     *   <og:option
036     *       value              ã€TAG】å?を指定ã—ã¾ã?
037     *       selected           ã€TAGã€‘ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’é¸æŠžæ¸ˆã¿ã®çжæ…?selected)ã«ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:æœªé¸æŠ?
038     *       lbl                ã€TAG】ラベルリソースã®ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã?
039     *       lbls               ã€TAG】ラベルをCSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã?
040     *       label              ã€TAG】optionã‚¿ã‚°ã®ãƒ©ãƒ™ãƒ«ã‚’指定ã—ã¾ã?
041     *       caseKey            ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶ã‚­ãƒ¼ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null)
042     *       caseVal            ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶å€¤ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null)
043     *       caseNN             ã€TAG】指定ã?値ãŒã?null/ゼロæ–?­—å? ã§ãªã??å?Not Null=NN)ã¯ã€ã“ã®ã‚¿ã‚°ã¯ä½¿ç”¨ã•れã¾ã?åˆæœŸå€¤:true)
044     *       caseNull           ã€TAG】指定ã?値ãŒã?null/ゼロæ–?­—å? ã®å ´åˆã?ã€ã“ã®ã‚¿ã‚°ã¯ä½¿ç”¨ã•れã¾ã?åˆæœŸå€¤:true)
045     *       id                 ã€HTML】è¦ç´?«å¯¾ã—ã¦å›ºæœ‰ã?åå‰(id)ã‚’ã¤ã‘ã‚‹å ´åˆã«è¨­å®šã—ã¾ã?
046     *       lang               ã€HTML】è¦ç´??å†?®¹ã¨ä»–ã?属æ?値ã®è¨?ª?lang,xml:lang)を指定ã—ã¾ã?
047     *       dir                ã€HTML】文字表記ã?æ–¹å?dir)を指定ã—ã¾ã?
048     *       title              ã€HTML】è¦ç´?«å¯¾ã™ã‚‹è£œè¶³çš?ƒ…å ±(title)を設定ã—ã¾ã?
049     *       style              ã€HTML】ã“ã®è¦ç´?«å¯¾ã—ã¦é©ç”¨ã•ã›ã‚‹ã‚¹ã‚¿ã‚¤ãƒ«ã‚·ãƒ¼ãƒ?style)を設定ã—ã¾ã?
050     *       disabled           ã€TAG】ãã®éƒ¨å“ã«å¯¾ã—ã¦ã€?¸æŠžã‚„変更ãŒå?æ¥ãªã?‚ˆã?«(disabled)æŒ?®šã—ã¾ã?サーãƒã?ã«é€ä¿¡ã•れãªã?
051     *       clazz              ã€HTML】è¦ç´?«å¯¾ã—㦠class 属æ?を設定ã—ã¾ã?
052     *       language           ã€TAG】タグå†?ƒ¨ã§ä½¿ç”¨ã™ã‚‹è¨?ªžã‚³ãƒ¼ãƒ‰[ja/en/zh/…]を指定ã—ã¾ã?
053     *       roles              ã€TAG】ロールをセãƒ?ƒˆã—ã¾ã?
054     *       debug              ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
055     *   />
056     *
057     * â—使用ä¾?
058     *     プルãƒ?‚¦ãƒ³ã§é¸æŠžã™ã‚?値(value) ã«å¯¾ã—㦠ラベル(lbl) を付ã‘られã¾ã™ã?
059     *     <og:select name="ORDER_BY" msg="ORDER_BY">
060     *         <og:option value="SYSTEM_ID,CLM,LANG" lbl ="CLM" selected="selected" />
061     *     </og:select>
062     *
063     *     ラベルãŒè¤?•°ã‚ã‚‹å ´åˆã?ã€lbls 属æ?を使用ã—ã¾ã™ã?
064     *     <og:select name="ORDER_BY" msg="ORDER_BY">
065     *         <og:option value="SYSTEM_ID,CLM,LANG" lbls="LANG,NAME_JA" />
066     *     </og:select>
067     *
068     *     MessageResource プロパティã®å€¤ã‚’使用ã—ãŸã?¨ããã¯msg属æ?を使ã?¾ã™ã?
069     *     <og:select name="CDC">
070     *         <og:option msg="MSG0001" />
071     *     </og:select>
072     *
073     *     LabelResource プロパティã®å€¤ã‚’使用ã—ãŸã?¨ããã¯lbl属æ?を使ã?¾ã™ã?
074     *     <og:select name="CDC">
075     *         <og:option lbl="CDC1" />
076     *     </og:select>
077     *
078     *     é¸æŠžè‚¢ã®ä¸­ã‹ã‚‰è¤?•°é¸æŠžã§ãるよã†ã«ã™ã‚‹ã¨ãã?multiple属æ?を使ã?¾ã™ã?
079     *     <og:select name="CDC" multiple="multiple">
080     *         <og:option value="AAA" />
081     *     </og:select>
082     *
083     *     é¸æŠžä¸å¯ã«ã™ã‚‹ã¨ãã?disabled属æ?を使ã?¾ã™ã?
084     *     <og:select name="CDC" disabled="disabled">
085     *         <og:option value="AAA" />
086     *     </og:select>
087     *
088     *     é¸æŠžè‚¢ã‚’SELECTæ–??çµæžœã‹ã‚‰ä½œæ?ã—ãŸã?¨ãã?queryOptionã‚¿ã‚°ã¨çµ?¿åˆã‚ã›ã¦ä½¿ã?¾ã™ã?
089     *     <og:select name="CDC">
090     *         <og:queryOption>
091     *                     select NOSYN,NOSYN,':',NMSYN from DB01 ORDER BY 1
092     *         </og:queryOption>
093     *     </og:select>
094     *
095     * @og.rev 5.7.1.0 (2013/12/06) DatalistTag 対応ã§ã€å¤§å¹?«è¦‹ç›´ã?
096     * @og.group é¸æŠžãƒ‡ãƒ¼ã‚¿åˆ¶å¾¡
097     *
098     * @version  4.0
099     * @author   Kazuhiko Hasegawa
100     * @since    JDK5.0,
101     */
102    public class OptionTag extends HTMLTagSupport {
103            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
104            private static final String VERSION = "5.7.1.0 (2013/12/06)" ;
105    
106            private static final long serialVersionUID = 571020131206L ;
107    
108    //      private String code = null;
109    
110            // 3.5.4.0 (2003/11/25) selVal 属æ?を追åŠ??
111            // 5.7.1.0 (2013/12/06) ローカル変数化ã—ã¾ã™ã?
112    //      private String selVal = null;
113    //      private boolean multipleAll     = false;        // 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’設定ã™ã‚‹ã?
114    
115            /**
116             * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
117             *
118             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
119             * @og.rev 3.5.4.0 (2003/11/25) selVal 属æ?を追åŠ??
120             * @og.rev 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’設定ã™ã‚‹ã?
121             * @og.rev 4.3.0.0 (2008/07/04) ロールモードã?ルãƒå¯¾å¿?
122             * @og.rev 5.0.2.0 (2009/11/01) è¤?•°ãƒ‘ラメーターã®é¸æŠžã«å¯¾å¿?
123             * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿?
124             * @og.rev 5.7.1.0 (2013/12/06) findAncestorWithClass 等をã€makeTag() ã«ç§»å‹•ã—ãŸãŸã‚ã?メソãƒ?ƒ‰è‡ªä½“ãŒä¸è¦ã«ãªã£ãŸã?
125             *
126             * @return      後続å?ç??æŒ?¤º
127             */
128    //      @Override
129    //      public int doEndTag() {
130    //              debugPrint();           // 4.0.0 (2005/02/28)
131    //              // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿?
132    //              if( !useTag() ) { return(EVAL_PAGE); }
133    //
134    //              // 4.0.0 (2005/11/30) æŒ?®šã?ロールãŒã?アクセス許å¯ã®å ´åˆã?ã€å?力ã—ã¾ã™ã?
135    //              String roles = get( "roles" );
136    ////            if( roles != null && ! getUser().isAccess( roles ) ) {
137    ////                    return(EVAL_PAGE);
138    ////            }
139    //              // 4.3.0.0 (2008/07/04) ロールモードã?ルãƒå¯¾å¿?
140    //              if( ! getUser().isAccess( roles ) ) {
141    //                      return(EVAL_PAGE);
142    //              }
143    //
144    //              SelectTag select = (SelectTag)findAncestorWithClass( this,SelectTag.class );
145    //              if( select == null ) {
146    //                      String errMsg = "ã“ã?ã‚¿ã‚°ã¯ã€SelectTag ã®BODY ã«è¨˜è¿°ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?";
147    //                      throw new HybsSystemException( errMsg );
148    //              }
149    ////            selVal = select.getValue();                     // 3.5.4.0 (2003/11/25)
150    //              selVal = "|" + select.getValue() + "|"; // 5.0.2.0 (2009/11/01)
151    //              multipleAll     = select.isMultipleAll();       // 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’設定ã™ã‚‹ã?
152    //              select.addOption( makeTag() );
153    //
154    //              return(EVAL_PAGE);
155    //      }
156    
157            /**
158             * タグリブオブジェクトをリリースã—ã¾ã™ã?
159             * キャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨­å®šã‚’行ã„ã¾ã™ã?
160             *
161             * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ?
162             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
163             * @og.rev 3.5.4.0 (2003/11/25) selVal 属æ?を追åŠ??
164             * @og.rev 5.7.1.0 (2013/12/06) selVal ã¨ã€multipleAll ãŒãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°åŒ–ã—ãŸãŸã‚ã?メソãƒ?ƒ‰è‡ªä½“ãŒä¸è¦ã«ãªã£ãŸã?
165             *
166             */
167    //      @Override
168    //      protected void release2() {
169    //              super.release2();
170    ////            code            = null;
171    //              selVal          = null;
172    //              multipleAll     = false;        // 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’設定ã™ã‚‹ã?
173    //      }
174    
175            /**
176             * ラベルを作æ?ã—ã¾ã™ã?
177             *
178             * lbl 属æ??msg 属æ?ã§ã‚»ãƒ?ƒˆã•れãŸå?åˆã??Œãã¡ã‚‰ã‚’優先ã—ã¾ã™ã?
179             * ã‚»ãƒ?ƒˆã•れã¦ã?ªã??åˆã??Œvalue 属æ?をキーã«ã€?
180             * LabelResource プロパティã®å€¤ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
181             * value 属æ?ã«ã€ã‚«ãƒ³ãƒ?,)ã§åŒºåˆ?‚‰ã‚ŒãŸè¤?•°ã® Label ã‚?
182             * ã‚»ãƒ?ƒˆã§ãã¾ã™ã?
183             *
184             * @og.rev 3.5.4.0 (2003/11/25) selVal 属æ?を追åŠ??
185             * @og.rev 3.5.5.7 (2004/05/10) DBColumn.getOption( String ) メソãƒ?ƒ‰å»?­¢
186             * @og.rev 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’設定ã™ã‚‹ã?
187             * @og.rev 5.0.2.0 (2009/11/01) è¤?•°ãƒ‘ラメーターã®é¸æŠžã«å¯¾å¿?
188             * @og.rev 5.7.1.0 (2013/12/06) findAncestorWithClass を移�
189             * @og.rev 5.7.1.0 (2013/12/06) SelectTag â‡?OptionAncestorIF ã«å¤‰æ›´ã—ã¦ã€DatalistTag ã«ã‚‚対応ã?
190             *
191             * @return  null固定ï¼?ull ã‚’è¿”ã›ã°ã€doEndTag() ã§ã¯ã€ä½•ã‚‚ã—ãªã?¼?
192             */
193            @Override
194            protected String makeTag() {
195    //              if( code != null ) {
196    //                      String val = nval( get( "value" ),selVal );
197    //
198    //                      // 次期ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ã€å‰Šé™¤ã—ãŸã?¨æ€ã„ã¾ã™ã?
199    //                      String tag = getDBColumn( code ).getEditorValue( val );
200    //                      int st  = tag.indexOf( '>' );
201    //                      int end = tag.lastIndexOf( "</select" );
202    //                      return tag.substring( st+1,end );
203    //              }
204    
205                    // 3.5.4.0 (2003/11/25) selVal 属æ?を追åŠ??
206    //              if( ( selVal != null && selVal.length() > 0 && selVal.equals( get( "value" ) ) ) || multipleAll ) {
207                    // 5.0.2.0 (2009/11/01)
208    
209                    // 5.7.1.0 (2013/12/06) findAncestorWithClass ã‚?doEndTag() ã‹ã‚‰ç§»å‹?
210    //              SelectTag select = (SelectTag)findAncestorWithClass( this,SelectTag.class );
211                    OptionAncestorIF select = (OptionAncestorIF)findAncestorWithClass( this,OptionAncestorIF.class );
212                    if( select == null ) {
213                            String errMsg = "<b>" + getTagName() + "ã‚¿ã‚°ã¯ã€SelectTag ã¾ãŸã?ã€DatalistTag ã®BODY ã«è¨˜è¿°ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?</b>";
214                            throw new HybsSystemException( errMsg );
215                    }
216    
217                    String selVal = "|" + select.getValue() + "|";  // 5.0.2.0 (2009/11/01)
218                    boolean multipleAll     = select.isMultipleAll();       // 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’設定ã™ã‚‹ã?
219                    // 5.7.1.0 (2013/12/06) 上ä½ã«ä¸Šã’ã‚‹ã?ã§ã¯ãªãã?BODY部ã«å‡ºåŠ›ã™ã‚‹ã?
220    //              select.addOption( makeTag() );
221    
222                    if( ( selVal != null && selVal.length() > 0 && selVal.indexOf( "|" + get( "value" ) + "|" ) >= 0 ) || multipleAll ) {
223                            set( "selected","selected" );
224                    }
225    
226                    String msglbl = getMsglbl();
227                    if( msglbl != null ) {
228                            set( "body", msglbl );
229                    }
230    
231                    select.addOption( XHTMLTag.option( getAttributes() ) );
232    
233                    return null;
234            }
235    
236            /**
237             * ã€TAG】å?を指定ã—ã¾ã™ã?
238             *
239             * @og.tag
240             * ã“ã“ã§æŒ?®šã—ãŸå?ãŒã?ルãƒ?‚¦ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ä¸­ã«å­˜åœ¨ã™ã‚‹å ´åˆã?é¸æŠžçŠ¶æ…‹ã«ãªã‚Šã¾ã™ã?
241             *
242             * @param   val 値を指�
243             */
244            public void setValue( final String val ) {
245                    set( "value",getRequestParameter( val ) );
246            }
247    
248            /**
249             * ã€TAG】optionã‚¿ã‚°ã®ãƒ©ãƒ™ãƒ«ã‚’指定ã—ã¾ã™ã?
250             *
251             * @og.tag
252             * ã“ã“ã§ã®ãƒ©ãƒ™ãƒ«ã¯ã€optionã‚¿ã‚°ã®ãƒ©ãƒ™ãƒ«ã§ã™ã?(lbl属æ?ã¯ã€ç•°ãªã‚Šã¾ã™ã?)
253             * ã“れã¯ã€optgroup ã¨ã¨ã‚‚ã«ä½¿ç”¨ã•れる階層化メニュー時ã«ä½¿ç”¨ã•れã¾ã™ã?
254             *
255             * @param   label ラベル
256             */
257            public void setLabel( final String label ) {
258                    set( "label",getRequestParameter( label ) );
259            }
260    
261            /**
262             * ã€TAGã€‘ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’é¸æŠžæ¸ˆã¿ã®çжæ…?selected)ã«ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:æœªé¸æŠ?ã€?
263             *
264             * @og.tag
265             * selected="selected" ã¾ãŸã? selected="true" 以外ã?値ã¯ã‚»ãƒ?ƒˆã§ããªã?‚ˆã?«
266             * 制é™ã‚’ã‹ã‘ã¾ã™ã?
267             * åˆæœŸå€¤ã¯ã€æœªé¸æŠ?ã§ã™ã?
268             *
269             * @param   sel  [selected:é¸æŠžæ¸ˆã¿/ãれ以å¤?æœªé¸æŠž]
270             */
271            public void setSelected( final String sel ) {
272                    String select = getRequestParameter( sel );
273                    if( "selected".equalsIgnoreCase( select ) || "true".equalsIgnoreCase( select ) ) {
274                            set( "selected","selected" );
275                    }
276            }
277    
278    //      /**
279    //       * ã€å»?­¢ã€‘コードリソースã®ã‚³ãƒ¼ãƒ‰ID を指定ã—ã¾ã™ã?
280    //       *
281    //       * @og.tag
282    //       * コードリソースã§å®šç¾©ã•れã¦ã?‚‹å†?®¹ã‚’å?利用ã—ã¾ã™ã?基本çš?«ã¯ã€ã‚«ãƒ©ãƒ?ƒªã‚½ãƒ¼ã‚¹ã§ã€?
283    //       * コードカラãƒ?±žæ?を定義ã—ã¦ä½¿ç”¨ã—ã¦ãã ã•ã„ã€?
284    //       *
285    //       * @og.rev 4.0.0.0 (2007/06/18) å»?­¢
286    //       *
287    //       * @param   code String
288    //       * @deprecated
289    //       */
290    //      @Deprecated public void setCode( final String code ) {
291    //              this.code = getRequestParameter( code ) ;
292    //      }
293    
294            /**
295             * ã€TAG】ラベルをCSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã?
296             *
297             * @og.tag
298             * シングルラベル㮠lbl 属æ?ã¨ã®é•ã„ã¯,ã“ã“ã§ã¯ãƒ©ãƒ™ãƒ«ã‚’è¤?•° カンマ区åˆ?‚Šã§
299             * 渡ã™ã“ã¨ãŒå¯èƒ½ã§ã‚ã‚‹ã“ã¨ã§ã™ã?ã“れã«ã‚ˆã‚Šã€?A,B,C" ã¨ã?†å€¤ã«å¯¾ã—ã¦ã€?
300             * "Aã®ãƒ©ãƒ™ãƒ«è¡¨ç¤º,Bã®ãƒ©ãƒ™ãƒ«è¡¨ç¤º,Cã®ãƒ©ãƒ™ãƒ«è¡¨ç¤º" ã¨ã?†å…·åˆã«æ–?­—å?ã‚?
301             * å†åˆæˆã—ã¾ã™ã?
302             * ã“れã¯ã€SQLæ–??Ordr By å¥ã§ã€ã‚½ãƒ¼ãƒˆé?を指定ã™ã‚‹å?åˆãªã©ã«ä¾¿åˆ©ã§ã™ã?
303             * &lt;og:option lbls="MKNMJP,MKCD,MKNMEN" /&gt;
304             *
305             * åˆ?§£æ–¹æ³•ã?ã€CSV変数をå?ã«åˆ?§£ã—ã¦ã‹ã‚‰ã€getRequestParameter ã§å€¤ã‚’å–å¾—ã—ã¾ã™ã?
306             * ã“ã†ã—ãªã?¨ãƒ??タ自身ã«ã‚«ãƒ³ãƒžã‚’æŒã£ã¦ã?‚‹å ´åˆã«åˆ?§£ã‚’ミスる為ã§ã™ã?
307             *
308             * @og.rev 3.5.6.2 (2004/07/05) å…ˆã«é…å?ã«åˆ?§£ã—ã¦ã‹ã‚‰ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®å€¤ã‚’å–å¾?
309             * @og.rev 5.2.2.0 (2010/11/01) setMsglbl å»?­¢ â‡?setLbl ã«ç½®æ›ãˆ
310             *
311             * @param   lbls è¤?•°ãƒ©ãƒ™ãƒ«ID(カンマ区åˆ?‚Š)
312             */
313            public void setLbls( final String lbls ) {
314    
315                    String[] keys = getCSVParameter( lbls );
316                    if( keys == null || keys.length == 0 ) { return ; }
317    
318                    StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
319                    buf.append( getLabel( keys[0] ) );
320                    for( int i=1; i<keys.length; i++ ) {
321                            buf.append( "," );
322                            buf.append( getLabel( keys[i] ) );
323                    }
324    //              setMsglbl( buf.toString() );
325                    setLbl( buf.toString() );               // 5.2.2.0 (2010/11/01) setMsglbl å»?­¢ â‡?setLbl ã«ç½®æ›ãˆ
326            }
327    
328            /**
329             * ã“ã?オブジェクトã?æ–?­—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
330             * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
331             *
332             * @og.rev 5.7.1.0 (2013/12/06) selVal ã¨ã€multipleAll をローカル変数化ã™ã‚‹ã?
333             * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?­—å?表ç¾
334             */
335            @Override
336            public String toString() {
337                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
338                                    .println( "VERSION"             ,VERSION        )
339    //                              .println( "code"                ,code           )
340    //                              .println( "selVal"              ,selVal         )
341    //                              .println( "multipleAll" ,multipleAll)
342                                    .println( "Other..."    ,getAttributes().getAttribute() )
343                                    .fixForm().toString() ;
344            }
345    }