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 */ 016package org.opengion.hayabusa.taglib; 017 018import static org.opengion.fukurou.util.StringUtil.nval; 019 020import org.opengion.fukurou.util.XHTMLTag; 021import org.opengion.hayabusa.common.HybsSystem; 022import 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 * ●形式:<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 * @keys、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 * Akeys、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 */ 109public 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 private static final String DEF_STYLE = "width:20px;text-align:center;padding:0;" ; // 5.9.4.3 (2016/01/15) padding 118 119 private String column = null; 120 private String gamenId = null; 121 private String href = "index.jsp"; 122 private String target = "CONTENTS"; 123 private String onMark = "true"; // true または 1 124 private String markList = "true|TRUE|1"; // true または 1 125 private String height = null; 126 private String width = null; 127 private String imgsrc = null; 128 private String[] keys = null; 129 private String[] vals = null; 130 private String[] rtnKeys = null; 131 132 /** command 引数に渡す事の出来る コマンド 新規 {@value} */ 133 private static final String CMD_NEW = "NEW" ; // 5.1.7.0 (2010/06/01) 134 private String command = CMD_NEW; // 5.1.7.0 (2010/06/01) 135 136 private String append = "false"; // 5.8.5.0 (2015/03/06) 137 138 private static String VALUE_PRE = "this.form."; // 5.9.6.0 (2016/03/01) 139 140 /** 141 * Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 142 * 143 * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応 144 * 145 * @return 後続処理の指示 146 */ 147 @Override 148 public int doEndTag() { 149 // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応 150 if( useTag() ) { 151 makeGamenLink(); 152 153 // GAMENID属性のURLへの自動セットは行わない。 154 ViewMarkerTag viewMark = (ViewMarkerTag)findAncestorWithClass( this,ViewMarkerTag.class ); 155 if( viewMark != null ) { 156 set( "onMark" ,onMark ); 157 set( "markList",markList ); 158 set( "body" ,makePopup( true ) ); 159 160 if( column != null && column.length() > 0 ) { 161 set( "column" ,column ); // 4.0.0 (2005/08/31) 同一カラムの複数登録を許可します。 162 viewMark.addAttribute( getAttributes() ); 163 } 164 } 165 else { 166 if( markList.indexOf( onMark ) >= 0 ) { 167 jspPrint( makePopup( false ) ); 168 } 169 } 170 } 171 return(EVAL_PAGE); 172 } 173 174 /** 175 * 使用しません。 176 * 177 * @return (null 固定) 178 */ 179 @Override 180 protected String makeTag() { return null; } 181 182 /** 183 * タグリブオブジェクトをリリースします。 184 * キャッシュされて再利用されるので、フィールドの初期設定を行います。 185 * 186 */ 187 @Override 188 protected void release2() { 189 super.release2(); 190 column = null; 191 gamenId = null; 192 href = "index.jsp"; 193 target = "CONTENTS"; 194 onMark = "true"; // true または 1 195 markList = "true|TRUE|1"; // true または 1 196 keys = null; 197 vals = null; 198 rtnKeys = null; 199 height = null; 200 width = null; 201 imgsrc = null; 202 command = CMD_NEW; // 5.1.7.0 (2010/06/01) 203 append = "false"; // 5.8.5.0 (2015/03/66) 204 } 205 206 /** 207 * リンクを作成します。 208 * 209 * @og.rev 4.2.4.0 (2008/07/01) keys,vals,rtnKeysが設定されていない場合、外側のog:columnタグのname値を設定するように変更 210 * @og.rev 5.1.7.0 (2010/06/01) 引数にcommandを追加 211 * @og.rev 5.2.1.0 (2010/10/01) height、width には、"px" などの単位を付ける前提での対応 212 * @og.rev 5.2.2.0 (2010/11/01) height、width が null の場合は、シングルクオートをつけない。 213 * @og.rev 5.8.5.0 (2015/03/06) append追加 214 * @og.rev 5.9.16.1 (2017/01/20) this.formの追加 215 * 216 * @param useKey [true:KEY付き/false:KEY無し] 217 * 218 * @return リンクタグ文字列 219 */ 220 private String makePopup( final boolean useKey ) { 221 StringBuilder rtn = new StringBuilder(); 222// rtn.append( "ogPopup( '" ).append( get( "href" ) ).append( "'," ); 223// rtn.append( height ).append( "," ).append( width ).append( "," ); 224 // 5.2.1.0 (2010/10/01) px を付けると数字ではなくなるため、シングルクオーテーションでくくる。 225 rtn.append( "ogPopup( '" ).append( get( "href" ) ).append( "'," ); 226 // 5.2.2.0 (2010/11/01) height、width が null の場合は、シングルクオートをつけない。 227 if( height != null ) { rtn.append( "'" ).append( height ).append( "'" ); } 228 else { rtn.append( "null" ); } 229 rtn.append( "," ); 230 if( width != null ) { rtn.append( "'" ).append( width ).append( "'" ); } 231 else { rtn.append( "null" ); } 232 rtn.append( "," ); 233 234 String columnName = null; //4.2.4.0 2008/07/01 235 if( keys != null && keys.length > 0 ) { 236 rtn.append( "new Array(" ); 237 addQuote( rtn, keys[0], false ); 238 rtn.append( "," ); 239 addQuote( rtn, vals[0], false ); 240 for( int i = 1; i < keys.length; i++ ) { 241 rtn.append( "," ); 242 addQuote( rtn, keys[i], false ); 243 rtn.append( "," ); 244 addQuote( rtn, vals[i], false ); 245 } 246 rtn.append( ")," ); 247 } 248 else { 249 ColumnTag outerColumn = (ColumnTag) findAncestorWithClass( this, ColumnTag.class ); 250 columnName = ( outerColumn == null ) ? null : outerColumn.getName(); 251 if( columnName != null ) { 252 rtn.append( "new Array('XNAME','" ); 253 rtn.append( columnName ); 254 rtn.append( "','XVALUE'," ); 255 rtn.append( VALUE_PRE ); // 5.9.16.1 (2017/01/20) 256 rtn.append( columnName ); 257 rtn.append( ".value" ); 258 rtn.append( ")," ); 259 } 260 else { 261 rtn.append( "null," ); 262 } 263 } 264 rtn.append( "" ); 265 266 if( rtnKeys != null && rtnKeys.length > 0 ) { 267 rtn.append( "this,new Array(" ); 268 addQuote( rtn, rtnKeys[0], useKey ); 269 for( int i = 1; i < rtnKeys.length; i++ ) { 270 rtn.append( "," ); 271 addQuote( rtn, rtnKeys[i], useKey ); 272 } 273 rtn.append( ")" ); 274 } 275 else if( columnName != null ) { 276 rtn.append( "this,new Array('" ); 277 rtn.append( columnName ); 278 rtn.append( "')" ); 279 } 280 else { 281 rtn.append( "null,null" ); 282 } 283 284 // 5.1.7.0 (2010/06/01) 引数にcommandを追加 285 // 5.8.5.0 (2015/03/06) append追加 286// rtn.append( ");" ); 287// rtn.append( ",'" ).append( command ).append( "');" ); 288 rtn.append( ",'" ).append( command ).append( "'"); 289 rtn.append( ",'" ).append( append ).append( "');" ); 290 291 if( imgsrc == null ) { 292 set( "type" , "button" ); 293 set( "body" , nval( getMsglbl(),DEF_BODY) ); 294 set( "onClick", rtn.toString() ); 295 set( "style" , nval( get( "style" ),DEF_STYLE) ); 296 return XHTMLTag.button( getAttributes() ) ; 297 } 298 else { 299 set( "src" , imgsrc ); 300 set( "title" , getMsglbl() ); 301 set( "onClick", rtn.toString() ); 302 set( "style" , get( "style" ) ); 303 return XHTMLTag.img( getAttributes() ) ; 304 } 305 } 306 307 /** 308 * 引数 val の設定値を設定する簡易メソッド 309 * 310 * @og.rev 5.9.6.0 (2016/03/01) valueの取得の形を少し変える処理をここに入れる 311 * 312 * @param buf 結果を格納するStringBuilderオブジェクト 313 * @param val 設定値 314 * @param useKey [true:KEY付き/false:KEY無し] 315 * 316 * @return (引数のバッファと同じオブジェクト) 317 */ 318 private StringBuilder addQuote( final StringBuilder buf, final String val, final boolean useKey ) { 319 // 5.9.6.0 this.form.対応 320 String val2 = ""; 321 if( val != null && val.endsWith( ".value" ) && val.indexOf( "." ) == val.lastIndexOf( "." ) ){ 322 val2 = VALUE_PRE; 323 } 324 325 326 if( useKey ) { 327 if( val != null && val.endsWith( ".value" ) ) { 328// buf.append( val.substring( 0,val.length()-6 ) ).append( "__{I}.value" ); 329 buf.append( val2 ).append( val.substring( 0,val.length()-6 ) ).append( "__{I}.value" ); // 5.9.6.0 330 } 331 else { 332 buf.append( "'" ).append( val ).append( "__{I}'" ); 333 } 334 } 335 else { 336 if( val != null && val.endsWith( ".value" ) ) { 337 if( val.charAt(0) == '[' ) { 338// buf.append( val.substring( 1,val.length()-7 ) ).append( "__{I}.value" ); 339 buf.append( val2 ).append( val.substring( 1,val.length()-7 ) ).append( "__{I}.value" ); // 5.9.6.0 340 } 341 else { 342// buf.append( val ); 343 buf.append( val2 ).append( val ); // 5.9.6.0 344 } 345 } 346 else { 347 buf.append( "'" ).append( val ).append( "'" ); 348 } 349 } 350 return buf ; 351 } 352 353 /** 354 * 画面IDとhref から、指定のURLを作成します。 355 */ 356 private void makeGamenLink() { 357 if( gamenId == null || gamenId.length() == 0 ) { return ; } 358 359 GUIInfo guiInfo = getGUIInfo( gamenId ); // 4.0.0 (2005/01/31) 360 if( guiInfo == null ) { return ; } // 見つからない場合は、アクセス不可 361 362 String address = guiInfo.getRealAddress( get( "href" ) ); 363 String url = getRequestParameter( address ); 364 set( "href",url ); 365 366 if( get( "title" ) == null ) { 367 set( "title","To:" + guiInfo.getLabel() ); 368 } 369 } 370 371 /** 372 * 【TAG】この要素をリンクの対象とするための名前を指定します。 373 * 374 * @og.tag この要素をリンクの対象とするための名前を指定します。 375 * 376 * @param name 名前 377 */ 378 public void setName( final String name ) { 379 set( "name",getRequestParameter( name ) ); 380 } 381 382 /** 383 * 【TAG】リンクをつけたいカラムを指定します。 384 * 385 * @og.tag 386 * このカラム名のTableModelに対して、 ViewLink タグが存在する場合は, 387 * リンクを張ります。 388 * 389 * @param clm カラム名 390 */ 391 public void setColumn( final String clm ) { 392 column = nval( getRequestParameter( clm ),column ); 393 } 394 395 /** 396 * 【TAG】画面ID属性を登録します。 397 * 398 * @og.tag 399 * gamenId 属性は、画面IDをキーに、実アドレスを求めるのに使用します。 400 * 画面IDが指定された場合は、実アドレスに変換する。指定されない場合は、 401 * href 属性をそのままリンク情報を作成します。 402 * 画面IDを指定する場合の href は、JSPファイル名(例えば、index.jsp 等)です。 403 * 404 * @param id 画面ID 405 */ 406 public void setGamenId( final String id ) { 407 gamenId = nval( getRequestParameter( id ),gamenId ); 408 } 409 410 /** 411 * 【TAG】ポップアップ先のURLを指定します(初期値:index.jsp)。 412 * 413 * @og.tag 414 * 通常、gamenId を指定している場合は、それ以降(index.jsp , result.jsp など)を指定します。 415 * 通常のリンクの場合、GAMENID/href というアドレスに合成されます。( GE0001/result.jsp など ) 416 * (正確には、画面IDではなく、対応する画面ADDRESSを使用します。) 417 * ポップアップ専用のリンクなので、初期値は、index.jsp です。 418 * 419 * @param href ポップアップ先のURL 420 */ 421 public void setHref( final String href ) { 422 set( "href",nval( getRequestParameter( href ),this.href ) ); 423 } 424 425 /** 426 * 【TAG】ポップアップ先の文字コードセットを指定します。 427 * 428 * @og.tag ポップアップ先の文字コードセットを指定します。 429 * 430 * @param charset 文字コードセット 431 */ 432 public void setCharset( final String charset ) { 433 set( "charset",getRequestParameter( charset ) ); 434 } 435 436 /** 437 * 【TAG】ポップアップ先の表示ターゲットを指定します(初期値:CONTENTS)。 438 * 439 * @og.tag ポップアップ先の表示ターゲットを指定します。 440 * 441 * @param target 表示ターゲット 442 */ 443 public void setTarget( final String target ) { 444 set( "target",nval( getRequestParameter( target ),this.target ) ); 445 } 446 447 /** 448 * 【TAG】ポップアップ先に渡す入力キー配列をCSV形式で複数指定します。 449 * 450 * @og.tag ポップアップ先に渡す入力キー配列を指定します。 451 * 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 452 * こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。 453 * 454 * @param key 渡す入力キー配列(CSV形式) 455 */ 456 public void setKeys( final String key ) { 457 keys = getCSVParameter( key ); 458 } 459 460 /** 461 * 【TAG】ポップアップ先に渡す値配列をCSV形式で複数指定します。 462 * 463 * @og.tag ポップアップ先に渡す値配列を指定します。 464 * 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 465 * こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。 466 * 467 * @param val 渡す値配列(CSV形式) 468 */ 469 public void setVals( final String val ) { 470 vals = getCSVParameter( val ); 471 } 472 473 /** 474 * 【TAG】ポップアップ先より受け取るキー配列をCSV形式で複数指定します。 475 * 476 * @og.tag ポップアップ先より受け取るキー配列を指定します。 477 * 分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。 478 * こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。 479 * 480 * @param key 受け取るキー配列(CSV形式) 481 */ 482 public void setRtnKeys( final String key ) { 483 rtnKeys = getCSVParameter( key ); 484 } 485 486 /** 487 * 【TAG】リンクを張る(true or 1)/張らない(false or 0)の設定を指定します(初期値:true)。 488 * 489 * @og.tag 490 * リンクを張る場合は、"true"(または "1") リンクを張らない 491 * 場合は, "true以外"(または "0")をセットします。 492 * 初期値は、 "true"(リンクを張る)です。 493 * さらに、[カラム名] で、動的にカラムの値で、リンクを張る、張らないを 494 * 選ぶ事が可能になります。値は、"true"(または "1") で、マークします。 495 * ただし、単独 linkタグ時は使用できません。 496 * 追記 3.5.2.0 (2003/10/20):markList属性に、処理対象文字列郡を指定できます。 497 * これにより、リンクを処理するかどうかの判断が、true,1 以外にも使用できるようになりました。 498 * 499 * @param flag リンクの設定[true:リンクを張る/それ以外:リンクを張らない] 500 */ 501 public void setOnMark( final String flag ) { 502 onMark = nval( getRequestParameter( flag ),onMark ); 503 } 504 505 /** 506 * 【TAG】処理するマークを、"|"区切りの文字列で指定します。 507 * 508 * @og.tag 509 * markListで与えられた文字列に、onMark文字列(大文字/小文字の区別あり)が 510 * 含まれていれば、処理します。 511 * 例えば、"A","B","C" という文字列が、onMark で指定された 512 * 場合に処理するようにしたい場合は、"A|B|C" をセットします。 513 * markList には、[カラム名]指定が可能です。(ただし、単独 linkタグ時は除く) 514 * 初期値は、 "true|TRUE|1"です。 515 * 516 * @param list 処理するマーク(indexOf による含む/含まない判定) 517 */ 518 public void setMarkList( final String list ) { 519 markList = nval( getRequestParameter( list ),markList ); 520 } 521 522 /** 523 * 【TAG】ダイアログの縦幅をピクセル数で指定します。 524 * 525 * @og.tag 526 * 縦幅を指定します。単位も含めて入力してください。 527 * 設定しない場合は、ogPopup JavaScript の内部初期値が採用されます。 528 * 529 * @og.rev 5.2.1.0 (2010/10/01) height、width には、"px" などの単位を付ける前提での対応 530 * 531 * @param ht ダイアログの縦幅(ピクセル数) 532 */ 533 public void setHeight( final String ht ) { 534 height = nval( getRequestParameter( ht ),height ); 535 if( height != null && ! height.endsWith( "px" ) ) { height += "px"; } // 5.2.1.0 (2010/10/01) 536 } 537 538 /** 539 * 【TAG】ダイアログの横幅をピクセル数で指定します。 540 * 541 * @og.tag 542 * 横幅を指定します。単位も含めて入力してください。 543 * 設定しない場合は、ogPopup JavaScript の内部初期値が採用されます。 544 * 545 * @og.rev 5.2.1.0 (2010/10/01) height、width には、"px" などの単位を付ける前提での対応 546 * 547 * @param wh ダイアログの横幅(ピクセル数) 548 */ 549 public void setWidth( final String wh ) { 550 width = nval( getRequestParameter( wh ),width ); 551 if( width != null && ! width.endsWith( "px" ) ) { width += "px"; } // 5.2.1.0 (2010/10/01) 552 } 553 554 /** 555 * 【TAG】表示させる画像のURLを指定します。 556 * 557 * @og.tag 558 * この属性を設定すると、自動的に イメージリンクでの onClick属性で 559 * ポップアップの起動画面を作成します。 560 * この属性が設定されていない場合は、button での起動になります。 561 * 562 * @param src 画像のURL 563 */ 564 public void setSrc( final String src ) { 565 imgsrc = nval( getRequestParameter( src ),imgsrc ); 566 } 567 568 /** 569 * 【TAG】(通常使いません)処理の実行を指定する command を設定できます(初期値:NEW)。 570 * 571 * @og.tag 572 * ここで指定されたcommandは、ポップアップ画面の引数として渡されます。 573 * 初期値は、NEW です。 574 * 575 * @og.rev 5.1.7.0 (2010/06/01) 新規作成 576 * 577 * @param cmd コマンド 578 */ 579 public void setCommand( final String cmd ) { 580 command = nval( getRequestParameter( cmd ),command ); 581 } 582 583 /** 584 * 【TAG】返り値をキャレット位置に追記する(true)/しない(false)の設定を指定します(初期値:false)。 585 * 586 * @og.tag 587 * ポップアップからの返り値を、元の値と置換するのではなく、キャレット位置に挿入するかどうかを指定します。 588 * 589 * @og.rev 5.8.5.0 (2015/02/06) 590 * 591 * @param flg 返り値のキャレット位置に追記設[true:追記/それ以外:置換] 592 */ 593 public void setAppend( final String flg ) { 594 append = nval( getRequestParameter( flg ),append ); 595 } 596 597 /** 598 * このオブジェクトの文字列表現を返します。 599 * 基本的にデバッグ目的に使用します。 600 * 601 * @return このクラスの文字列表現 602 */ 603 @Override 604 public String toString() { 605 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 606 .println( "VERSION" ,VERSION ) 607 .println( "column" ,column ) 608 .println( "gamenId" ,gamenId ) 609 .println( "href" ,href ) 610 .println( "target" ,target ) 611 .println( "onMark" ,onMark ) 612 .println( "markList" ,markList ) 613 .println( "height" ,height ) 614 .println( "width" ,width ) 615 .println( "keys" ,keys ) 616 .println( "vals" ,vals ) 617 .println( "rtnKeys" ,rtnKeys ) 618 .println( "Other..." ,getAttributes().getAttribute() ) 619 .fixForm().toString() 620 + HybsSystem.CR 621 + super.toString() ; 622 } 623}