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