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