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.hayabusa.resource.GUIInfo; 021 import org.opengion.fukurou.util.XHTMLTag; 022 import org.opengion.fukurou.util.TagBuffer; 023 import org.opengion.fukurou.util.StringUtil ; 024 025 import static org.opengion.fukurou.util.StringUtil.nval ; 026 import org.opengion.fukurou.util.EnumType ; 027 028 import java.util.Locale ; 029 030 /** 031 * 戻るã?タン/戻るリンクを表示ã™ã‚‹HTML拡張タグã§ã?通常ã¯custom/query_info.jspã«çµ?¾¼ã¿)ã€? 032 * 033 * custom/query_info.jsp ã«çµ?¿è¾¼ã‚?“ã¨ã§ã€å?ã¦ã®query.jspã«çµ?¾¼ã‚?º‹ãŒã§ãã¾ã™ã? 034 * 戻るã?タン/リンクを表示ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶åˆ¤å®šã?ã€? 035 * ã€?¡ä»¶1?šè?åˆ??èº«ã¸æˆ»ã‚‹æ©Ÿè?ã¯ã‚µãƒã?トã§ãã¾ã›ã‚“ã€? 036 * ã€?¡ä»¶2?šBACK_GAMENID ãŒå˜åœ¨ã™ã‚‹ã‹ã?ã¾ãŸã?ã€gamenId ã§æŒ?¤ºã•れãŸå?åˆã?ã¿è¡¨ç¤ºã€? 037 * ã€?¡ä»¶3?šcommand="NEW" ã§ã€ã‚ャãƒ?‚·ãƒ¥ã«è¨å®šã—ã¦ãŠãå¿?¦ãŒã‚ã‚‹ã€? 038 * 039 * @og.formSample 040 * â—å½¢å¼ï¼?lt;og:backGamen keys="?¥?¥?¥" vals="?¥?¥?¥" > ?¥?¥Body?¥?¥ </og:backGamen> 041 * â—body?šã‚ã‚?EVAL_BODY_BUFFERED:BODYを評価ã—ã?{@XXXX} ã‚’è§£æžã—ã¾ã? 042 * 043 * â—Tag定義?? 044 * <og:backGamen 045 * type ã€TAG】ã?タンã®ã‚¿ã‚¤ãƒ—[link/button/relLink/relButton/historyBack]を指定ã—ã¾ã?åˆæœŸå€¤:link) 046 * command ã€TAGã€?通常使ã?¾ã›ã‚“)æˆ»ã‚‹æ™‚ã«æŒ?®šã™ã‚?command ã‚’è¨å®šã§ãã¾ã?åˆæœŸå€¤:RENEW) 047 * gamenId ã€TAGã€?通常使ã?¾ã›ã‚“)戻りå?ã®ç”»é¢ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:BACK_GAMENID) 048 * keys ã€TAGã€‘ãƒªãƒ³ã‚¯å…ˆã«æ¸¡ã™ã‚ーをCSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 049 * vals ã€TAG】keys属æ?ã«å¯¾å¿œã™ã‚‹å?ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 050 * lbl ã€TAG】ラベルリソースã®ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã? 051 * href ã€HTML】リンク先ã?URLを指定ã—ã¾ã? 052 * target ã€HTML】リンク先ã?表示ターゲãƒ?ƒˆã‚’指定ã—ã¾ã?åˆæœŸå€¤:CONTENTS) 053 * id ã€HTML】è¦ç´?«å¯¾ã—ã¦å›ºæœ‰ã?åå‰(id)ã‚’ã¤ã‘ã‚‹å ´åˆã«è¨å®šã—ã¾ã? 054 * lang ã€HTML】è¦ç´??å†?®¹ã¨ä»–ã?属æ?値ã®è¨?ª?lang,xml:lang)を指定ã—ã¾ã? 055 * dir ã€HTML】文å—表記ã?æ–¹å?dir)を指定ã—ã¾ã? 056 * title ã€HTML】è¦ç´?«å¯¾ã™ã‚‹è£œè¶³çš?ƒ…å ±(title)ã‚’è¨å®šã—ã¾ã? 057 * style ã€HTML】ã“ã®è¦ç´?«å¯¾ã—ã¦é©ç”¨ã•ã›ã‚‹ã‚¹ã‚¿ã‚¤ãƒ«ã‚·ãƒ¼ãƒ?style)ã‚’è¨å®šã—ã¾ã? 058 * tabindex ã€HTML】タブã?移動é?(tabindex)を指定ã—ã¾ã?0 ??32767) 059 * accesskey ã€HTML】アクセスã‚ー(alt+ã‚ーã§ç›´æŽ¥æŒ?®?を割り当ã¦ã¾ã? 060 * clazz ã€HTML】è¦ç´?«å¯¾ã—㦠class 属æ?ã‚’è¨å®šã—ã¾ã? 061 * language ã€TAG】タグå†?ƒ¨ã§ä½¿ç”¨ã™ã‚‹è¨?ªžã‚³ãƒ¼ãƒ‰[ja/en/zh/…]を指定ã—ã¾ã? 062 * onClick ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onClick ã‚’è¨å®šã—ã¾ã?ä¾?onClick="renew('query.jsp','QUERY');") 063 * onBlur ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onBlur ã‚’è¨å®šã—ã¾ã?ä¾?onBlur="this.value=value.toUpperCase();") 064 * onFocus ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onFocus ã‚’è¨å®šã—ã¾ã? 065 * ondblClick ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?ondblClick ã‚’è¨å®šã—ã¾ã? 066 * onMouseDown ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onMouseDown ã‚’è¨å®šã—ã¾ã? 067 * onMouseUp ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onMouseUp ã‚’è¨å®šã—ã¾ã? 068 * onMouseMove ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onMouseMove ã‚’è¨å®šã—ã¾ã? 069 * onMouseOut ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onMouseOut ã‚’è¨å®šã—ã¾ã? 070 * onMouseOver ã€HTML】JavaScriptã®ã‚¤ãƒ™ãƒ³ãƒ?onMouseOver ã‚’è¨å®šã—ã¾ã? 071 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 072 * > ... Body ... 073 * </og:backGamen> 074 * 075 * â—使用ä¾? 076 * <og:backGamen keys="displayMsg,clear" vals="MSG0065,true" > 077 * <img src="{@SYS.JSP}/image/back.gif" alt="{@BACK_GAMENID}" /> 078 * <og:message lbl="MSG0049" /> 079 * </og:backGamen> 080 * 081 * @og.rev 3.1.8.0 (2003/05/16) æ–°è¦ä½œæ? 082 * @og.group ç”»é¢åˆ¶å¾¡ 083 * 084 * @version 4.0 085 * @author Kazuhiko Hasegawa 086 * @since JDK5.0, 087 */ 088 public class BackGamenTag extends HTMLTagSupport { 089 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 090 private static final String VERSION = "5.7.1.2 (2013/12/20)" ; 091 092 private static final long serialVersionUID = 571220131220L ; 093 094 // 4.0.0 (2005/05/31) JDK5.0 enum 対å¿? 095 /** 096 * type 属æ?ã¨ã—ã¦æŒ?®šã§ãã‚‹é¸æŠžè‚¢ã‚’å®šç¾©ã—ã¾ã™ã? 097 */ 098 private static final EnumType<String> CHECK_TYPE = 099 new EnumType<String>( "ボタンã®ã‚¿ã‚¤ãƒ?,"link" ) 100 .append( "link" ,"戻るリンクを作æ?ã—ã¾ã™ã?" ) 101 .append( "relLink","戻るリンク(相対パス)を作æ?ã—ã¾ã™ã?" ) 102 .append( "button" ,"戻るã?タンを作æ?ã—ã¾ã™ã?" ) 103 .append( "relButton","戻るã?タン(相対パス)を作æ?ã—ã¾ã™ã?" ) 104 .append( "historyBack","通常ã®ãƒ’ストリãƒãƒƒã‚¯ãƒœã‚¿ãƒ³ã‚’作æ?ã—ã¾ã™ã?" ) ; 105 106 private String type = CHECK_TYPE.getDefault() ; 107 private String command = "RENEW" ; 108 private String gamenId = null; 109 private String target = "CONTENTS"; 110 private String accesskey = "R"; 111 private String[] keys = null; 112 private String[] vals = null; 113 private String body = null; 114 private String backAddress = null; // 4.0.1.0 (2007/12/18) 115 116 /** 117 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 118 * 119 * @return 後続å?ç??æŒ?¤º( EVAL_BODY_BUFFERED ) 120 */ 121 @Override 122 public int doStartTag() { 123 return( EVAL_BODY_BUFFERED ); // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™? 124 } 125 126 /** 127 * Taglibã®ã‚¿ã‚°æœ¬ä½“を処ç?™ã‚?doAfterBody() ã‚?オーãƒã?ライドã—ã¾ã™ã? 128 * 129 * @return 後続å?ç??æŒ?¤º(SKIP_BODY) 130 */ 131 @Override 132 public int doAfterBody() { 133 body = getBodyString(); 134 135 return(SKIP_BODY); 136 } 137 138 /** 139 * タグリブオブジェクトをリリースã—ã¾ã™ã? 140 * 141 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 142 * 143 */ 144 @Override 145 protected void release2() { 146 super.release2(); 147 type = CHECK_TYPE.getDefault() ; 148 command = "RENEW" ; 149 gamenId = null; 150 target = "CONTENTS"; 151 accesskey = "R"; 152 keys = null; 153 vals = null; 154 body = null; 155 backAddress = null; 156 } 157 158 /** 159 * 戻るã?タン/戻るリンクを作æ?ã—ã¾ã™ã? 160 * 161 * @og.rev 3.1.8.0 (2003/05/16) BACK_GAMENID ã®ã‚ャãƒ?‚·ãƒ¥ã®å–り出ã—å?を変更ã™ã‚‹ã€? 162 * @og.rev 3.5.4.0 (2003/11/25) å±¥æ´(history)オブジェクトã?back() メソãƒ?ƒ‰ã‚’利用ã—ãŸæˆ»ã‚‹æ©Ÿè?を追åŠ?—ã¾ã™ã? 163 * @og.rev 4.0.1.0 (2007/12/17) BackAddress対å¿? 164 * @og.rev 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹ãƒªãƒ³ã‚¯å¯¾å¿? 165 * 166 * @return 戻るã?タン/戻るリンク 167 */ 168 @Override 169 protected String makeTag() { 170 String rtn = "" ; 171 172 if( gamenId == null ) { 173 gamenId = getBackGamenId() ; 174 } 175 if( backAddress == null) { // 4.0.1.0 (2007/12/17) 176 backAddress = getBackAddress(); 177 } 178 179 // 4.0.0 (2005/05/31) 180 if( "historyBack".equalsIgnoreCase( type ) ) { 181 String hb = getRequest().getParameter( "historyBack" ); 182 if( "1".equals( hb ) ) { 183 rtn = makeHistoryBackTag(); 184 } 185 } 186 else { 187 if( checkCondition( gamenId ) ) { 188 set( "target" ,nval( get( "target" ), target ) ); 189 190 // 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹å¯¾å¿? 191 if( "link".equalsIgnoreCase( type ) || "relLink".equalsIgnoreCase( type ) ) { 192 rtn = makeLinkTag(); 193 } 194 else if( "button".equalsIgnoreCase( type ) || "relButton".equalsIgnoreCase( type ) ) { 195 rtn = makeButtonTag(); // 3.8.1.2 (2005/12/19) 196 } 197 else { 198 String errMsg = "æŒ?®šã? type ã¯ã€ä¸‹è¨˜ã?ç¯?›²ã§æŒ?®šã—ã¦ãã ã•ã„ã€? 199 + "type=" + type + " : " 200 + CHECK_TYPE.toString(); 201 throw new HybsSystemException( errMsg ); 202 } 203 } 204 } 205 206 return rtn ; 207 } 208 209 /** 210 * 戻るリンクを作æ?ã—ã¾ã™ã? 211 * 212 * @og.rev 3.5.5.0 (2004/03/12) 戻るアドレスをã?GUIInfoよりå–å¾—ã™ã‚‹ã‚ˆã?«å¤‰æ›´ã€? 213 * @og.rev 4.0.0.0 (2005/01/31) GUIInfoã®å®Ÿã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãƒ‘ラメータをè?æ…®ã™ã‚‹ã€? 214 * @og.rev 3.7.0.3 (2005/03/01) 戻る行番å·ã‚’ã?BACK_ROW_KEYよりå–å¾—ã—ã€SEL_ROW ã§æ¸¡ã™ã? 215 * @og.rev 4.0.1.0 (2007/12/17) 戻るアドレスをbackAddressを使ã?‚ˆã?«å¤‰æ›´ 216 * @og.rev 4.0.2.1 (2007/12/27) リクエスト部ã‹ã‚‰GAMENIDを外ã—ã¦ã?ŸãŒã?二段階戻るå?åˆã«ä¸å?åˆãŒå‡ºãŸãŸã‚å?ã«æˆ»ã? 217 * @og.rev 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹ãƒªãƒ³ã‚¯å¯¾å¿? 218 * 219 * @return 戻るリンク 220 */ 221 private String makeLinkTag() { 222 set( "body",getMsglbl( gamenId ) ); 223 String href = get( "href" ); 224 if( href == null) { 225 // 3.5.5.0 (2004/03/12) 226 // 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹å¯¾å¿? 227 if( backAddress == null || "relLink".equalsIgnoreCase( type ) ) {// 4.0.1.0 (2007/12/17) ifæ–?¿½åŠ? 228 GUIInfo guiInfo = getGUIInfo( gamenId ); // 4.0.0 (2005/01/31) 229 if( guiInfo == null ) { return ""; } // 見ã¤ã‹ã‚‰ãªã??åˆã?ã€ã‚¢ã‚¯ã‚»ã‚¹ä¸å¯ 230 String address = guiInfo.getRealAddress( "index.jsp" ); 231 href = getRequestParameter( address ); 232 } 233 else { // 4.0.1.0 (2007/12/17) 234 href = backAddress; 235 } 236 } 237 238 // 3.7.0.3 (2005/03/01) 戻る行番å·ã‚’ã?BACK_ROW_KEYよりå–å¾—ã—ã€SEL_ROW ã§æ¸¡ã™ã? 239 String rowkey = HybsSystem.BACK_ROW_KEY + getGUIInfoAttri( "KEY" ); 240 String rowVal = (String)getSessionAttribute( rowkey ); 241 242 String[] keys2 = new String[] { "command","GAMENID","SEL_ROW" }; 243 String[] vals2 = new String[] { command , gamenId , rowVal }; 244 // String[] keys2 = new String[] { "command", "SEL_ROW" }; // 4.0.1.0 (2007/12/18)â†?.0.2.1(2007/12/27)GAMENIDを付ã‘るよã?«æˆ»ã? 245 // String[] vals2 = new String[] { command , rowVal }; // 4.0.1.0 (2007/12/18)→上ã¨åŒæ§? 246 String urlEnc2 = XHTMLTag.urlEncode( keys2,vals2 ); 247 href = XHTMLTag.addUrlEncode( href,urlEnc2 ); 248 249 String urlEnc = XHTMLTag.urlEncode( keys,vals ); 250 href = XHTMLTag.addUrlEncode( href,urlEnc ); 251 252 set( "href",href ); 253 254 return XHTMLTag.link( getAttributes() ) ; 255 } 256 257 /** 258 * 戻るã?タンã®ãƒ•ォーãƒ?‚’作æ?ã—ã¾ã™ã? 259 * 260 * @og.rev 3.5.5.0 (2004/03/12) 戻るアドレスをã?GUIInfoよりå–å¾—ã™ã‚‹ã‚ˆã?«å¤‰æ›´ã€? 261 * @og.rev 3.5.5.5 (2004/04/23) hidden ã®å‡ºåŠ›ã«ã€XHTMLTag.hidden を使用ã—ã¾ã™ã? 262 * @og.rev 3.8.1.2 (2005/12/19) メソãƒ?ƒ‰å変更ã€inputタグ⇒buttonタグ変更 263 * @og.rev 4.0.1.0 (2007/12/17) BACK_ADDRESS対å¿? 264 * @og.rev 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹ãƒªãƒ³ã‚¯å¯¾å¿? 265 * 266 * @return 戻るã?タンã®ãƒ•ォーãƒ? 267 */ 268 private String makeButtonTag() { 269 270 String href = get( "href" ); 271 if( href == null ) { 272 // 3.5.5.0 (2004/03/12) 273 // 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹å¯¾å¿? 274 if( backAddress == null || "relButton".equalsIgnoreCase( type ) ) { // 4.0.1.0 (2007/12/18) ifæ–?Œ– 275 GUIInfo guiInfo = getGUIInfo( gamenId ); 276 String address = guiInfo.getRealAddress(); 277 set( "action", address + "index.jsp" ); 278 } 279 else { 280 set( "action", backAddress ); // 4.0.1.0 (2007/12/18) 281 } 282 } 283 else { 284 set( "action",href ) ; 285 } 286 287 StringBuilder body = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 288 289 // 3.8.1.2 (2005/12/19) inputタグ⇒buttonã‚¿ã‚°ã¸å¤‰æ›´ã€? 290 TagBuffer tag = new TagBuffer( "button" ); 291 tag.add( "type","submit" ); 292 tag.add( "accesskey",get( "accesskey" ) ); 293 tag.setBody( getMsglbl( gamenId ) ); 294 body.append( tag.makeTag() ); 295 body.append( HybsSystem.CR ); 296 297 // command ã‚?hidden ã§ä½œæ?ã—ã¾ã™ã? 298 body.append( XHTMLTag.hidden( "command",command ) ); // hidden(name,value); 299 body.append( HybsSystem.CR ); 300 301 // GAMENID ã‚?hidden ã§ä½œæ?ã—ã¾ã™ã? 302 body.append( XHTMLTag.hidden( "GAMENID",gamenId ) ); // hidden(name,value); 303 body.append( HybsSystem.CR ); 304 305 // keys,vals ã‚?hidden ã§ä½œæ?ã—ã¾ã™ã? 306 if( keys != null ) { 307 if( keys.length != vals.length ) { 308 String errMsg = "ã‚ーã¨ãƒãƒªãƒ¥ãƒ¼ã®å€‹æ•°ãŒç•°ãªã‚Šã¾ã™ã?" 309 + HybsSystem.CR 310 + " keys.length=[" + keys.length + "] vals.length=[" + vals.length + "]" 311 + " keys=" + StringUtil.array2csv( keys ) + HybsSystem.CR 312 + " vals=" + StringUtil.array2csv( vals ) ; // 5.1.8.0 (2010/07/01) errMsg ä¿®æ£ 313 throw new HybsSystemException( errMsg ); 314 } 315 316 for( int i=0; i<keys.length; i++ ) { 317 body.append( XHTMLTag.hidden( keys[i],vals[i] ) ); // hidden(name,value); 318 body.append( HybsSystem.CR ); 319 } 320 } 321 322 // 3.7.0.3 (2005/03/01) 戻る行番å·ã‚’ã?BACK_ROW_KEYよりå–å¾—ã—ã€SEL_ROW ã§æ¸¡ã™ã? 323 String rowkey = HybsSystem.BACK_ROW_KEY + getGUIInfo( "GUI.KEY" ); 324 String rowVal = (String)getSessionAttribute( rowkey ); 325 // 3.7.0.5 (2005/04/11) null ã®æ™‚ã?ã€è¿”ã•ãªã?‚ˆã?«å¤‰æ›´ 326 if( rowVal != null ) { 327 body.append( XHTMLTag.hidden( "SEL_ROW",rowVal ) ); // hidden(name,value); 328 body.append( HybsSystem.CR ); 329 } 330 331 set( "body",body.toString() ); 332 333 return XHTMLTag.form( getAttributes() ) ; 334 } 335 336 /** 337 * 戻るリンク(historyBack)を作æ?ã—ã¾ã™ã? 338 * 339 * @og.rev 3.5.4.0 (2003/11/25) å±¥æ´(history)オブジェクトã?back() メソãƒ?ƒ‰ã‚’利用ã—ãŸæˆ»ã‚‹æ©Ÿè?を追åŠ?—ã¾ã™ã? 340 * 341 * @return 戻るリンク 342 */ 343 private String makeHistoryBackTag() { 344 StringBuilder link = new StringBuilder(); 345 346 link.append( "<a onClick=\"history.back()\">" ); 347 link.append( getMsglbl( gamenId ) ); 348 link.append( "</a>" ); 349 350 return link.toString() ; 351 } 352 353 /** 354 * BACK_GAMENID ã®å€¤ã‚’å–りå?ã—ã¾ã™ã? 355 * 356 * 値ã¯ã€ã‚ャãƒ?‚·ãƒ¥ã§ã¯ãªãã?session より HybsSystem.BACK_GAMENID_KEY ã‚’ã‚ー㫠357 * å–り出ã—ã¾ã™ã? 358 * 359 * @og.rev 3.1.8.0 (2003/05/16) BACK_GAMENID ã®ã‚ャãƒ?‚·ãƒ¥ã®å–り出ã—å?を変更ã™ã‚‹ã€? 360 * 361 * @return BACK_GAMENID ã®å€¤ 362 */ 363 private String getBackGamenId() { 364 String key = HybsSystem.BACK_GAMENID_KEY + getGUIInfoAttri( "KEY" ); // 4.0.0 (2005/01/31) 365 return (String)getSessionAttribute( key ); 366 } 367 368 /** 369 * BACK_ADDRESS ã®å€¤ã‚’å–りå?ã—ã¾ã™ã? 370 * 371 * 値ã¯ã€ã‚ャãƒ?‚·ãƒ¥ã§ã¯ãªãã?session より HybsSystem.BACK_ADDRESS_KEY ã‚’ã‚ー㫠372 * å–り出ã—ã¾ã™ã? 373 * 374 * @og.rev 4.0.1.0 (2007/12/17) メソãƒ?ƒ‰è¿½åŠ? 375 * 376 * @return BACK_GAMENID ã®å€¤ 377 */ 378 private String getBackAddress() { 379 String key = HybsSystem.BACK_ADDRESS_KEY + getGUIInfoAttri( "KEY" ); // 4.0.0 (2005/01/31) 380 return (String)getSessionAttribute( key ); 381 } 382 383 /** 384 * ã€TAG】ã?タンã®ã‚¿ã‚¤ãƒ—[link/button/relLink/relButton/historyBack]を指定ã—ã¾ã?åˆæœŸå€¤:link)ã€? 385 * 386 * @og.tag 387 * button ã¨è¨å®šã™ã‚‹ã¨ã€æˆ»ã‚‹ã?タンã«ã€link ã¨è¨å®šã™ã‚‹ã¨ã€æˆ»ã‚‹ãƒªãƒ³ã‚¯ã«ãªã‚Šã¾ã™ã? 388 * historyBack ã¯ã€IEç‰ã?戻るæ“作ã¨åŒã˜ã§ã€JavaScriptã®ãƒ’ストリーãƒãƒƒã‚¯ã‚’行ã„ã¾ã™ã? 389 * ã¾ãŸã?relButtonã€relLinkã¨ã™ã‚‹ã¨ã€ãれãžã‚Œç›¸å¯¾ãƒ‘ス(ç”»é¢IDã‹ã‚‰é£›ã?å…ˆã?アドレスをå?ã«ç”Ÿæ?) 390 * ã§æˆ»ã‚Šå?ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒç”Ÿæˆã•れã¾ã™ã? 391 * åˆæœŸå€¤ã¯ã€æˆ»ã‚‹ãƒªãƒ³ã‚¯(link)ã§ã™ã? 392 * 393 * <table border="1" frame="box" rules="all" > 394 * <tr><th>タイãƒ? </th><th>説æ˜?/th></tr> 395 * <tr><td>link </td><td>戻るリンク</td></tr> 396 * <tr><td>button </td><td>戻るã?タン</td></tr> 397 * <tr><td>relLink </td><td>戻るリンク(相対パス)</td></tr> 398 * <tr><td>relButton </td><td>戻るã?タン(相対パス)</td>></tr> 399 * <tr><td>historyBack </td><td>通常ã®ãƒ’ストリãƒãƒƒã‚¯ãƒœã‚¿ãƒ³</td></tr> 400 * </table> 401 * 402 * @og.rev 5.0.2.0 (2009/11/01) 相対パスã§ã®æˆ»ã‚‹ãƒªãƒ³ã‚¯å¯¾å¿? 403 * 404 * @param tp ボタンã®ã‚¿ã‚¤ãƒ—[link/button/relLink/relButton/historyBack] 405 */ 406 public void setType( final String tp ) { 407 type = CHECK_TYPE.nval( tp ); 408 } 409 410 /** 411 * ã€TAGã€?通常使ã?¾ã›ã‚“)æˆ»ã‚‹æ™‚ã«æŒ?®šã™ã‚?command ã‚’è¨å®šã§ãã¾ã?åˆæœŸå€¤:RENEW)ã€? 412 * 413 * @og.tag 414 * 通常ã¯ã€RENEW ã§æˆ»ã‚Šã¾ã™ã? 415 * (åˆæœŸå€¤ã¯ã€RENEW ãªã®ã§è¨å®šä¸è¦ã§ã™ã?) 416 * 417 * @param cmd コマンãƒ? 418 */ 419 public void setCommand( final String cmd ) { 420 command = nval( getRequestParameter( cmd ),command ); 421 if( command != null ) { command = command.toUpperCase(Locale.JAPAN); } 422 } 423 424 /** 425 * ã€TAGã€?通常使ã?¾ã›ã‚“)戻りå?ã®ç”»é¢ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:BACK_GAMENID)ã€? 426 * 427 * @og.tag 428 * 通常ã¯ã€è?å‹•çš„ã«ã€BACK_GAMENID ã®å€¤ãŒã‚»ãƒ?ƒˆã•れã¾ã™ãŒã€? 429 * å…ˆç¥–ã«æˆ»ã‚?ç”»é¢?¡â‡’ç”»é¢?¢â‡’ç”»é¢?£ ã®ã¨ãã«ã€ç”»é¢?¡ã«æˆ»ã‚?å ´åˆã‚„ã€? 430 * 別ã®ç”»é¢ã«ã€??ã‚??åˆã«ã€ç›´æŽ¥æŒ?®šã—ã¾ã™ã? 431 * (åˆæœŸå€¤ã¯ã€æ¥ãŸç”»é¢?šBACK_GAMENID ã§ã™ã?ã§ã€è¨å®šä¸è¦ã§ã™ã?) 432 * 値ã¯ã€ã‚ャãƒ?‚·ãƒ¥ã§ã¯ãªãã?session より HybsSystem.BACK_GAMENID_KEY ã‚’ã‚ー㫠433 * å–り出ã—ã¾ã™ã? 434 * ã“れã¯ã€command="NEW" ã§ã€BACK_GAMENID リクエストãŒå˜åœ¨ã—ã?BACK_GAMENID 㨠435 * 自åˆ??身ã®ç”»é¢IDãŒç•°ãªã‚‹å?åˆã?ã¿ã€RequestCacheTag#backGamenIdSet メソãƒ?ƒ‰ã§ 436 * session ã«ç™»éŒ²ã•れã¾ã™ã? 437 * 438 * @param id 戻りå?ã®ç”»é¢ID 439 */ 440 public void setGamenId( final String id ) { 441 gamenId = nval( getRequestParameter( id ),gamenId ); 442 } 443 444 /** 445 * ã€TAGã€‘ãƒªãƒ³ã‚¯å…ˆã«æ¸¡ã™ã‚ーをCSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã? 446 * 447 * @og.tag 448 * 戻る時ã«ã€æ¤œç´¢æ™‚ã?ã‚ャãƒ?‚·ãƒ¥ã«æŒ?®šã—ãŸå¼•æ•°ä»¥å¤–ã«æŒ?®šã—ãŸã‚Šã€åˆ¥ã®å€¤ã«ç½®ãæ›ãˆãŸã‚? 449 * ã™ã‚‹å ´åˆã?ã‚ーをè¨å®šã§ãã¾ã™ã?カンマ区åˆ?‚Šã§è¤?•°æŒ?®šã§ãã¾ã™ã? 450 * vals 属æ?ã«ã¯ã€ã‚ーã«å¯¾å¿œã™ã‚‹å?ã‚’ã?è¨å®šã—ã¦ãã ã•ã„ã€? 451 * ä¾?<b>keys="displayMsg,clear"</b> vals="MSG0065,true" 452 * åˆ?§£æ–¹æ³•ã?ã€CSV変数をå?ã«åˆ?§£ã—ã¦ã‹ã‚‰ã€getRequestParameter ã§å€¤ã‚’å–å¾—ã—ã¾ã™ã? 453 * ã“ã†ã—ãªã?¨ãƒ??タ自身ã«ã‚«ãƒ³ãƒžã‚’æŒã£ã¦ã?‚‹å ´åˆã«åˆ?§£ã‚’ミスる為ã§ã™ã? 454 * 455 * @og.rev 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用 456 * 457 * @param key ãƒªãƒ³ã‚¯å…ˆã«æ¸¡ã™ã‚ー(例:keys="displayMsg,clear") 458 * @see #setVals( String ) 459 */ 460 public void setKeys( final String key ) { 461 keys = getCSVParameter( key ); 462 } 463 464 /** 465 * ã€TAG】keys属æ?ã«å¯¾å¿œã™ã‚‹å?ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã? 466 * 467 * @og.tag 468 * ã‚ーã«è¨å®šã—ãŸå?ã‚’ã?カンマ区åˆ?‚Šæ–?—ã§è¤?•°ã—ã¦å‡ºæ¥ã¾ã™ã? 469 * æŒ?®šé?åºã?ã€ã‚ーã¨åŒã˜ã«ã—ã¦ãŠã„ã¦ä¸‹ã•ã?? 470 * ä¾?keys="displayMsg,clear" <b>vals="MSG0065,true"</b> 471 * åˆ?§£æ–¹æ³•ã?ã€CSV変数をå?ã«åˆ?§£ã—ã¦ã‹ã‚‰ã€getRequestParameter ã§å€¤ã‚’å–å¾—ã—ã¾ã™ã? 472 * ã“ã†ã—ãªã?¨ãƒ??タ自身ã«ã‚«ãƒ³ãƒžã‚’æŒã£ã¦ã?‚‹å ´åˆã«åˆ?§£ã‚’ミスる為ã§ã™ã? 473 * 474 * @og.rev 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用 475 * 476 * @param val keys属æ?ã«å¯¾å¿œã™ã‚‹å?(例:vals="MSG0065,true") 477 * @see #setKeys( String ) 478 */ 479 public void setVals( final String val ) { 480 vals = getCSVParameter( val ); 481 } 482 483 /** 484 * ã€HTML】リンク先ã?表示ターゲãƒ?ƒˆã‚’指定ã—ã¾ã?åˆæœŸå€¤:CONTENTS)ã€? 485 * 486 * @og.tag 487 * リンク先ã?æ–?›¸ã‚’表示ã•ã›ã‚‹ãƒ•レーãƒ??ã¾ãŸã?ウィンドウã®åå‰ã‚’指定ã—ã¾ã™ã? 488 * 489 * @param tgt リンク先ã?表示ターゲãƒ?ƒˆ 490 */ 491 public void setTarget( final String tgt ) { 492 set( "target",getRequestParameter( tgt ) ); 493 } 494 495 /** 496 * ã€HTML】リンク先ã?URLを指定ã—ã¾ã™ã? 497 * 498 * @og.tag リンク先ã?URLを指定ã—ã¾ã™ã? 499 * 500 * @param href リンク先ã?URL 501 */ 502 public void setHref( final String href ) { 503 set( "href",getRequestParameter( href ) ); 504 } 505 506 /** 507 * メãƒ?‚»ãƒ¼ã‚¸ãƒ©ãƒ™ãƒ«(msglbl)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 508 * 509 * メãƒ?‚»ãƒ¼ã‚¸ãƒ©ãƒ™ãƒ«ã¯ã€meg属æ?ã‹ã?lbl属æ?ã§ç™»éŒ²ã•れãŸå?ã‚’ã? 510 * ãれãžã‚Œã®ãƒªã‚½ãƒ¼ã‚¹ã«å¿œã˜ã¦å?¨?ªžã«å¤‰æ›ã—ãŸçµæžœã‚’æ?ç´ã—ã¦ã?¾ã™ã? 511 * meg属æ? 㨠lbl属æ?ã¯ã€åŒæ™‚登録ã§ãã¾ã›ã‚“ã€? 512 * 513 * @og.rev 5.7.1.2 (2013/12/20) msg â‡?msglbl 変更 514 * 515 * @param gamenId ç”»é¢ID 516 * 517 * @return メãƒ?‚»ãƒ¼ã‚¸ãƒ©ãƒ™ãƒ« 518 */ 519 private String getMsglbl( final String gamenId ) { 520 StringBuilder rtn = new StringBuilder(); 521 // String msg = getMsglbl(); 522 String msglbl = getMsglbl(); // 5.7.1.2 (2013/12/20) msg â‡?msglbl 変更 523 524 // if( msg != null ) { 525 // rtn.append( msg ); 526 if( msglbl != null ) { 527 rtn.append( msglbl ); 528 set( "accesskey",nval( get( "accesskey" ),accesskey ) ); 529 rtn.append( "(" ).append( get( "accesskey" ) ).append( ")" ) ; 530 } 531 else if( body != null && body.length() > 0 ) { 532 rtn.append( body ); 533 } 534 else { 535 GUIInfo guiInfo = getGUIInfo( gamenId ); // 4.0.0 (2005/01/31) 536 if( guiInfo == null ) { return ""; } // 見ã¤ã‹ã‚‰ãªã??åˆã?ã€ã‚¢ã‚¯ã‚»ã‚¹ä¸å¯ 537 538 rtn.append( guiInfo.getLongName() ); 539 } 540 541 return rtn.toString() ; 542 } 543 544 /** 545 * ç”»é¢ã«æˆ»ã‚‹ã?タン/リンクを表示ã™ã‚‹ã‹ã©ã?‹ã‚’æ¡ä»¶åˆ¤å®šã—ã¾ã™ã? 546 * 引数㮠gamenId ã¯ã€BACK_GAMENID ã®äº‹ã§ã€ã“ã®ã‚¿ã‚°ã®å±žæ?定義ã§è¨å®šã•れ㦠547 * ã?ªã??åˆã?ã€session よりã€BACK_GAMENID ã‚’å–りå?ã—ã¾ã™ã?ã¤ã¾ã‚Šã?å–り出ã™ç‚ºã«ã¯ã€? 548 * command="NEW" ã§ã€ã‚ャãƒ?‚·ãƒ¥ã«è¨å®šã—ã¦ãŠãå¿?¦ãŒã‚りã¾ã™ã? 549 * 550 * éšæ™‚ã€æ¡ä»¶ã‚’追åŠ?—ã¦ã?ã¾ã™ã? 551 * 552 * æ¡ä»¶1?šè?åˆ??èº«ã¸æˆ»ã‚‹æ©Ÿè?ã¯ã‚µãƒã?トã§ãã¾ã›ã‚“ã€? 553 * <del>æ¡ä»¶2?šBACK_GAMENID ãŒå˜åœ¨ã™ã‚‹ã‹ã?ã¾ãŸã?ã€gamenId ã§æŒ?¤ºã•れãŸå?åˆã?ã¿è¡¨ç¤ºã€?/del> 554 * æ¡ä»¶3?šcommand="NEW" ã§ã€ã‚ャãƒ?‚·ãƒ¥ã«è¨å®šã—ã¦ãŠãå¿?¦ãŒã‚ã‚‹ã€? 555 * 556 * @og.rev 3.5.5.0 (2004/03/12) ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã™ã‚‹ã‚ˆã?«æ©Ÿè?追åŠ? 557 * 558 * @param gmnId ç”»é¢ID(BACK_GAMENID) 559 * 560 * @return åˆ¤å®šçµæžœ 561 */ 562 private boolean checkCondition( final String gmnId ) { 563 564 String thisGamen = getGUIInfoAttri( "KEY" ); // 4.0.0 (2005/01/31) 565 boolean rtn = ( gmnId != null ) && 566 ( gmnId.length() > 0 ) && 567 ( ! gmnId.equals( thisGamen ) ) ; 568 569 // 3.5.5.0 (2004/03/12) 570 if( isDebug() ) { 571 String cmd =pageContext.getRequest().getParameter( "command" ); 572 573 StringBuilder buf = new StringBuilder(); 574 buf.append( getDocumentLink() ); // 4.0.0 (2005/02/28) 575 buf.append( "<pre>" ); 576 buf.append( "command =[" ).append( cmd ).append( "]" ).append( HybsSystem.CR ); 577 buf.append( "type =[" ).append( type ).append( "]" ).append( HybsSystem.CR ); 578 buf.append( "gamenId =[" ).append( gmnId ).append( "]" ).append( HybsSystem.CR ); 579 buf.append( "thisGamen=[" ).append( thisGamen ).append( "]" ).append( HybsSystem.CR ); 580 buf.append( "checkCondition=[" ).append( rtn ).append( "]" ); 581 buf.append( "</pre>" ); 582 jspPrint( buf.toString() ); 583 } 584 585 return rtn ; 586 } 587 }