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 static org.opengion.fukurou.util.StringUtil.nval;
019    
020    import org.opengion.fukurou.util.XHTMLTag;
021    import org.opengion.hayabusa.common.HybsSystem;
022    import org.opengion.hayabusa.resource.GUIInfo;
023    
024    /**
025     * ãƒ?‚­ストフィールドã?入力を補助するポップアãƒ??を作æ?しますã?
026     *
027     * 通常のãƒ?‚­ストフィールドにçµ?�¿込ã‚?‚±ースと、ä¸?¦§表にçµ?�¿込ã‚?‚±ースに対応してã�?�¾すã?
028     * 基本çš?�«は、columnMarker タグと同じ使ã�?–¹ですが、フィールドが書き込み許可時に表示させるå¿?¦�が
029     * あるため、実際には、viewMarker の isRendere="false" で使用するケースが多いと思いますã?
030     * なおã?ポップアãƒ??専用なので href="index.jsp" target="CONTENTS" がデフォルトで設定されてã�?�¾すã?
031     *
032     * @og.formSample
033     * ●形式ï¼?lt;og:popup gamenId="…" href="…" keys="…,…" vals="…,…" rtnKeys="…,…" />
034     * ●body?šなã�?
035     *
036     * ●Tag定義??
037     *   <og:popup
038     *       name               【TAG】この要ç´?‚’リンクの対象とするための名前を指定しまã�?
039     *       gamenId            【TAG】画面ID属æ?を登録しまã�?
040     *       href               【TAG】ã?ãƒ??アãƒ??先ã?URLを指定しまã�?初期値:index.jsp)
041     *       keys               【TAG】ã?ãƒ??アãƒ??先に渡すå?力キー配å?をCSV形式でè¤?•°æŒ?®šしまã�?
042     *       vals               【TAG】ã?ãƒ??アãƒ??先に渡すå?配å?をCSV形式でè¤?•°æŒ?®šしまã�?
043     *       rtnKeys            【TAG】ã?ãƒ??アãƒ??先より受け取るキー配å?をCSV形式でè¤?•°æŒ?®šしまã�?
044     *       column             【TAG】リンクをつけたã�?‚«ラãƒ?‚’æŒ?®šしまã�?
045     *       onMark             【TAG】リンクを張ã‚?true or 1)/張らなã�?false or 0)の設定をæŒ?®šしまã�?初期値:true)
046     *       markList           【TAG】å?ç�?�™るã?ークをã?"|"区åˆ?‚Šのæ–?­—å?でæŒ?®šしまã�?
047     *       height             【TAG】ダイアログの縦å¹?‚’ピクセル数でæŒ?®šしまã�?
048     *       width              【TAG】ダイアログの横å¹?‚’ピクセル数でæŒ?®šしまã�?
049     *       src                【TAG】表示させる画像ã?URLを指定しまã�?
050     *       charset            【TAG】ã?ãƒ??アãƒ??先ã?æ–?­—コードセãƒ?ƒˆを指定しまã�?
051     *       target             【TAG】ã?ãƒ??アãƒ??先ã?表示ターゲãƒ?ƒˆを指定しまã�?初期値:CONTENTS)
052     *       caseKey            【TAG】このタグ自体を利用するかどã�?�‹の条件キーを指定しまã�?初期値:null)
053     *       caseVal            【TAG】このタグ自体を利用するかどã�?�‹の条件値を指定しまã�?初期値:null)
054     *       caseNN             【TAG】指定ã?値がã?null/ゼロæ–?­—å? でなã�??å�?Not Null=NN)は、このタグは使用されまã�?初期値:true)
055     *       caseNull           【TAG】指定ã?値がã?null/ゼロæ–?­—å? の場合ã?、このタグは使用されまã�?初期値:true)
056     *       id                 【HTML】要ç´?�«対して固有ã?名前(id)をつける場合に設定しまã�?
057     *       lang               【HTML】要ç´??å†?®¹と他ã?属æ?値のè¨?ª?lang,xml:lang)を指定しまã�?
058     *       dir                【HTML】文字表記ã?方å�?dir)を指定しまã�?
059     *       title              【HTML】要ç´?�«対する補足çš?ƒ…報(title)を設定しまã�?
060     *       style              【HTML】この要ç´?�«対して適用させるスタイルシーãƒ?style)を設定しまã�?
061     *       tabindex           【HTML】タブã?移動é?(tabindex)を指定しまã�?0 ??32767)
062     *       accesskey          【HTML】アクセスキー(alt+キーで直接æŒ?®?を割り当てまã�?
063     *       clazz              【HTML】要ç´?�«対して class 属æ?を設定しまã�?
064     *       lbl                【TAG】ラベルリソースのラベルIDを指定しまã�?
065     *       language           【TAG】タグå†?ƒ¨で使用するè¨?ªžコード[ja/en/zh/…]を指定しまã�?
066     *       command            【TAGã€?通常使ã�?�¾せん)処ç�??実行をæŒ?®šすã‚?command を設定できまã�?初期値:NEW)
067     *       append             【TAG】返ってきた値をキャレãƒ?ƒˆ位置に追記するかどã�?�‹(初期値?šfalse)
068     *       debug              【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
069     *   />
070     *
071     * ●使用ä¾?
072     *    ・普通ã?ポップアãƒ??
073     *        <og:popup gamenId="GE0002" href="index.jsp" target="CONTENTS"
074     *                    keys="AAA,BBB,CCC" vals="{@AAA},{@B},ABC"
075     *                    rtnKeys="DDD,EEE" />
076     *
077     *    ・QUERYの入力フィールドにçµ?�¿込ã‚?
078     *      â‘?eys、vals、rtnKeys がセãƒ?ƒˆされるå?å�?
079     *      ã€??ã€??セãƒ?ƒˆされã‚?keys に対して vals の値をã?ãƒ??アãƒ??画面に渡しã?ポップアãƒ??画面の戻りå?ã‚?rtnKeys にセãƒ?ƒˆされますã?
080     *        <og:column name="AAA" value="{@AAA}" >
081     *            <og:popup gamenId="GE0002"
082     *                        keys="AAA,BBB,CCC" vals="{@AAA},{@B},ABC"
083     *                        rtnKeys="DDD,EEE" />
084     *        </og:column>
085     *      ②keys、vals、rtnKeys がセãƒ?ƒˆされなã�??å�?
086     *      ã€??ã€?? ポップアãƒ??画面にリクエスト変数 XNAME に外å?のカラãƒ?��、XVALUE にカラãƒ??入力å?、rtnKeys にカラãƒ?��をè?動的にセãƒ?ƒˆされますã?
087     *        <og:column name="AAA" value="{@AAA}" >
088     *            <og:popup gamenId="GE0002" />
089     *        </og:column>
090     *
091     *    ・RESULTの入力フィールドにçµ?�¿込ã‚?viewMarker 経由)
092     *      gamenId を指定しなければこã?画面へのURLを作æ?しますã?
093     *      こã?URLは、その画面の index.jsp に直接ジャンプするためã?URLですã?
094     *        <og:viewMarker command="{@command}" isRenderer="false">
095     *            <og:popup gamenId="GE0002" column="ABC" onMark="[ABC]" markList="1|2|3"
096     *                        keys="AAA,BBB,CCC" vals="[AAA],[BBB].value,{@CCC}"
097     *                        rtnKeys="DDD,EEE" />
098     *        </og:viewMarker>
099     *
100     *    ・ポップアãƒ??側のJSPファイル(view 部åˆ?
101     *
102     * @og.group 画面部å“?
103     * @og.rev 3.8.6.1 (2006/10/20) 新規作æ?
104     *
105     * @version  0.9.0      2000/10/17
106     * @author       Kazuhiko Hasegawa
107     * @since        JDK1.1,
108     */
109    public class PopupTag extends HTMLTagSupport {
110            //* こã?プログラãƒ??VERSIONæ–?­—å?を設定しますã?       {@value} */
111            private static final String VERSION = "5.2.2.0 (2010/11/01)" ;
112    
113            private static final long serialVersionUID = 522020101101L ;
114    
115            private static final String DEF_BODY  = "▼" ;
116            private static final String DEF_STYLE = "width:20px;text-align:center;" ;
117    
118            private String          column          = null;
119            private String          gamenId         = null;
120            private String          href            = "index.jsp";
121            private String          target          = "CONTENTS";
122            private String          onMark          = "true";       // true またã? 1
123            private String          markList        = "true|TRUE|1";        // true またã? 1
124            private String          height          = null;
125            private String          width           = null;
126            private String          imgsrc          = null;
127            private String[]        keys            = null;
128            private String[]        vals            = null;
129            private String[]        rtnKeys         = null;
130    
131            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 新è¦?{@value} */
132            private static final String CMD_NEW      = "NEW" ;              // 5.1.7.0 (2010/06/01)
133            private String          command         = CMD_NEW;                      // 5.1.7.0 (2010/06/01)
134            
135            private String          append          = "false";                      // 5.8.5.0 (2015/03/06)
136    
137            /**
138             * Taglibの終äº?‚¿グが見つかったときに処ç�?�™ã‚?doEndTag() ã‚?オーバã?ライドしますã?
139             *
140             * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
141             *
142             * @return      後続å?ç�??æŒ?¤º
143             */
144            @Override
145            public int doEndTag() {
146                    // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
147                    if( useTag() ) {
148                            makeGamenLink();
149    
150                            // GAMENID属æ?の?µ?²?¬への自動セãƒ?ƒˆは行わなã�??
151                            ViewMarkerTag viewMark = (ViewMarkerTag)findAncestorWithClass( this,ViewMarkerTag.class );
152                            if( viewMark != null ) {
153                                    set( "onMark"  ,onMark );
154                                    set( "markList",markList );
155                                    set( "body"    ,makePopup( true ) );
156    
157                                    if( column != null && column.length() > 0 ) {
158                                            set( "column"  ,column );       // 4.0.0 (2005/08/31) 同ä¸?‚«ラãƒ??è¤?•°登録を許可しますã?
159                                            viewMark.addAttribute( getAttributes() );
160                                    }
161                            }
162                            else {
163                                    if( markList.indexOf( onMark ) >= 0 ) {
164                                            jspPrint( makePopup( false ) );
165                                    }
166                            }
167                    }
168                    return(EVAL_PAGE);
169            }
170    
171            /**
172             * 使用しませんã€?
173             *
174             * @return      (null 固å®?
175             */
176            @Override
177            protected String makeTag() { return null; }
178    
179            /**
180             * タグリブオブジェクトをリリースしますã?
181             * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
182             *
183             */
184            @Override
185            protected void release2() {
186                    super.release2();
187                    column          = null;
188                    gamenId         = null;
189                    href            = "index.jsp";
190                    target          = "CONTENTS";
191                    onMark          = "true";                       // true またã? 1
192                    markList        = "true|TRUE|1";        // true またã? 1
193                    keys            = null;
194                    vals            = null;
195                    rtnKeys         = null;
196                    height          = null;
197                    width           = null;
198                    imgsrc          = null;
199                    command         = CMD_NEW;                      // 5.1.7.0 (2010/06/01)
200                    append          = "false";                      // 5.8.5.0 (2015/03/66)
201            }
202    
203            /**
204             * リンクを作æ?しますã?
205             *
206             * @og.rev 4.2.4.0 (2008/07/01) keys,vals,rtnKeysが設定されてã�?�ªã�??合ã?外å?のog:columnタグのname値を設定するよã�?�«変更
207             * @og.rev 5.1.7.0 (2010/06/01) 引数にcommandを追åŠ?
208             * @og.rev 5.2.1.0 (2010/10/01) height、width にはã€?px" などの単位を付ける前提での対å¿?
209             * @og.rev 5.2.2.0 (2010/11/01) height、width ã�?null の場合ã?、シングルクオートをつけなã�??
210             * @og.rev 5.8.5.0 (2015/03/06) append追åŠ?
211             *
212             * @param       useKey [true:KEY付き/false:KEY無し]
213             *
214             * @return      リンクタグæ–?­—å?
215             */
216            private String makePopup( final boolean useKey ) {
217                    StringBuilder rtn = new StringBuilder();
218    //              rtn.append( "ogPopup( '" ).append( get( "href" ) ).append( "'," );
219    //              rtn.append( height ).append( "," ).append( width ).append( "," );
220                    // 5.2.1.0 (2010/10/01)  px を付けると数字ではなくなるためã?シングルクオーãƒ??ションでくくるã?
221                    rtn.append( "ogPopup( '" ).append( get( "href" ) ).append( "'," );
222                    // 5.2.2.0 (2010/11/01) height、width ã�?null の場合ã?、シングルクオートをつけなã�??
223                    if( height != null ) { rtn.append( "'" ).append( height ).append( "'" ); }
224                    else {                             rtn.append( "null" ); }
225                    rtn.append( "," );
226                    if( width != null ) {  rtn.append( "'" ).append( width ).append( "'" );  }
227                    else {                             rtn.append( "null" ); }
228                    rtn.append( "," );
229    
230                    String columnName = null; //4.2.4.0 2008/07/01
231                    if( keys != null && keys.length > 0 ) {
232                            rtn.append( "new Array(" );
233                            addQuote( rtn, keys[0], false );
234                            rtn.append( "," );
235                            addQuote( rtn, vals[0], false );
236                            for( int i = 1; i < keys.length; i++ ) {
237                                    rtn.append( "," );
238                                    addQuote( rtn, keys[i], false );
239                                    rtn.append( "," );
240                                    addQuote( rtn, vals[i], false );
241                            }
242                            rtn.append( ")," );
243                    }
244                    else {
245                            ColumnTag outerColumn = (ColumnTag) findAncestorWithClass( this, ColumnTag.class );
246                            columnName = ( outerColumn == null ) ? null : outerColumn.getName();
247                            if( columnName != null ) {
248                                    rtn.append( "new Array('XNAME','" );
249                                    rtn.append( columnName );
250                                    rtn.append( "','XVALUE'," );
251                                    rtn.append( columnName );
252                                    rtn.append( ".value" );
253                                    rtn.append( ")," );
254                            }
255                            else {
256                                    rtn.append( "null," );
257                            }
258                    }
259                    rtn.append( "" );
260    
261                    if( rtnKeys != null && rtnKeys.length > 0 ) {
262                            rtn.append( "this,new Array(" );
263                            addQuote( rtn, rtnKeys[0], useKey );
264                            for( int i = 1; i < rtnKeys.length; i++ ) {
265                                    rtn.append( "," );
266                                    addQuote( rtn, rtnKeys[i], useKey );
267                            }
268                            rtn.append( ")" );
269                    }
270                    else if( columnName != null ) {
271                            rtn.append( "this,new Array('" );
272                            rtn.append( columnName );
273                            rtn.append( "')" );
274                    }
275                    else {
276                            rtn.append( "null,null" );
277                    }
278    
279                    // 5.1.7.0 (2010/06/01) 引数にcommandを追åŠ?
280                    // 5.8.5.0 (2015/03/06) append追åŠ?
281    //              rtn.append( ");" );
282    //              rtn.append( ",'" ).append( command ).append( "');" );
283                    rtn.append( ",'" ).append( command ).append( "'");
284                    rtn.append( ",'" ).append( append ).append( "');" );
285    
286                    if( imgsrc == null ) {
287                            set( "type"   , "button" );
288                            set( "body"   , nval( getMsglbl(),DEF_BODY) );
289                            set( "onClick", rtn.toString() );
290                            set( "style"  , nval( get( "style" ),DEF_STYLE) );
291                            return XHTMLTag.button( getAttributes() ) ;
292                    }
293                    else {
294                            set( "src"    , imgsrc );
295                            set( "title"  , getMsglbl() );
296                            set( "onClick", rtn.toString() );
297                            set( "style"  , get( "style" ) );
298                            return XHTMLTag.img( getAttributes() ) ;
299                    }
300            }
301    
302            /**
303             * 引数 val の設定å?を設定する簡易メソãƒ?ƒ‰
304             *
305             * @param       buf             結果をæ?納するStringBuilderオブジェクãƒ?
306             * @param       val             設定å?
307             * @param       useKey  [true:KEY付き/false:KEY無し]
308             *
309             * @return      (引数のバッファと同じオブジェクãƒ?
310             */
311            private StringBuilder addQuote( final StringBuilder buf, final String val, final boolean useKey ) {
312                    if( useKey ) {
313                            if( val != null && val.endsWith( ".value" ) ) {
314                                    buf.append( val.substring( 0,val.length()-6 ) ).append( "__{I}.value" );
315                            }
316                            else {
317                                    buf.append( "'" ).append( val ).append( "__{I}'" );
318                            }
319                    }
320                    else {
321                            if( val != null && val.endsWith( ".value" ) ) {
322                                    if( val.charAt(0) == '[' ) {
323                                            buf.append( val.substring( 1,val.length()-7 ) ).append( "__{I}.value" );
324                                    }
325                                    else {
326                                            buf.append( val );
327                                    }
328                            }
329                            else {
330                                    buf.append( "'" ).append( val ).append( "'" );
331                            }
332                    }
333                    return buf ;
334            }
335    
336            /**
337             * 画面?©?¤とhref から、指定ã??µ?²?¬を作æ?しますã?
338             */
339            private void makeGamenLink() {
340                    if( gamenId == null || gamenId.length() == 0 ) { return ; }
341    
342                    GUIInfo guiInfo = getGUIInfo( gamenId );                // 4.0.0 (2005/01/31)
343                    if( guiInfo == null ) { return ; }      // 見つからなã�??合ã?、アクセス不可
344    
345                    String address = guiInfo.getRealAddress( get( "href" ) );
346                    String url = getRequestParameter( address );
347                    set( "href",url );
348    
349                    if( get( "title" ) == null ) {
350                            set( "title","To:" + guiInfo.getLabel() );
351                    }
352            }
353    
354            /**
355             * 【TAG】この要ç´?‚’リンクの対象とするための名前を指定しますã?
356             *
357             * @og.tag こã?要ç´?‚’リンクの対象とするための名前を指定しますã?
358             *
359             * @param       name 名前
360             */
361            public void setName( final String name ) {
362                    set( "name",getRequestParameter( name ) );
363            }
364    
365            /**
366             * 【TAG】リンクをつけたã�?‚«ラãƒ?‚’æŒ?®šしますã?
367             *
368             * @og.tag
369             * こã?カラãƒ?��のTableModelに対してã€?ViewLink タグが存在する場合ã?,
370             * リンクを張りますã?
371             *
372             * @param       clm カラãƒ?��
373             */
374            public void setColumn( final String clm ) {
375                    column = nval( getRequestParameter( clm ),column );
376            }
377    
378            /**
379             * 【TAG】画面ID属æ?を登録しますã?
380             *
381             * @og.tag
382             * gamenId 属æ?は、画面IDをキーに、実アドレスを求めるã?に使用しますã?
383             * 画面IDが指定された場合ã?、実アドレスに変換する。指定されなã�??合ã?ã€?
384             * href 属æ?をそのままリンクæƒ??を作æ?しますã?
385             * 画面IDを指定するå?合ã? href は、JSPファイルå�?例えば、index.jsp ç­?ですã?
386             *
387             * @param       id      画面ID
388             */
389            public void setGamenId( final String id ) {
390                    gamenId = nval( getRequestParameter( id ),gamenId );
391            }
392    
393            /**
394             * 【TAG】ã?ãƒ??アãƒ??先ã?URLを指定しまã�?初期値:index.jsp)ã€?
395             *
396             * @og.tag
397             * 通常、gamenId を指定してã�?‚‹場合ã?、それ以é™?index.jsp , result.jsp など)を指定しますã?
398             * 通常のリンクの場合ã?GAMENID/href とã�?�†アドレスに合æ?されますã?( GE0001/result.jsp など )
399             * (正確には、画面IDではなくã?対応する画面ADDRESSを使用しますã?)
400             * ポップアãƒ??専用のリンクなので、å?期å?は、index.jsp ですã?
401             *
402             * @param       href ポップアãƒ??先ã?URL
403             */
404            public void setHref( final String href ) {
405                    set( "href",nval( getRequestParameter( href ),this.href ) );
406            }
407    
408            /**
409             * 【TAG】ã?ãƒ??アãƒ??先ã?æ–?­—コードセãƒ?ƒˆを指定しますã?
410             *
411             * @og.tag ポップアãƒ??先ã?æ–?­—コードセãƒ?ƒˆを指定しますã?
412             *
413             * @param       charset æ–?­—コードセãƒ?ƒˆ
414             */
415            public void setCharset( final String charset ) {
416                    set( "charset",getRequestParameter( charset ) );
417            }
418    
419            /**
420             * 【TAG】ã?ãƒ??アãƒ??先ã?表示ターゲãƒ?ƒˆを指定しまã�?初期値:CONTENTS)ã€?
421             *
422             * @og.tag ポップアãƒ??先ã?表示ターゲãƒ?ƒˆを指定しますã?
423             *
424             * @param       target 表示ターゲãƒ?ƒˆ
425             */
426            public void setTarget( final String target ) {
427                    set( "target",nval( getRequestParameter( target ),this.target ) );
428            }
429    
430            /**
431             * 【TAG】ã?ãƒ??アãƒ??先に渡すå?力キー配å?をCSV形式でè¤?•°æŒ?®šしますã?
432             *
433             * @og.tag ポップアãƒ??先に渡すå?力キー配å?を指定しますã?
434             * åˆ?§£方法ã?、CSV変数をå?にåˆ?§£してから、getRequestParameter で値を取得しますã?
435             * こうしなã�?�¨ãƒ??タ自身にカンマを持ってã�?‚‹場合にåˆ?§£をミスる為ですã?
436             *
437             * @param       key 渡すå?力キー配å?(CSV形å¼?
438             */
439            public void setKeys( final String key ) {
440                    keys = getCSVParameter( key );
441            }
442    
443            /**
444             * 【TAG】ã?ãƒ??アãƒ??先に渡すå?配å?をCSV形式でè¤?•°æŒ?®šしますã?
445             *
446             * @og.tag ポップアãƒ??先に渡すå?配å?を指定しますã?
447             * åˆ?§£方法ã?、CSV変数をå?にåˆ?§£してから、getRequestParameter で値を取得しますã?
448             * こうしなã�?�¨ãƒ??タ自身にカンマを持ってã�?‚‹場合にåˆ?§£をミスる為ですã?
449             *
450             * @param       val 渡すå?配å?(CSV形å¼?
451             */
452            public void setVals( final String val ) {
453                    vals = getCSVParameter( val );
454            }
455    
456            /**
457             * 【TAG】ã?ãƒ??アãƒ??先より受け取るキー配å?をCSV形式でè¤?•°æŒ?®šしますã?
458             *
459             * @og.tag ポップアãƒ??先より受け取るキー配å?を指定しますã?
460             * åˆ?§£方法ã?、CSV変数をå?にåˆ?§£してから、getRequestParameter で値を取得しますã?
461             * こうしなã�?�¨ãƒ??タ自身にカンマを持ってã�?‚‹場合にåˆ?§£をミスる為ですã?
462             *
463             * @param       key 受け取るキー配å?(CSV形å¼?
464             */
465            public void setRtnKeys( final String key ) {
466                    rtnKeys = getCSVParameter( key );
467            }
468    
469            /**
470             * 【TAG】リンクを張ã‚?true or 1)/張らなã�?false or 0)の設定をæŒ?®šしまã�?初期値:true)ã€?
471             *
472             * @og.tag
473             * リンクを張るå?合ã?ã€?true"(またã? "1") リンクを張らなã�?
474             * 場合ã?, "true以å¤?(またã? "0")をセãƒ?ƒˆしますã?
475             * 初期値はã€?"true"(リンクを張ã‚?ですã?
476             * さらに、[カラãƒ?��] で、動çš?�«カラãƒ??値で、リンクを張るã?張らなã�?‚’
477             * 選ぶ事が可能になりますã?値はã€?true"(またã? "1") で、ã?ークしますã?
478             * ただしã?単独 linkタグ時ã?使用できませんã€?
479             * 追è¨?3.5.2.0 (2003/10/20)?šmarkList属æ?に、å?ç�?¯¾象æ–?­—å?郡を指定できますã?
480             * これにより、リンクをå?ç�?�™るかどã�?�‹の判断がã?true,1 以外にも使用できるようになりましたã€?
481             *
482             * @param       flag リンクの設定[true:リンクを張ã‚?それ以å¤?リンクを張らない]
483             */
484            public void setOnMark( final String flag ) {
485                    onMark = nval( getRequestParameter( flag ),onMark );
486            }
487    
488            /**
489             * 【TAG】å?ç�?�™るã?ークをã?"|"区åˆ?‚Šのæ–?­—å?でæŒ?®šしますã?
490             *
491             * @og.tag
492             * markListで与えられた文字å?に、onMarkæ–?­—å?(大æ–?­?小文字ã?区別あり)ã�?
493             * 含まれてã�?‚Œば、å?ç�?�—ますã?
494             * 例えばã€?A","B","C" とã�?�†æ–?­—å?がã?onMark でæŒ?®šされた
495             * 場合に処ç�?�™るよã�?�«したã�??合ã?ã€?A|B|C" をセãƒ?ƒˆしますã?
496             * markList には、[カラãƒ?��]æŒ?®šが可能ですã?(ただしã?単独 linkタグ時ã?除ã�?
497             * 初期値はã€?"true|TRUE|1"ですã?
498             *
499             * @param       list 処ç�?�™るã?ーク(indexOf による含ã‚?含まなã�?ˆ¤å®?
500             */
501            public void setMarkList( final String list ) {
502                    markList = nval( getRequestParameter( list ),markList );
503            }
504    
505            /**
506             * 【TAG】ダイアログの縦å¹?‚’ピクセル数でæŒ?®šしますã?
507             *
508             * @og.tag
509             * 縦å¹?‚’æŒ?®šしますã?単位も含めて入力してくださいã€?
510             * 設定しなã�??合ã?、ogPopup JavaScript のå†?ƒ¨初期値が採用されますã?
511             *
512             * @og.rev 5.2.1.0 (2010/10/01) height、width にはã€?px" などの単位を付ける前提での対å¿?
513             *
514             * @param   ht ãƒ?‚¤アログの縦å¹?ピクセル数)
515             */
516            public void setHeight( final String ht ) {
517                    height = nval( getRequestParameter( ht ),height );
518                    if( height != null && ! height.endsWith( "px" ) ) { height += "px"; }   // 5.2.1.0 (2010/10/01)
519            }
520    
521            /**
522             * 【TAG】ダイアログの横å¹?‚’ピクセル数でæŒ?®šしますã?
523             *
524             * @og.tag
525             * 横å¹?‚’æŒ?®šしますã?単位も含めて入力してくださいã€?
526             * 設定しなã�??合ã?、ogPopup JavaScript のå†?ƒ¨初期値が採用されますã?
527             *
528             * @og.rev 5.2.1.0 (2010/10/01) height、width にはã€?px" などの単位を付ける前提での対å¿?
529             *
530             * @param   wh ãƒ?‚¤アログの横å¹?ピクセル数)
531             */
532            public void setWidth( final String wh ) {
533                    width = nval( getRequestParameter( wh ),width );
534                    if( width != null && ! width.endsWith( "px" ) ) { width += "px"; }      // 5.2.1.0 (2010/10/01)
535            }
536    
537            /**
538             * 【TAG】表示させる画像ã?URLを指定しますã?
539             *
540             * @og.tag
541             * こã?属æ?を設定すると、è?動的に イメージリンクでの onClick属æ?で
542             * ポップアãƒ??の起動画面を作æ?しますã?
543             * こã?属æ?が設定されてã�?�ªã�??合ã?、button での起動になりますã?
544             *
545             * @param   src 画像ã?URL
546             */
547            public void setSrc( final String src ) {
548                    imgsrc = nval( getRequestParameter( src ),imgsrc );
549            }
550    
551            /**
552             * 【TAGã€?通常使ã�?�¾せん)処ç�??実行をæŒ?®šすã‚?command を設定できまã�?初期値:NEW)ã€?
553             *
554             * @og.tag
555             * ここでæŒ?®šされたcommandは、ã?ãƒ??アãƒ??画面の引数として渡されますã?
556             * 初期値は、NEW ですã?
557             *
558             * @og.rev 5.1.7.0 (2010/06/01) 新規作æ?
559             *
560             * @param       cmd コマンãƒ?
561             */
562            public void setCommand( final String cmd ) {
563                    command = nval( getRequestParameter( cmd ),command );
564            }
565            
566            /**
567             * 【TAG】返り値をキャレãƒ?ƒˆ位置に追記すã‚?true)/しなã�?false)の設定をæŒ?®šしまã�?初期値:false)ã€?
568             *
569             * @og.tag
570             * ポップアãƒ??からの返り値をã?å…??値と置換するã?ではなくã?キャレãƒ?ƒˆ位置に挿入するかどã�?�‹を指定しますã?
571             * 
572             * @og.rev 5.8.5.0 (2015/02/06)
573             *
574             * @param       flg 返り値のキャレãƒ?ƒˆ位置に追記設[true:追è¨?それ以å¤?置換]
575             */
576            public void setAppend( final String flg ) {
577                    append = nval( getRequestParameter( flg ),append );
578            }
579    
580            /**
581             * こã?オブジェクトã?æ–?­—å?表現を返しますã?
582             * 基本çš?�«ãƒ?ƒ�ãƒ?‚°目çš?�«使用しますã?
583             *
584             * @return こã?クラスのæ–?­—å?表現
585             */
586            @Override
587            public String toString() {
588                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
589                                    .println( "VERSION"             ,VERSION        )
590                                    .println( "column"              ,column         )
591                                    .println( "gamenId"             ,gamenId        )
592                                    .println( "href"                ,href           )
593                                    .println( "target"              ,target         )
594                                    .println( "onMark"              ,onMark         )
595                                    .println( "markList"    ,markList       )
596                                    .println( "height"              ,height         )
597                                    .println( "width"               ,width          )
598                                    .println( "keys"                ,keys           )
599                                    .println( "vals"                ,vals           )
600                                    .println( "rtnKeys"             ,rtnKeys        )
601                                    .println( "Other..."    ,getAttributes().getAttribute() )
602                                    .fixForm().toString()
603                            + HybsSystem.CR
604                            + super.toString() ;
605            }
606    }