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 org.opengion.hayabusa.common.HybsSystem; 019import org.opengion.hayabusa.common.SystemManager ; // 6.3.8.4 (2015/10/09) 020import org.opengion.hayabusa.resource.GUIInfo; 021import org.opengion.fukurou.util.Attributes; 022import org.opengion.fukurou.util.XHTMLTag; 023import org.opengion.fukurou.util.ToString; // 6.1.1.0 (2015/01/17) 024import org.opengion.fukurou.util.StringUtil ; // 6.2.2.0 (2015/03/27) 025import org.opengion.fukurou.util.Cleanable; // 6.3.8.4 (2015/10/09) 026import org.opengion.fukurou.util.FileMap; // 6.3.8.4 (2015/10/09) 027import org.opengion.fukurou.db.DBUtil; // 6.3.8.4 (2015/10/09) 028 029import static org.opengion.fukurou.util.StringUtil.nval ; 030 031import java.util.Set; // 6.3.8.4 (2015/10/09) 032import java.util.HashSet; // 6.3.8.4 (2015/10/09) 033 034/** 035 * 画面IDと同じヘルプファイルがあればリンクを作成するタグです(通常は query.jsp に組込み)。 036 * 037 * ヘルプファイルは、システムパラメータ の HELP_URL で定義されているhelpフォルダに配置します。 038 * このフォルダに、画面IDと同じファイル(例えば、GE0001.html など)があれば、リンクを作成します。 039 * ファイルがなければ、リンクは表示されません。 040 * メッセージの表示の制御は、viewMsg 属性で指定します。(false でファイルが存在した場合のみ表示) 041 * ファイルの拡張子も指定できますが、一般に、html でヘルプファイルを作成するほうが 042 * すばやく表示できます。 043 * ※ 6.3.8.4 (2015/10/09) topMenuタグ内のhelpタグ機能 廃止 044 * <del>また、og:topMenuタグ内にこのタグを記述することで、各画面分類に対するヘルプを表示することが 045 * できるようになります。 046 * (この場合も、画面分類のキーがヘルプファイルのキーになります)</del> 047 * 048 * ※ 6.3.8.4 (2015/10/09) 049 * ヘルプファイルと、GE80(FAQテーブル)の関連画面IDについて、先に検索してMapにセットする方法に変更します。 050 * 従来は、ヘルプファイルは都度、GE80(FAQテーブル)は、org.opengion.hayabusa.resource.GUIDataLoader 051 * で、読込処理していました。 052 * 053 * @og.formSample 054 * ●形式:一般ユーザーが直接組み込むことはありません。 055 * ●body:なし 056 * 057 * ●Tag定義: 058 * <og:help 059 * guiInfoKey 【TAG】GUIInfo のキーを指定します 060 * lbl 【TAG】ラベルリソースのラベルIDを指定します 061 * target 【TAG】TARGET 属性を指定します(初期値:_blank) 062 * viewMsg 【TAG】メッセージを常時表示させるかどうか[true/false]を指定します(初期値:false) 063 * iconURL 【TAG】ヘルプリンクをアイコンで指定する場合のアイコンURLを指定します (初期値:DEFAULT_HELP_ICON[=/icon/help.png]) 064 * faqIconURL 【TAG】FAQリンクをアイコンで指定する場合のアイコンURLを指定します (初期値:DEFAULT_FAQ_ICON[=/icon/qaicon.png]) 065 * useFaq 【TAG】FAQ表示の機能を利用するかどうか[true/false]を指定します (初期値:USE_GUI_FAQ[=false]) 066 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 067 * /> 068 * 069 * 【廃止】6.3.8.4 (2015/10/09) 物理削除 070 * // extension 【廃止】拡張子を指定します(初期値:html) 6.3.8.4 (2015/10/09) 廃止 071 * 072 * ●使用例 073 * <og:help guiInfoKey="{@GUI.KEY}" lbl="HELP" /> 074 * 075 * <og:help 076 * guiInfoKey = "GUIInfo のキーを指定します(必須)。" 077 * lbl = "ラベルリソースのメッセージIDを指定します。" 078 * target = "TARGET 属性を指定します(初期値:_blank)。" 079 * viewMsg = "メッセージを常時表示させるかどうか[true/false]を指定します(初期値:false)。" 080 * iconURL = "ヘルプアイコンのURL(初期値:/icon/help.png)"; // 5.3.8.0 (2011/08/01) 081 * /> 082 * 083 * @og.rev 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 084 * @og.group メニュー制御 085 * 086 * @version 4.0 087 * @author Kazuhiko Hasegawa 088 * @since JDK5.0, 089 */ 090public class HelpTag extends CommonTagSupport { 091 /** このプログラムのVERSION文字列を設定します。 {@value} */ 092 private static final String VERSION = "8.1.0.2 (2022/01/14)" ; 093 private static final long serialVersionUID = 810220220114L ; 094 095 private static final String JSP = HybsSystem.sys( "JSP" ); 096 097 // 6.3.8.4 (2015/10/09) GE80(FAQテーブル)の関連画面ID のキャッシュ 098 // GE80(FAQテーブル)の関連画面IDの初期一括読み込みのクエリー 099 // 関連画面ID は、後で分割します。 100 private static final String QUERY = "select KNRNGUI from GE80 where SYSTEM_ID = ? and FGJ='1' and KNRNGUI is not null" ; 101 102 // リソースの接続先を、取得します。 103 private static final String DBID = HybsSystem.sys( "RESOURCE_DBID" ); 104 105 // 6.3.8.4 (2015/10/09) ヘルプファイルと、GE80(FAQテーブル)の関連画面ID のキャッシュ 106 private static final FileMap HELP_MAP = new FileMap(); // 6.4.1.1 (2016/01/16) helpMap → HELP_MAP refactoring 107 private static final Set<String> FAQ_SET = new HashSet<>(); // 6.4.1.1 (2016/01/16) faqSet → FAQ_SET refactoring 108 109 // 6.3.8.4 (2015/10/09) ヘルプファイルと、GE80(FAQテーブル)の関連画面ID のキャッシュ 110 static { 111 final Cleanable clr = new Cleanable() { 112 /** 113 * 初期化(クリア)します。 114 * 主に、キャッシュクリアで利用します。 115 */ 116 public void clear() { 117 HELP_MAP.clear(); // 6.3.9.0 (2015/11/06) 118 FAQ_SET.clear(); 119 } 120 }; 121 SystemManager.addCleanable( clr ); 122 } 123 124 // 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 125 private static final String ICON_DIR = "/" + HybsSystem.sys( "ICON_DIR" ) + "/" ; // 互換性の為、前後に "/" を付けておく。 126 127 private String guiInfoKey ; 128 private String target = "_blank"; // 3.6.0.7 (2004/11/06) 129 private boolean viewMsg ; 130 131 // 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 132// private String iconURL = HybsSystem.sys( "DEFAULT_HELP_ICON" ); // 5.4.3.6 (2012/01/19) 133// private String faqIconURL = HybsSystem.sys( "DEFAULT_FAQ_ICON" ); // 5.5.0.4 (2012/03/16) 134// private String faqGUI = HybsSystem.sys( "DEFAULT_FAQ_GUI" ); // 5.5.0.4 (2012/03/16) 135 private String iconURL = ICON_DIR + HybsSystem.sys( "DEFAULT_HELP_ICON" ); // 7.3.2.3 (2021/04/09) 136 private String faqIconURL = ICON_DIR + HybsSystem.sys( "DEFAULT_FAQ_ICON" ); // 7.3.2.3 (2021/04/09) 137// private String faqGUI = ICON_DIR + HybsSystem.sys( "DEFAULT_FAQ_GUI" ); // 7.3.2.3 (2021/04/09) 138 private String faqGUI = HybsSystem.sys( "DEFAULT_FAQ_GUI" ); // 8.1.0.2 (2022/01/14) 139 140// private boolean useFaq = HybsSystem.sysBool( "USE_GUI_FAQ" ); // 5.6.7.3 (2013/08/23) 6.9.5.0 (2018/04/23) 廃止 141// private boolean useFaqCtrl = HybsSystem.sysBool( "USE_GUI_FAQ_CTRL" ); // 6.3.8.4 (2015/10/09) 6.9.5.0 (2018/04/23) 廃止 142 private boolean useFaq ; // 6.9.5.0 (2018/04/23) 初期値固定 143 144 /** 145 * デフォルトコンストラクター 146 * 147 * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. 148 */ 149 public HelpTag() { super(); } // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。 150 151 /** 152 * Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 153 * 154 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 155 * @og.rev 5.3.9.0 (2011/09/01) メニューでのヘルプアイコン対応 156 * @og.rev 5.5.0.4 (2012/03/16) FAQ対応 157 * @og.rev 5.6.4.3 (2013/05/26) FAQの画面別対応 158 * @og.rev 6.3.8.4 (2015/10/09) topMenu 内でのHelp機能を廃止します。 159 * @og.rev 6.3.9.0 (2015/11/06) helpMapの初期化を、initメソッドに変更する。 160 * 161 * @return 後続処理の指示 162 */ 163 @Override 164 public int doEndTag() { 165 debugPrint(); // 4.0.0 (2005/02/28) 166 167 // 6.3.8.4 (2015/10/09) 初期化されているかどうかの判定を、helpMap で行う。 168 // 6.3.9.0 (2015/11/06) helpMapの初期化を、initメソッドに変更する。 169 if( !HELP_MAP.isInit() ) { 170 final String baseURL = HybsSystem.sys( "HELP_URL" ); 171 HELP_MAP.init( HybsSystem.url2dir( baseURL ) , baseURL ); 172 loadGE80(); 173 } 174 175 // 6.3.8.4 (2015/10/09) topMenu 内でのHelp機能を廃止します。 176 jspPrint( makeHelpTag() ); // メソッド名変更 177 if( useFaq ) { 178 jspPrint( makeTagFaq() ); 179 } 180 181 return EVAL_PAGE ; 182 } 183 184 /** 185 * タグリブオブジェクトをリリースします。 186 * キャッシュされて再利用されるので、フィールドの初期設定を行います。 187 * 188 * @og.rev 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加 189 * @og.rev 3.0.0.3 (2003/02/21) ターゲット属性の新規追加他 190 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 191 * @og.rev 3.6.0.7 (2004/11/06) target 属性の初期値を _new から _blank に変更 192 * @og.rev 5.3.8.0 (2011/08/01) iconURL追加 193 * @og.rev 5.5.0.4 (2012/03/16) faq 194 * @og.rev 5.6.4.3 (2013/05/24) faqCtrl 195 * @og.rev 5.6.7.3 (2013/08/23) useFaq と useFaqCtrl のキーの後ろにスペースが入っていた。 196 * @og.rev 6.3.8.4 (2015/10/09) extension 廃止。 197 * @og.rev 6.9.5.0 (2018/04/23) useFaq 初期値固定、useFaqCtrl 廃止。 198 * @og.rev 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 199 * @og.rev 8.1.0.2 (2022/01/14) faqGUI にICON_DIRを間違って付けていたので元に戻す。 200 */ 201 @Override 202 protected void release2() { 203 super.release2(); 204 guiInfoKey = null; 205 target = "_blank"; // 3.6.0.7 (2004/11/06) 206 viewMsg = false; 207 208 // 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 209// iconURL = HybsSystem.sys( "DEFAULT_HELP_ICON" ); // 5.4.3.6 (2012/01/19) 210// faqIconURL = HybsSystem.sys( "DEFAULT_FAQ_ICON" ); // 5.5.0.4 (2012/03/16) 211// faqGUI = HybsSystem.sys( "DEFAULT_FAQ_GUI" ); // 5.5.0.4 (2012/03/16) 212 213 iconURL = ICON_DIR + HybsSystem.sys( "DEFAULT_HELP_ICON" ); // 7.3.2.3 (2021/04/09) 214 faqIconURL = ICON_DIR + HybsSystem.sys( "DEFAULT_FAQ_ICON" ); // 7.3.2.3 (2021/04/09) 215// faqGUI = ICON_DIR + HybsSystem.sys( "DEFAULT_FAQ_GUI" ); // 7.3.2.3 (2021/04/09) 216 faqGUI = HybsSystem.sys( "DEFAULT_FAQ_GUI" ); // 8.1.0.2 (2022/01/14) 217 218// useFaq = HybsSystem.sysBool( "USE_GUI_FAQ" ); // 5.6.7.3 (2013/08/23) 219// useFaqCtrl = HybsSystem.sysBool( "USE_GUI_FAQ_CTRL" ); // 5.6.7.3 (2013/08/23) 220 useFaq = false; // 6.9.5.0 (2018/04/23) 221 } 222 223 /** 224 * HELPリンクを作成します。 225 * 226 * @og.rev 3.0.0.3 (2003/02/21) ターゲット属性の新規追加 227 * @og.rev 3.0.1.0 (2003/03/03) viewMsg フラグの制御のバグ修正 228 * @og.rev 5.3.8.0 (2011/08/01) iconURL対応 229 * @og.rev 5.3.9.0 (2011/09/01) メニューでのヘルプアイコン対応 230 * @og.rev 5.5.0.4 (2012/03/16) faq 231 * @og.rev 6.3.8.4 (2015/10/09) ヘルプファイルと、GE80(FAQテーブル)の関連画面ID のキャッシュ 232 * @og.rev 6.3.8.4 (2015/10/09) メソッド名変更と、private 化。 233 * 234 * @return リンクタグ文字列 235 */ 236 private String makeHelpTag() { 237 238 if( guiInfoKey == null ) { 239 guiInfoKey = getGUIInfoAttri( "KEY" ); 240 } 241 242 // 6.3.8.4 (2015/10/09) ヘルプファイルと、GE80(FAQテーブル)の関連画面ID のキャッシュ 243 final String url = HELP_MAP.getFilename( guiInfoKey ); 244 // 6.4.1.1 (2016/01/16) PMD refactoring. Avoid if (x != y) ..; else ..; 245 return url == null 246 ? viewMsg 247 ? getLinkBody( null,getMsglbl() ) : "" 248 : getLink( url ); 249 } 250 251 /** 252 * FAQリンクを作成します。 253 * 254 * @og.rev 5.3.9.0 (2011/09/01) メニューでのヘルプアイコン対応 255 * @og.rev 5.6.4.3 (2013/05/24) FAQ存在チェック対応 256 * @og.rev 6.3.8.4 (2015/10/09) 判定ロジックを、画面リソースではなく、内部Setで行う。 257 * @og.rev 6.9.5.0 (2018/04/23) useFaqCtrl 廃止(画面IDがある場合のみ表示)。 258 * 259 * @return リンクタグ文字列 260 */ 261 private String makeTagFaq() { 262 String rtn = ""; 263 264 if( guiInfoKey == null ) { 265 guiInfoKey = getGUIInfoAttri( "KEY" ); 266 } 267 268 // 6.3.8.4 (2015/10/09) 判定ロジック変更。前の判定方法は、間違っていたため、修正。 269// if( !useFaqCtrl || FAQ_SET.contains( guiInfoKey ) ) { 270 if( FAQ_SET.contains( guiInfoKey ) ) { // 6.9.5.0 (2018/04/23) useFaqCtrl 廃止(画面IDがある場合のみ表示) 271 final GUIInfo guiInfo = getGUIInfo( faqGUI ); 272 if( guiInfo == null ) { return rtn; } // 見つからない場合は、アクセス不可 273 274 final String address = guiInfo.getRealAddress( get( "href" ) ); 275 // KNRNGUI は、前後に %(のURLencode文字)を付けます。RequestParameter 処理は不要 276 final String url = address+"index.jsp?command=NEW&GAMENID="+faqGUI+"&KNRNGUI=%25"+guiInfoKey+"%25" ; 277 278 rtn = getFAQLink( url ); 279 } 280 281 return rtn; 282 } 283 284 /** 285 * リンク文字列を作成します。 286 * 287 * @og.rev 5.3.9.0 (2011/09/01) 新規作成 288 * @og.rev 5.5.0.4 (2012/03/16) faq 289 * 290 * @param url リンクのURL 291 * 292 * @return リンク文字列 293 * @og.rtnNotNull 294 */ 295 private String getLink( final String url ) { 296 // 6.1.1.0 (2015/01/17) Attributesの連結記述 297 return XHTMLTag.link( 298 new Attributes() 299 .set( "href" , getContextPath() + "/" + url ) 300 .set( "body" , getLinkBody( iconURL,getMsglbl() ) ) //5.5.0.4 (2012/03/16) 301 .set( "target" , target ) 302 .set( "class" , "helplink" ) 303 ); 304 } 305 306 /** 307 * FAQリンク文字列を作成します。 308 * 309 * @og.rev 5.5.0.4 (2012/03/16) 新規作成 310 * 311 * @param url リンクのURL 312 * 313 * @return リンク文字列 314 * @og.rtnNotNull 315 */ 316 private String getFAQLink( final String url ) { 317 // 6.1.1.0 (2015/01/17) Attributesの連結記述 318 return XHTMLTag.link( 319 new Attributes() 320 .set( "href" , url ) 321 .set( "body" , getLinkBody( faqIconURL,"FAQ" ) ) 322 .set( "target" , target ) 323 .set( "class" , "faqlink" ) 324 ) ; 325 } 326 327 /** 328 * リンクのボディー部分を作成します。 329 * 330 * @og.rev 5.3.8.0 (2011/08/01) 新規作成 331 * @og.rev 5.3.9.0 (2011/09/01) 画像表示時にtitle属性を付加 332 * @og.rev 5.5.0.4 (2012/03/16) 引数対応 333 * @og.rev 6.2.2.0 (2015/03/27) BRと\nを相互に変換する処理を追加 334 * @og.rev 6.2.2.3 (2015/04/10) htmlフィルターに、BR→改行処理機能を追加。 335 * @og.rev 7.0.1.0 (2018/10/15) XHTML → HTML5 対応(空要素の、"/>" 止めを、">" に変更します)。 336 * 337 * @param icon アイコン 338 * @param title タイトル 339 * 340 * @return リンクボディー文字列 341 * @og.rtnNotNull 342 */ 343 private String getLinkBody(final String icon, final String title) { 344 // 6.1.1.0 (2015/01/17) refactoring. ロジックの見直し 345 346 return icon == null || icon.isEmpty() 347 ? getMsglbl() 348// : "<img src=\"" + JSP + icon + "\" title=\"" + StringUtil.htmlFilter( title,true ) + "\"/>"; 349 : "<img src=\"" + JSP + icon + "\" title=\"" + StringUtil.htmlFilter( title,true ) + "\">"; // 7.0.1.0 (2018/10/15) 350 } 351 352 /** 353 * 【TAG】GUIInfo のキーを指定します。 354 * 355 * @og.tag GUIInfo のキーを指定します。 356 * 357 * @param key GUIInfoのキー 358 */ 359 public void setGuiInfoKey( final String key ) { 360 guiInfoKey = getRequestParameter( key ); 361 } 362 363// /** 364// * 【廃止】拡張子を指定します(初期値:html)。 365// * 366// * @og.tag 367// * なにも設定されていない場合は、"html" が初期値となります。 368// * ここでは、ピリオドは、含める必要はありません。 369// * 370// * @og.rev 6.3.8.4 (2015/10/09) 廃止。 371// * フォルダをスキャンして、必要なHelpファイルを見つけるため、 372// * 拡張子を指示する必要がなくなりました。 373// * 374// * @og.rev 6.9.5.0 (2018/04/23) 物理的に廃止 375// * @param ext 拡張子 376// */ 377// public void setExtension( final String ext ) { 378// } 379 380 /** 381 * 【TAG】TARGET 属性を指定します(初期値:_blank)。 382 * 383 * @og.tag 384 * 初期値は、 "_blank" として、新規に画面を立ち上げます。 385 * CONTENTS 等を指定すれば、コンテンツフレーム(メニューの右側全面)に、 386 * RESULT を指定すれば、リザルトフレーム(メニュー右下側)に表示します。 387 * 388 * @og.rev 3.0.0.3 (2003/02/21) ターゲット属性の新規追加 389 * 390 * @param val TARGET属性(初期値:"_blank") 391 */ 392 public void setTarget( final String val ) { 393 target = nval( getRequestParameter( val ),target ); 394 } 395 396 /** 397 * 【TAG】メッセージを常時表示させるかどうか[true/false]を指定します(初期値:false)。 398 * 399 * @og.tag 400 * "true"の場合は、常時表示させます。 401 * ファイルが、存在した場合は、リンクが張られ、存在しない場合は、リンクが 402 * 張られません。 403 * "false" の場合は、ファイルが、存在した場合は、リンクが張られ、存在しない場合は、 404 * なにも表示されません。 405 * 初期値は、 "false"(メッセージを常時表示しない)です。 406 * 407 * @og.rev 3.0.0.3 (2003/02/21) メッセージ表示属性の新規追加 408 * 409 * @param flag メッセージ常時表示 [true:常時表示/false:非表示] 410 */ 411 public void setViewMsg( final String flag ) { 412 viewMsg = nval( getRequestParameter( flag ),viewMsg ); 413 } 414 415 /** 416 * 【TAG】ヘルプリンクをアイコンで指定する場合のアイコンURLを指定します 417 * (初期値:DEFAULT_HELP_ICON[={@og.value SystemData#DEFAULT_HELP_ICON}])。 418 * 419 * @og.tag 420 * ヘルプリンクをアイコンで指定する場合、そのアイコン画像のURLを指定します。 421 * URLは、/[CONTEXT_PATH]/jspを基準として指定します。 422// * 例) /ge/jsp/image/help.pngに存在する画像を指定する場合、iconURL=/image/help.pngを指定します。 423 * 例) /ge/jsp/icon/help.pngに存在する画像を指定する場合、iconURL=/icon/help.pngを指定します。 424 * このURLが指定されない場合、ヘルプリンクは、msgLbl属性で指定されたテキストで表示されます。 425 * (初期値:システム定数のDEFAULT_HELP_ICON[={@og.value SystemData#DEFAULT_HELP_ICON}])。 426 * 427 * @og.rev 5.3.8.0 (2011/08/01) 新規追加 428 * @og.rev 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 429 * 430 * @param url アイコンURL 431 * @see org.opengion.hayabusa.common.SystemData#DEFAULT_HELP_ICON 432 */ 433 public void setIconURL( final String url ) { 434 iconURL = nval( getRequestParameter( url ),iconURL ); 435 } 436 437 /** 438 * 【TAG】FAQリンクをアイコンで指定する場合のアイコンURLを指定します 439 * (初期値:DEFAULT_FAQ_ICON[={@og.value SystemData#DEFAULT_FAQ_ICON}])。 440 * 441 * @og.tag 442 * FAQリンクをアイコンで指定する場合、そのアイコン画像のURLを指定します。 443 * URLは、/[CONTEXT_PATH]/jspを基準として指定します。 444// * 例) /ge/jsp/image/help.pngに存在する画像を指定する場合、iconURL=/image/help.pngを指定します。 445 * 例) /ge/jsp/icon/help.pngに存在する画像を指定する場合、iconURL=/icon/help.pngを指定します。 446 * (初期値:システム定数のDEFAULT_FAQ_ICON[={@og.value SystemData#DEFAULT_FAQ_ICON}])。 447 * 448 * @og.rev 5.3.8.0 (2011/08/01) 新規追加 449 * @og.rev 7.3.2.3 (2021/04/09) システム定数のICON_DIRを使用します。 450 * 451 * @param url アイコンURL 452 * @see org.opengion.hayabusa.common.SystemData#DEFAULT_FAQ_ICON 453 */ 454 public void setFaqIconURL( final String url ) { 455 faqIconURL = nval( getRequestParameter( url ),faqIconURL ); 456 } 457 458 /** 459 * 【TAG】FAQ表示の機能を利用するかどうか[true/false]を指定します(初期値:false)。 460 * 461 * @og.tag 462 * trueを指定すると、FAQ画面へのリンクが表示されます。(GE80にデータが存在するかは無関係) 463 * リンク先はfaqGUIでセットした画面に対して画面IDを引数としてわたします。 464 * (初期値:false)。 465 * 466 * @og.rev 5.5.0.4 (2012/03/16) 新規追加 467 * @og.rev 6.9.5.0 (2018/04/23) 初期値固定 468 * 469 * @param flag FAQ表示利用 [true:利用する/false:利用しない] 470 */ 471 public void setUseFaq( final String flag ) { 472 useFaq = nval( getRequestParameter( flag ),useFaq ); 473 } 474 475// /** 476// * 【TAG】FAQに関連画面機能を利用するかどうか[true/false]を指定します 477// * (初期値:USE_GUI_FAQ_CTRL[={@og.value SystemData#USE_GUI_FAQ_CTRL}])。 478// * 479// * @og.tag 480// * trueを指定すると、GE80にデータが関連画面IDとして存在する場合のみアイコンを 481// * リンク先はfaqGUIでセットした画面に対して画面IDを引数として渡します。 482// * falseの場合は、瀬音z内チェックを行わないため、常に表示されます。 483// * (ただし、useFaq=true の場合のみ) 484// * (初期値:システム定数のUSE_GUI_FAQ[={@og.value SystemData#USE_GUI_FAQ}])。 485// * 486// * @og.rev 5.6.4.3 (2013/05/24) 新規追加 487// * @og.rev 6.9.5.0 (2018/04/23) useFaqCtrl 廃止(画面IDがある場合のみ表示)。 488// * 489// * @param flag FAQの存在チェック機能 [true:利用する/false:利用しない] 490// * @see org.opengion.hayabusa.common.SystemData#USE_GUI_FAQ_CTRL 491// * @see #setUseFaq( String ) 492// */ 493// public void setUseFaqCtrl( final String flag ) { 494// useFaqCtrl = nval( getRequestParameter( flag ),useFaqCtrl ); 495// } 496 497 /** 498 * GE80(FAQテーブル)より 関連画面IDを取得、分割して、FAQセットに設定します。 499 * 500 * 関連画面IDは、スペース、またはCSV形式として、分割します。 501 * 分割後、trim() されたデータを、FAQセット に追加していきます。 502 * 画面IDは、存在チェックに使うため、重複は関係ありません。 503 * 504 * @og.rev 6.3.8.4 (2015/10/09) GE80(FAQテーブル)の関連画面ID のキャッシュ 505 */ 506 private void loadGE80() { 507 final String[] args = new String[] { HybsSystem.sys( "SYSTEM_ID" ) }; 508 509 final String[][] vals = DBUtil.dbExecute( QUERY,args,getApplicationInfo(),DBID ); 510 final int len = vals.length; 511 512 for( int i=0; i<len; i++ ) { 513 final String[] guis = vals[i][0].split( "[ ,]" ); // 最初のカラムを、スペースかカンマで分解する。 514 for( int j=0; j<guis.length; j++ ) { 515 FAQ_SET.add( guis[j] ); 516 } 517 } 518 } 519 520 /** 521 * このオブジェクトの文字列表現を返します。 522 * 基本的にデバッグ目的に使用します。 523 * 524 * @return このクラスの文字列表現 525 * @og.rtnNotNull 526 */ 527 @Override 528 public String toString() { 529 return ToString.title( this.getClass().getName() ) 530 .println( "VERSION" ,VERSION ) 531 .println( "guiInfoKey" ,guiInfoKey ) 532 .println( "target" ,target ) 533 .println( "viewMsg" ,viewMsg ) 534 .println( "iconURL" ,iconURL ) 535 .println( "Other..." ,getAttributes().getAttribute() ) 536 .fixForm().toString() ; 537 } 538}