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 static org.opengion.fukurou.util.StringUtil.nval; 019 020 import java.io.IOException; 021 import java.io.ObjectInputStream; 022 import java.io.ObjectOutputStream; 023 import java.util.ArrayList; 024 import java.util.List; 025 import java.util.Locale; 026 027 import org.opengion.fukurou.util.StringUtil; 028 import org.opengion.fukurou.util.TagBuffer; 029 import org.opengion.fukurou.util.XHTMLTag; 030 import org.opengion.hayabusa.common.HybsSystem; 031 import org.opengion.hayabusa.common.HybsSystemException; 032 import org.opengion.hayabusa.db.DBTableModel; 033 import org.opengion.hayabusa.db.DBTableModelUtil; 034 035 /** タブ形å¼ã?リンクを表示ã™ã‚‹ã‚¿ã‚°ã§ã™ã? 036 * 037 * ã“ã?ã‚¿ã‚°å½¢å¼ã?実æ?ã¯ã€ãƒªãƒ³ã‚¯ã®ãƒªã‚¹ãƒˆã§ã‚ã‚‹ãŸã‚ã€å®Ÿã?ç”»é¢ã®è¡¨ç¤ºã¯ã‚¿ãƒ¼ã‚²ãƒ?ƒˆã‚’指定ã—㦠038 * 別フレーãƒ?§è¡Œã†å¿?¦ãŒã‚りã¾ã™ã? 039 * 040 * タブã?æŒ?®šæ–¹æ³•ã«ã¤ã?¦ã¯ã€listType属æ?ã®æŒ?®šã«ã‚ˆã‚Šã€ã‚¯ã‚¨ãƒªç™ºè¡?DB)ã«ã‚ˆã‚Šå‹•çš„ã«ç”Ÿæ?ã™ã‚‹ 041 * パターンã¨ã€ã‚¿ã‚°æŒ?®?TAG)ã«ã‚ˆã‚Šã€?™çš?«ç”Ÿæ?ã™ã‚‹ãƒ‘ターンãŒã‚りã¾ã™ã? 042 * listType属æ?ã«ä½•ã‚‚æŒ?®šã•れã¦ã?ªã??åˆã?ã€Body部åˆ?«è¨˜è¿°ã•れãŸå?容ã«ã‚ˆã‚Šã€è?動判定ã•れã¾ã™ã? 043 * ("SELECT"ã§å§‹ã¾ã£ã¦ã?‚‹å ´åˆã?DBã€ãれ以外ã?TAGã¨ã—ã¦å‡¦ç? 044 * 045 * â‘?istType属æ?ã?DB"ã®å ´å? 046 * 検索ã•れãŸå„カラãƒ??ã€ãã®é ?•ªã«ã‚ˆã‚Šæ¬¡ã®æ„味をæŒã¡ã¾ã™ã? 047 * [第1カラãƒ? タブã?åå‰ : リンク時ã?ã‚ーæƒ??ã€å¾Œè¿°ã®openTabName属æ?ã®ã‚ーã¨ã—ã¦ã‚‚使用 ※å¿?? 048 * [第2カラãƒ? タブã?表示åç§° : タブã?表示åç§° æŒ?®šãŒãªã??åˆã?ã€ç¬¬1カラãƒ?Œè¡¨ç¤ºåç§°ã¨ãªã‚Šã¾ã™ã? 049 * [第3カラãƒ? タブã?リンクå…?RL : タブã?リンクå…?RL æŒ?®šãŒãªã??åˆã?ã€href属æ?ã®å€¤ãŒé©ç”¨ã•れã¾ã™ã? 050 * [第4カラãƒ? タブã?クラス属æ? : 個別ã®ã‚¿ãƒ–ã«ä»˜åŠ ã•れるクラス属æ? æŒ?®šãŒãªã??åˆã?ã€unselClass属æ?ã®å€¤ãŒé©ç”¨ã•れã¾ã™ã? 051 * [第5カラãƒ? タブã?ãƒãƒ¼ãƒ«ã‚º : タブã?ãƒãƒ¼ãƒ«ã‚ºã‚’指定ã—ã¾ã™ã?ユーザーãƒãƒ¼ãƒ«ã‚ºã¨ä¸??ã—ãªã?Œ‡å®šã—ãŸå?åˆã?ã€ã‚¿ãƒ–ãŒè¡¨ç¤ºã•れãªããªã‚Šã¾ã™ã? 052 * [第6カラãƒ? タブã?é¸æŠžå¯å¦ : タブã?é¸æŠžå¯å¦ã‚?true'or'false'ã§æŒ?®šã—ã¾ã™ã?falseを指定ã—ãŸå?åˆã?ã€ã‚¿ãƒ–ãŒè¡¨ç¤ºã•れãªããªã‚Šã¾ã™ã? 053 * (ãƒãƒ¼ãƒ«ã‚ºã§é¸æŠžä¸å¯ã«ãªã£ã¦ã?‚‹å ´åˆã?ã€ã“ã®å€¤ã¯ç„¡è¦–ã•れã¾ã? 054 * å?‚«ãƒ©ãƒ??値ã¯[カラãƒ?]=[値]ã®å½¢ã§ã€ãƒªãƒ³ã‚¯å…ˆã?JSPã«å¼•æ•°ã¨ã—ã¦æ¸¡ã•れã¾ã™ã? 055 * ã¾ãŸã?リンク先ã?JSPã«ã¤ã?¦ã¯ã€href属æ?ã§æŒ?®šã—ã¾ã™ã? 056 * 057 * â‘¡listType属æ?ã?TAG"ã®å ´å? 058 * tabListタグを記述ã—ã?個別ã«ã‚¿ãƒ–を定義ã—ã¾ã™ã? 059 * 制御å¯èƒ½ãªé ?›®ã¯ã€â‘ DBã®å ´åˆã¨åŒç‰ã§ã™ã? 060 * タブã?åå‰ã‚’定義ã™ã‚‹name属æ?ã¯ã€tabListã‚¿ã‚°ã§å¿?šå®šç¾©ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã? 061 * lbl属æ?ãŒæŒ‡å®šã•れã¦ã?ªã??åˆã?ã€name属æ?ã®ãƒ©ãƒ™ãƒ«åç§°ã‚’å–å¾—ã—ã¾ã™ã? 062 * タブã?リンクå…?SPåŠã?ã€ã‚¯ãƒ©ã‚¹å±žæ?ã«ã¤ã?¦ã¯ã€tabListã‚¿ã‚°ã§æŒ?®šãŒãªã??åˆã?tabListã‚¿ã‚°ã®å€¤ãŒé©ç”¨ã•れã¾ã™ã? 063 * 064 * [共通è¨å®š] 065 * åˆæœŸè¨å®šã§ã¯ã€ç¬¬1番目ã®"有効ãª"タブãŒè‡ªå‹•çš„ã«é–‹ã‹ã‚Œã¾ã™ã?(="true") 066 * å?‚¿ãƒ–ã?表示方法ã§ã€?¸æŠžä¸å¯èƒ½ãªã‚¿ãƒ–ãŒå˜åœ¨ã—ã¦ã?‚‹å ´åˆã?ã€ãれらをèªã¿é£›ã?ã—ãŸä¸Šã§ã€?有効ãª"タブを 067 * 検索ã—ã¾ã™ã? 068 * ã¾ãŸã?自動ã§é–‹ãタブã?ã€openTabName属æ?ã§æŒ?®šå¯èƒ½ã§ã‚りã€ã“れã«å¤‰æ•°ã‚’定義ã™ã‚‹ã“ã¨ã§ã€? 069 * ç”»é¢ãƒªãƒãƒ¼ãƒ‰æ™‚ã‚‚ã?é–‹ã„ã¦ã?Ÿã‚¿ãƒ–ã‚’å†åº¦é¸æŠžã•れãŸçŠ¶æ…‹ã§è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã? 070 * 071 * é¸æŠžã—ãŸã‚¿ãƒ–åŠã³éžé¸æŠžã?タブã?æž?·šã‚„ã€èƒŒæ™¯è‰²ç‰ã‚’変更ã™ã‚‹å ´åˆã?ã€custom.cssã§ã‚¯ãƒ©ã‚¹ã‚’定義ã—ã? 072 * 変更ã—ã¦ä¸‹ã•ã?? 073 * 074 * タブã?表示方å?水平方å?or 垂直方å?ã«ã¤ã?¦ã¯ã€orientation属æ?ã§å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã? 075 * (åˆæœŸå€¤ã¯ã€æ°´å¹³æ–¹å? 076 * 水平方å‘ã«ã—ãŸå ´åˆã?ã€listCount属æ?ã«ã‚ˆã‚Šå¼·åˆ¶çš?«ä¸?®šæ•°ã®ã‚¿ãƒ–を表示ã™ã‚‹æ¯Žã«ã€æ”¹è¡Œã‚’挿入ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 077 * 078 * ã“ã?タグを使用ã™ã‚‹å ´åˆã?ã€headã‚¿ã‚°ã§å¿?šuseTabLink="true"を指定ã—ã¦JavaScriptã‚’ãƒãƒ¼ãƒ‰ã—ã¦ä¸‹ã•ã?? 079 * 080 * å?±žæ?ã¯ã€{@XXXX} 変数ãŒä½¿ç”¨ã§ãã¾ã™ã? 081 * ã“れã¯ã€ServletRequest ã‹ã‚‰ã€XXXX ã‚’ã‚ーã«å€¤ã‚’å–りå?ã?ã“ã?変数ã«å‰²ã‚Šå½“ã¦ã¾ã™ã? 082 * ã¤ã¾ã‚Šã?ã“ã?XXXXã‚’ã‚ーã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆã™ã‚Œã?ã€ã“ã®å¤‰æ•°ã«å€¤ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 083 * 084 * @og.formSample 085 * â—å½¢å¼ï¼?lt;og:tabLink href="…" … /> 086 * â—body?šã‚ã‚?EVAL_BODY_BUFFERED:BODYを評価ã—ã?{@XXXX} ã‚’è§£æžã—ã¾ã? 087 * 088 * â—Tag定義?? 089 * <og:tabLink 090 * listType ã€TAG】タブã?ä¸?¦§ã‚’ã©ã“ã‹ã‚‰å–å¾—ã™ã‚‹ã‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:AUTO) 091 * href ã€TAG】リンク先ã?JSPを指定ã—ã¾ã?åˆæœŸå€¤:result.jsp) 092 * target ã€TAG】リンクã®ã‚¿ãƒ¼ã‚²ãƒ?ƒˆã‚’指定ã—ã¾ã?åˆæœŸå€¤:RESULT) 093 * openTab ã€TAG】リンク表示ã«ã‚¿ãƒ–リンクをè?å‹•ã§é–‹ãã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true[=é–‹ã]) 094 * openTabName ã€TAG】最åˆã«é–‹ãタブリンクã®åå‰ã‚’指定ã—ã¾ã? 095 * constKeys ã€TAG】次画é¢ã«æ¸¡ã™å®šæ•°ãƒ‘ラメーターã®ã‚ーを指定ã—ã¾ã? 096 * constVals ã€TAG】次画é¢ã«æ¸¡ã™å®šæ•°ãƒ‘ラメーターã®å€¤ã‚’指定ã—ã¾ã? 097 * listCount ã€TAGã€?行辺りã«è¡¨ç¤ºã™ã‚‹ã‚¿ãƒ–ã?数を指定ã—ã¾ã?åˆæœŸå€¤:10) 098 * selClass ã€TAGã€‘é¸æŠžã‚¿ãƒ–ã?クラスを指定ã—ã¾ã?åˆæœŸå€¤:selTab) 099 * unselClass ã€TAG】éžé¸æŠžã‚¿ãƒ–ã?クラスを指定ã—ã¾ã?åˆæœŸå€¤:unselTab) 100 * orientation ã€TAG】タブã?æ–¹å‘ã?横åž?Horizontal)ã‹ç¸¦åž?Vertical)を指定ã—ã¾ã?åˆæœŸå€¤:横åž? 101 * width ã€TAG】タブリンクã®å¹?‚’ % ã€px ã€ã¾ãŸã? "auto" ã§æŒ?®šã—ã¾ã? 102 * height ã€TAG】タブã?高ã•ã‚’ã?% ã€px ã€ã¾ãŸã? "auto" ã§æŒ?®šã—ã¾ã? 103 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 104 * > ... Body ... 105 * </og:tabLink> 106 * 107 * â—使用ä¾? 108 * â‘?Bã‹ã‚‰ã‚¿ãƒ–リストをå–å¾—ã™ã‚‹å?å? 109 * 110 * Body部åˆ?«è¨˜è¿°ã•れãŸã‚¯ã‚¨ãƒªã‚ˆã‚Šã‚¿ãƒ–ä¸?¦§ã‚’生æˆã—ã¾ã™ã? 111 * 112 * <og:tabLink 113 * listType = "DB" タブã?ä¸?¦§ã‚’ã©ã“ã‹ã‚‰å–å¾—ã™ã‚‹ã‹ 114 * href = "result.jsp" リンク先ã?JSP 115 * target = "RESULT" リンクターゲãƒ?ƒˆ 116 * openTab = "[true/false]" タブ表示後ã«ã‚¿ãƒ–を自動ã§é–‹ã 117 * openTabName = "{@PN} 自動ã§é–‹ãタブã?åå‰ 118 * constKeys = "KEY1" 次画é¢ã«å›ºå®šã§æ¸¡ã™ã‚ーä¸?¦§ 119 * constVals = "{@VAL1}" 次画é¢ã«å›ºå®šã§æ¸¡ã™å?ä¸?¦§ 120 * listCount = "10" 1行辺りã«è¡¨ç¤ºã™ã‚‹ã‚¿ãƒ–ã?æ•° 121 * selClass = "selTab" é¸æŠžã‚¿ãƒ–ã?クラス 122 * unselClass = "unselTab" éžé¸æŠžã‚¿ãƒ–ã?クラス 123 * width = "100px" タブリンクã®å¹? 124 * height = "50px" タブリンクã®é«˜ã• 125 * > 126 * select PN,HINM,'tabClass','query.jsp','ADMIN','false' from XX01 where PN = '{@PN}' order by PN 127 * </og:tabLink> 128 * 129 * â‘¡tabListã‚¿ã‚°ã‹ã‚‰ã‚¿ãƒ–リストを生æ?ã™ã‚‹å ´å? 130 * 131 * tabListタグよりタブä¸?¦§ã‚’生æˆã—ã¾ã™ã? 132 * 133 * <og:tabLink 134 * listType = "DB" タブã?ä¸?¦§ã‚’ã©ã“ã‹ã‚‰å–å¾—ã™ã‚‹ã‹ 135 * href = "result.jsp" リンク先ã?JSP 136 * target = "RESULT" リンクターゲãƒ?ƒˆ 137 * openTab = "[true/false]" タブ表示後ã«ã‚¿ãƒ–を自動ã§é–‹ã 138 * openTabName = "{@PN} 自動ã§é–‹ãタブã?åå‰ 139 * constKeys = "KEY1" 次画é¢ã«å›ºå®šã§æ¸¡ã™ã‚ーä¸?¦§ 140 * constVals = "{@VAL1}" 次画é¢ã«å›ºå®šã§æ¸¡ã™å?ä¸?¦§ 141 * listCount = "10" 1行辺りã«è¡¨ç¤ºã™ã‚‹ã‚¿ãƒ–ã?æ•° 142 * selClass = "selTab" é¸æŠžã‚¿ãƒ–ã?クラス 143 * unselClass = "unselTab" éžé¸æŠžã‚¿ãƒ–ã?クラス 144 * width = "100px" タブリンクã®å¹? 145 * height = "50px" タブリンクã®é«˜ã• 146 * > 147 * <og:tabList name="TAB1" href="result1.jsp" keys="PN,CDK" vals="ABC,V" /> 148 * <og:tabList name="TAB2" href="result2.jsp" keys="PN,CDK" vals="BCD,W" /> 149 * <og:tabList name="TAB3" href="result3.jsp" keys="PN,CDK" vals="CDE,X" /> 150 * </og:tabLink> 151 * 152 * @og.group ç”»é¢è¡¨ç¤º 153 * 154 * @version 0.9.0 2008/09/26 155 * @author Nakamura 156 * @since JDK1.4, 157 */ 158 public class TabLinkTag extends CommonTagSupport { 159 private static final String VERSION = "5.1.8.0 (2010/07/01)"; 160 private static final long serialVersionUID = 518020100701L; 161 162 /** リストã?ulã‚¿ã‚°ã®class属æ? */ 163 private static final String UL_TAG_START = "<ul class=\"tabList\">"; 164 private static final String UL_TAG_END = "</ul>"; 165 166 /** タブ表示をå?れ替ãˆã‚‹ãŸã‚ã®JavaScript関数 */ 167 private static final String CHANGE_TAB_SCRIPT = "changeTab"; 168 private static final String INITIAL_TAB_SCRIPT = "initialTabSelect"; 169 // "<script type=\"text/javascript\">addEvent(window,\"load\", initialTabSelect);</script>"; 170 171 /** 自動ã§é–‹ãタブã«ä»˜åŠ ã•れるID */ 172 private static final String FIRST_TAB_ID = "firstTab"; 173 174 /** リストå–得タイプã?Enum */ 175 private static enum LIST_TYPE { AUTO, DB, TAG }; 176 177 /** å†?ƒ¨å¤‰æ•° */ 178 private String query = null; 179 private transient List<TabData> tabData = new ArrayList<TabData>(); 180 181 /** ã‚¿ã‚°ã§è¨å®šã™ã‚‹å±žæ? */ 182 private LIST_TYPE type = LIST_TYPE.AUTO; 183 private String href = "result.jsp"; 184 private String target = "RESULT"; 185 private boolean openTab = true; 186 private String openTabName = null; 187 private String[] constKeys = null; 188 private String[] constVals = null; 189 private int listCount = 10; 190 private String selClass = "selTab"; 191 private String unselClass = "unselTab"; 192 private boolean isHorizontal = true; 193 private String width = "auto"; 194 private String height = "auto"; 195 196 /** 197 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 198 * 199 * @return 後続å?ç??æŒ?¤º( EVAL_BODY_BUFFERED ) 200 */ 201 @Override 202 public int doStartTag() { 203 return( EVAL_BODY_BUFFERED ); // Body を評価ã™ã‚‹ 204 } 205 206 /** 207 * Taglibã®ã‚¿ã‚°æœ¬ä½“を処ç?™ã‚?doAfterBody() ã‚?オーãƒã?ライドã—ã¾ã™ã? 208 * 209 * @return 後続å?ç??æŒ?¤º(SKIP_BODY) 210 */ 211 @Override 212 public int doAfterBody() { 213 query = getBodyString().trim(); 214 return ( SKIP_BODY ); 215 } 216 217 /** 218 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 219 * 220 * @og.rev 4.3.5.0 (2008/02/01) 処ç?Šã³å†?ƒ¨æ§‹é?を大å¹?«è¦‹ç›´ã? 221 * 222 * @return 後続å?ç??æŒ?¤º 223 */ 224 @Override 225 public int doEndTag() { 226 debugPrint(); 227 int rtnCode = EVAL_PAGE; 228 229 // 種別ã®è‡ªå‹•判定å?ç? 230 if( type == LIST_TYPE.AUTO ) { 231 if( query == null || query.length() == 0 ) { 232 type = LIST_TYPE.TAG; 233 } 234 else { 235 if( query.toUpperCase( Locale.JAPAN ).indexOf( "SELECT" ) >= 0 ) { 236 type = LIST_TYPE.DB; 237 } 238 else { 239 type = LIST_TYPE.TAG; 240 } 241 } 242 } 243 244 if( type == LIST_TYPE.DB ) { 245 makeTabsFromQuery(); 246 } 247 else if( type == LIST_TYPE.TAG ) { 248 makeTabsFromTag(); 249 } 250 251 // リンクä¸?¦§ãŒä½•ã‚‚è¨å®šã•れã¦ã?ªã??åˆã?ã€å?ç?—ãªã? 252 // if( tabData.size() > 0 ) { 253 if( ! tabData.isEmpty() ) { 254 makeTag(); 255 } 256 257 return( rtnCode ); 258 } 259 260 /** 261 * タグリブオブジェクトをリリースã—ã¾ã™ã? 262 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 263 */ 264 @Override 265 protected void release2() { 266 super.release2(); 267 query = null; 268 tabData = new ArrayList<TabData>(); 269 type = LIST_TYPE.AUTO; 270 href = "result.jsp"; 271 target = "RESULT"; 272 openTab = true; 273 openTabName = null; 274 constKeys = null; 275 constVals = null; 276 listCount = 10; 277 selClass = "selTab"; 278 unselClass = "unselTab"; 279 isHorizontal = true; 280 width = "auto"; 281 height = "auto"; 282 } 283 284 /** 285 * DBã‹ã‚‰ã‚¿ãƒ–リンクã®ä¸?¦§ã‚’作æ?ã—ã¾ã™ã? 286 * DBTableModelãŒä½œæ?ã•れãªã?行数ã?ã®å ´å?ã¯ã€ãƒªãƒ³ã‚¯ä¸?¦§ã¯ç”Ÿæ?ã•れã¾ã›ã‚“ã€? 287 */ 288 private void makeTabsFromQuery() { 289 DBTableModel table = DBTableModelUtil.makeDBTable( query, new String[0], getResource(), getApplicationInfo() ); 290 if( table == null || table.getRowCount() == 0 ) { 291 return; 292 } 293 294 boolean isSetLabel = false; 295 boolean isSetHref = false; 296 boolean isSetClazz = false; 297 boolean isSetRoles = false; 298 boolean isSetVisible = false; 299 if( table.getColumnCount() > 1 ) { isSetLabel = true; } 300 if( table.getColumnCount() > 2 ) { isSetHref = true; } 301 if( table.getColumnCount() > 3 ) { isSetClazz = true; } 302 if( table.getColumnCount() > 4 ) { isSetRoles = true; } 303 if( table.getColumnCount() > 5 ) { isSetVisible = true; } 304 305 int rowCount = table.getRowCount(); 306 String key = table.getColumnName( 0 ); 307 for( int row=0; row<rowCount; row++ ) { 308 String value = table.getValue( row, 0 ); 309 String label = ( isSetLabel ? StringUtil.nval( table.getValue( row, 1 ), value ) : value ); 310 String newHref = ( isSetHref ? StringUtil.nval( table.getValue( row, 2 ), href ) : href ); 311 String clazz = ( isSetClazz ? StringUtil.nval( table.getValue( row, 3 ), unselClass ) : unselClass ); 312 boolean visible = ( isSetRoles ? getUser().isAccess( table.getValue( row, 4 ) ) : true ); 313 if( visible ) { 314 visible = ( isSetVisible ? Boolean.valueOf( table.getValue( row, 5 ) ) : true ); 315 } 316 317 // 第1カラãƒ??カラãƒ?ã¨ãã?値ã¯ãƒªãƒ³ã‚¯ã®å¼•æ•°ã«å«ã‚ã‚‹ 318 newHref = XHTMLTag.addUrlEncode( newHref, XHTMLTag.urlEncode( key, value ) ); 319 320 if( visible ) { // visible=falseã®å ´åˆã?表示ã—ãªã? 321 tabData.add( new TabData( newHref, value, label, clazz, visible ) ); 322 } 323 } 324 } 325 326 /** 327 * タブリストã‹ã‚‰ã‚¿ãƒ–リンクã®ä¸?¦§ã‚’作æ?ã—ã¾ã™ã? 328 * (予ã‚addTagメソãƒ?ƒ‰ã«ã‚ˆã‚Šã€ãƒªãƒ³ã‚¯ä¸?¦§ãŒç™»éŒ²ã•れã¦ã?‚‹ãŸã‚ã€ã“ã“ã§ã¯ä½•も処ç?—ã¾ã›ã‚“) 329 * 330 * @see #addTag( String, String, String, String, boolean, String[], String[] ) 331 */ 332 private void makeTabsFromTag() { 333 // 何もã‚りã¾ã›ã‚“ã€?PMD エラー回é¿) 334 } 335 336 /** 337 * åã‚¿ã‚°ã§ã‚るタブリストタグã‹ã‚‰ã‚¿ãƒ–æƒ…å ±ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 338 * 339 * @param hr ç”»é¢URL 340 * @param name タブã?åå‰ 341 * @param label タブã?表示åç§° 342 * @param clz éžé¸æŠžçŠ¶æ…‹ã?タブã«ä»˜åŠ ã™ã‚‹classå? 343 * @param visible タブãŒé¸æŠžå¯èƒ½(ä¸èº«ã‚’表示ã§ãã‚‹ã‹ã©ã?‹) 344 * @param keys リンク先ã?JSPã«æ¸¡ã™ã‚ーä¸?¦§ 345 * @param vals リンク先ã?JSPã«æ¸¡ã™å?ä¸?¦§ 346 */ 347 protected void addTag( final String hr, final String name, final String label, final String clz 348 ,final boolean visible, final String[] keys, final String[] vals ) { 349 String newHref = StringUtil.nval( hr, href ); 350 if( keys != null && keys.length > 0 ) { 351 newHref = XHTMLTag.addUrlEncode( newHref, XHTMLTag.urlEncode( keys, vals ) ); 352 } 353 354 if( visible ) { // visible=falseã®å ´åˆã?表示ã—ãªã? 355 tabData.add( new TabData( newHref, name, StringUtil.nval( label, getLabel( name ) ), StringUtil.nval( clz, unselClass ), visible ) ); 356 } 357 } 358 359 /** 360 * リンクä¸?¦§ã‹ã‚‰HTMLタグを作æ?ã—ã¾ã™ã? 361 * 362 * @og.rev 5.0.2.0 (2009/11/01) openTab属æ?ãŒfalseã®å ´åˆã§ã‚‚ã?openTabNameã«æŒ?®šã•れãŸã‚¿ãƒ–ã«è‰²ä»˜ã‘ã™ã‚‹ã€? 363 * @og.rev 5.1.4.0 (2010/03/01) FF対å¿?FirstTabã®IDä»˜åŠ ã«é–¢ã™ã‚‹ãƒã‚°ã‚’ä¿®æ£ 364 */ 365 private void makeTag() { 366 StringBuilder buf = new StringBuilder(); 367 buf.append( HybsSystem.CR ); 368 369 boolean isExistFirst = false; 370 for( int idx=0; idx<tabData.size(); idx++ ) { 371 TabData tab = tabData.get( idx ); 372 373 if( idx % listCount == 0 ) { 374 if( idx > 0 ) { 375 buf.append( UL_TAG_END ).append( HybsSystem.CR ); 376 } 377 buf.append( UL_TAG_START ).append( HybsSystem.CR ); 378 } 379 380 // openTabNameãŒå®šç¾©ã•れã¦ã?ªã??åˆã?ã€?ç•ªç›®ã®æœ‰åйãªã‚¿ãƒ–ã‚’é–‹ã 381 // 5.1.4.0 (2010/03/01) ãƒã‚°ä¿®æ£ 382 if( !isExistFirst && tab.visible 383 && ( openTabName == null || openTabName.length() == 0 || openTabName.equals( tab.name ) ) ) { 384 buf.append( tab.makeLiTag( idx, true ) ); 385 isExistFirst = true; 386 } 387 else { 388 buf.append( tab.makeLiTag( idx, false ) ); 389 } 390 } 391 buf.append( UL_TAG_END ).append( HybsSystem.CR ); 392 393 // タブを自動ã§é–‹ããŸã‚ã®JavaScriptタグを発è¡? 394 // 5.1.4.0 (2010/03/01) FF対å¿? 395 if( openTab || ( openTabName != null && openTabName.length() > 0 ) ) { 396 buf.append( "<script type=\"text/javascript\">addEvent(window,\"load\", function() { " + INITIAL_TAB_SCRIPT + "(" ); 397 buf.append( openTab ); 398 buf.append( "); } );</script>" ); 399 } 400 401 jspPrint( buf.toString() ); 402 } 403 404 /** 405 * Tabãƒ??ã‚¿ を管ç?—ã¦ã?‚‹ å†?ƒ¨ã‚¯ãƒ©ã‚¹ 406 * 407 * タブã?æƒ??を管ç?™ã‚‹ãŸã‚ã?簡易的ãªã€å?部クラスã§ã™ã? 408 */ 409 private final class TabData { 410 // 引数ã¨ã—ã¦åˆæœŸè¨å®šã•れる変数 411 private final String href; 412 private final String name; 413 private final String label; 414 private final String clazz; 415 // ç¾çжã®å®Ÿè£?§ã¯ã€visible=falseã¯æ¸¡ã£ã¦ãã¾ã›ã‚“ãŒã?å°?¥çš?«disableã®çŠ¶æ…‹ã§ 416 // 表示ã—ãŸã??åˆç‰ã«å¯¾å¿œã™ã‚‹ãŸã‚残ã—ã¦ãŠãã¾ã™ã? 417 private final boolean visible; 418 419 /** 420 * コンストラクタ 421 * 422 * @param hr ç”»é¢URL 423 * @param nm タブã?åå‰ 424 * @param lbl タブã?表示åç§° 425 * @param clz éžé¸æŠžçŠ¶æ…‹ã?タブã«ä»˜åŠ ã™ã‚‹classå? 426 * @param vsb タブãŒé¸æŠžå¯èƒ½(ä¸èº«ã‚’表示ã§ãã‚‹ã‹ã©ã?‹) 427 */ 428 public TabData( final String hr, final String nm, final String lbl, final String clz, final boolean vsb ) { 429 href = hr; 430 name = nm; 431 label = lbl; 432 clazz = clz; 433 visible = vsb; 434 } 435 436 /** 437 * liã‚¿ã‚°ã®éƒ¨åˆ??æ–?—å?を生æˆã—ã¾ã™ã? 438 * 439 * @param idx 生æ?ã—ãŸã‚¿ãƒ–ã?インãƒ?ƒƒã‚¯ã‚¹ç•ªå· 440 * @param isFirst å§‹ã‚ã®æœ‰åйãªã‚¿ãƒ–ã‹ã©ã?‹ 441 * @return liã‚¿ã‚°æ–?—å? 442 */ 443 private String makeLiTag( final int idx, final boolean isFirst ) { 444 StringBuilder buf = new StringBuilder(); 445 buf.append( "<li class=\"" ).append( clazz ).append( "\"" ); 446 buf.append( " style=\"" ); 447 buf.append( " width: " ).append( width ).append( ";" ); 448 buf.append( " height: " ).append( height ).append( ";" ); 449 // 水平方å‘ã?å ´åˆã?ã¿float:leftã‚’ä»˜åŠ ã—ã?回り込ã¿(+解除)を行ã†ã€? 450 if( isHorizontal ) { 451 buf.append( " float: left;" ); 452 if( idx % listCount == 0 ) { 453 // 行ãŒå¤‰ã‚ã£ãŸã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ã€ãƒ†ã‚ストã?折り返ã—をクリア??·¦ãƒžã?ジン(+10px)を空ã‘ã‚‹ 454 buf.append( " clear: left; margin-left: " ); 455 // buf.append( Math.round( idx/listCount ) * 10 ).append( "px;" ); 456 // 4.3.4.4 (2009/01/01) Math.roundを呼ã³å‡ºã™æ„味ãŒãªã?Ÿã‚削除 457 buf.append( (idx/listCount) * 10 ).append( "px;" ); 458 } 459 } 460 buf.append( " \"" ); 461 buf.append( ">" ); 462 buf.append( makeLinkTag( isFirst ) ); 463 buf.append( "</li>" ).append( HybsSystem.CR ); 464 465 return buf.toString(); 466 } 467 468 /** 469 * aã‚¿ã‚°ã®éƒ¨åˆ??æ–?—å?を生æˆã—ã¾ã™ã? 470 * タブãŒé¸æŠžä¸å¯èƒ½ãªçŠ¶æ…‹ã?å ´åˆã?ã€ã‚¿ãƒ–ã?表示æ–?—å?ã‚’ãã®ã¾ã¾è¿”ã—ã¾ã™ã? 471 * 472 * @og.rev 4.3.6.4 戻るã?タンãŒã§ãªã?•題ã¸ã®å¯¾å¿? 473 * 474 * @param isFirst å§‹ã‚ã®æœ‰åйãªã‚¿ãƒ–ã‹ã©ã?‹ 475 * @return liã‚¿ã‚°æ–?—å? 476 */ 477 private String makeLinkTag( final boolean isFirst ) { 478 // if( !visible ) { return label; } 479 480 String newHref = XHTMLTag.addUrlEncode( href, XHTMLTag.urlEncode( constKeys, constVals ) ); 481 // 4.3.6.4 (2009/05/01) 482 // タブ画é¢ã‹ã‚‰é·ç§»ã—ãŸæ™‚ã«ã€ã‚¿ãƒ–ã?èªè¾¼ã«ã‚ˆã‚Šã€ç”»é¢IDãŒæ¶ˆãˆã¦ã—ã¾ã? 483 // 戻るã?タンãŒã§ãªã?¸å?åˆã¸ã®å¯¾å¿? 484 newHref = XHTMLTag.addUrlEncode( newHref, "GAMENID=" + getGUIInfoAttri( "KEY" ) ); 485 TagBuffer tag = new TagBuffer( "a" ); 486 tag.add( "href", newHref ); 487 tag.add( "name", name ); 488 tag.add( "target", target ); 489 tag.add( "onClick", CHANGE_TAB_SCRIPT + "( this, \"" + selClass + "\" );" ); 490 if ( isFirst ) { 491 tag.add( "id", FIRST_TAB_ID ); 492 } 493 tag.setBody( label ); 494 495 return tag.makeTag(); 496 } 497 } 498 499 /** 500 * ã€TAG】タブã?ä¸?¦§ã‚’ã©ã“ã‹ã‚‰å–å¾—ã™ã‚‹ã‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:AUTO)ã€? 501 * 502 * @og.tag 503 * タブã?ä¸?¦§ã‚’ã©ã“ã‹ã‚‰å–å¾—ã™ã‚‹ã‹ã‚’指定ã—ã¾ã™ã? 504 * ç¾çжã®å®Ÿè£?§ã¯ã€ã‚¯ã‚¨ãƒªã‚’発行ã—ã¦ä¸?¦§ã‚’生æˆã™ã‚‹ã?DBã€ã¨ã€åã‚¿ã‚°ã§ã‚ã‚‹ 505 * tabListã‚¿ã‚°ã‚’å?挙ã—ã¦ã‚¿ãƒ–を定義ã™ã‚‹ã€ŒTAGã€ãŒå®Ÿè£?•れã¦ã?¾ã™ã? 506 * 507 * ã¾ãŸã?「AUTOã€ã¨æŒ?®šã—ãŸå?åˆã?ã€Body部åˆ??å†?®¹ã«å¿œã˜ã¦è‡ªå‹•çš„ã«åˆ¤å®šã•れã¾ã™ã? 508 * åˆæœŸå€¤ã¯ã€?½¢AUTOã€ã§ã™ã? 509 * 510 * @param tp タブä¸?¦§å–å¾—æ–¹æ³?「AUTOã€? 511 */ 512 public void setListType( final String tp ) { 513 String typeStr = nval( getRequestParameter( tp ), null ); 514 try { 515 type = LIST_TYPE.valueOf( typeStr ); 516 } 517 catch ( IllegalArgumentException ex ) { 518 StringBuilder errBuf = new StringBuilder( 100 ); 519 errBuf.append( "listType ã¯" ); 520 for ( LIST_TYPE obj : LIST_TYPE.values() ) { 521 errBuf.append( ',' ); 522 errBuf.append( obj.name() ); 523 } 524 errBuf.append( "ã‹ã‚‰é¸ã‚“ã§ãã ã•ã„ã€? ); 525 throw new HybsSystemException( errBuf.toString(), ex ); 526 } 527 } 528 529 /** 530 * ã€TAG】リンク先ã?JSPを指定ã—ã¾ã?åˆæœŸå€¤:result.jsp)ã€? 531 * 532 * @og.tag 533 * リンク先ã?JSPを指定ã—ã¾ã™ã? 534 * ã“ã?タブリンクã¯ã€ã‚ãã¾ã§ã€Œã‚¿ãƒ–ã?形をã—ãŸãƒªãƒ³ã‚¯ã€ãªã®ã§ã€? 535 * target属æ?ã¨åˆã‚ã›ã¦ã‚»ãƒ?ƒˆã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã? 536 * åˆæœŸå€¤ã¯ã€?½¢result.jspã€ã§ã™ã? 537 * 538 * @param hr リンク先ã?JSP 539 */ 540 public void setHref( final String hr ) { 541 href = nval( getRequestParameter( hr ), href ); 542 } 543 544 /** 545 * ã€TAG】リンクã®ã‚¿ãƒ¼ã‚²ãƒ?ƒˆã‚’指定ã—ã¾ã?åˆæœŸå€¤:RESULT)ã€? 546 * 547 * @og.tag 548 * リンクã®ã‚¿ãƒ¼ã‚²ãƒ?ƒˆã‚’指定ã—ã¾ã™ã? 549 * ã“ã?タブリンクã¯ã€ã‚ãã¾ã§ã€Œã‚¿ãƒ–ã?形をã—ãŸãƒªãƒ³ã‚¯ã€ãªã®ã§ã€? 550 * target属æ?ã‚’è¨å®šã—ã€åˆ¥ã®ãƒ•レーãƒ?«å®Ÿç”»é¢ã‚’表示ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™ã? 551 * åˆæœŸå€¤ã¯ã€?½¢RESULTã€ã§ã™ã? 552 * 553 * @param tgt リンクターゲãƒ?ƒˆ 554 */ 555 public void setTarget( final String tgt ) { 556 target = nval( getRequestParameter( tgt ), target ); 557 } 558 559 /** 560 * ã€TAG】リンク表示ã«ã‚¿ãƒ–リンクをè?å‹•ã§é–‹ãã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true[=é–‹ã])ã€? 561 * 562 * @og.tag 563 * リンク表示ã«ã‚¿ãƒ–リンクをè?å‹•ã§é–‹ãã‹ã‚’æŒ?®šã—ã¾ã™ã? 564 * openTabName属æ?ãŒæŒ‡å®šã•れã¦ã?ªã??åˆã?自動ã§é–‹ãタブã? 565 * ã€?番目ã«è¡¨ç¤ºã•れãŸã‚¿ãƒ–リンクã€ã§ã™ã? 566 * æŒ?®šã•れã¦ã?‚‹å ´åˆã?ã€ãã®åå‰ã‚’æŒã¤ã€?番目ã€ã?タブãŒè‡ªå‹•ã§é–‹ã‹ã‚Œã¾ã™ã? 567 * タブãŒé¸æŠžä¸å¯èƒ½ãªçŠ¶æ…‹ã?å ´åˆã?ã€ã?1番目ã€ã?æ¡ä»¶ã‹ã‚‰é™¤å¤–ã•れã¾ã™ã? 568 * åˆæœŸå€¤ã¯ã€ã?true(é–‹ã)ã€ã§ã™ã? 569 * 570 * @param flag タブ表示後ã«è‡ªå‹•ã§ã‚¿ãƒ–ã‚’é–‹ãã‹[true:自動ã§é–‹ã/false:é–‹ã‹ãªã„] 571 */ 572 public void setOpenTab( final String flag ) { 573 openTab = nval( getRequestParameter( flag ), openTab ); 574 } 575 576 /** 577 * ã€TAG】最åˆã«é–‹ãタブリンクã®åå‰ã‚’指定ã—ã¾ã™ã? 578 * 579 * @og.tag 580 * æœ??ã«é–‹ãタブリンクã®ã‚ーを指定ã—ã¾ã™ã? 581 * 582 * @param name æœ??ã«é–‹ãタブリンクã®åå‰ 583 */ 584 public void setOpenTabName( final String name ) { 585 openTabName = nval( getRequestParameter( name ), openTabName ); 586 } 587 588 /** 589 * ã€TAG】次画é¢ã«æ¸¡ã™å®šæ•°ãƒ‘ラメーターã®ã‚ーを指定ã—ã¾ã™ã? 590 * 591 * @og.tag 592 * 次画é¢ã«æ¸¡ã™å®šæ•°ãƒ‘ラメーターã®ã‚ーを指定ã—ã¾ã™ã? 593 * ã‚ーã¯ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§è¤?•°æŒ?®šãŒå¯èƒ½ã§ã™ã? 594 * パラメーターã®å€¤ã¯ã€constVals属æ?ã®æ•°ã¨ä¸??ã—ã¦ã?‚‹å¿?¦ãŒã‚りã¾ã™ã? 595 * 596 * @param keys 定数パラメーターã®ã‚ー 597 * @see #setConstVals( String ) 598 */ 599 public void setConstKeys( final String keys ) { 600 constKeys = getCSVParameter( keys ); 601 } 602 603 /** 604 * ã€TAG】次画é¢ã«æ¸¡ã™å®šæ•°ãƒ‘ラメーターã®å€¤ã‚’指定ã—ã¾ã™ã? 605 * 606 * @og.tag 607 * 次画é¢ã«æ¸¡ã™å®šæ•°ãƒ‘ラメーターã®å€¤ã‚’指定ã—ã¾ã™ã? 608 * 値ã¯ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§è¤?•°æŒ?®šãŒå¯èƒ½ã§ã™ã? 609 * パラメーターã®å€¤ã¯ã€constKeys属æ?ã®æ•°ã¨ä¸??ã—ã¦ã?‚‹å¿?¦ãŒã‚りã¾ã™ã? 610 * 611 * @param vals 定数パラメーターã®ã‚ー 612 * @see #setConstKeys( String ) 613 */ 614 public void setConstVals( final String vals ) { 615 constVals = getCSVParameter( vals ); 616 } 617 618 /** 619 * ã€TAGã€?行辺りã«è¡¨ç¤ºã™ã‚‹ã‚¿ãƒ–ã?数を指定ã—ã¾ã?åˆæœŸå€¤:10)ã€? 620 * 621 * @og.tag 622 * 1行辺りã«è¡¨ç¤ºã™ã‚‹ã‚¿ãƒ–ã?数を指定ã—ã¾ã™ã? 623 * 1行辺りã?タブã?æ•°ãŒã“ã®è¨å®šã‚’è¶?ˆã‚‹ã¨ã€è?å‹•çš„ã«æŠ˜ã‚Šè¿”ã—ã¾ã™ã? 624 * ã¾ãŸã?æŠ˜ã‚Šè¿”ã—æ¯Žã«ã€å·¦ã«10pxã®ãƒžã?ジンをè¨ã‘ã¾ã™ã? 625 * åˆæœŸå€¤ã¯ã€?0ã§ã™ã? 626 * ã“ã?属æ?ã¯ã€orientationãŒHorizontal(水平方å?ã®å ´åˆã?ã¿æœ‰åйã§ã™ã? 627 * 628 * @param cnt 1行辺りã«è¡¨ç¤ºã™ã‚‹ã‚¿ãƒ–ã?æ•° 629 */ 630 public void setListCount( final String cnt ) { 631 listCount = nval( getRequestParameter( cnt ), listCount ); 632 } 633 634 /** 635 * ã€TAGã€‘é¸æŠžã‚¿ãƒ–ã?クラスを指定ã—ã¾ã?åˆæœŸå€¤:selTab)ã€? 636 * 637 * @og.tag 638 * タブãŒé¸æŠžã•れã¦ã?‚‹çŠ¶æ…‹ã«ã‚ã‚‹å ´åˆã?ã€ã‚¿ãƒ–部åˆ??クラスåã‚’æŒ?®šã—ã¾ã™ã? 639 * ã“ã?クラスåを変更ã™ã‚‹å ´åˆã?ã€ãã®ã‚¯ãƒ©ã‚¹ã‚’custom/custom.cssç‰ã§å†å®šç¾©ã—ã¦ä¸‹ã•ã?? 640 * åˆæœŸå€¤ã¯ã€selTabã§ã™ã? 641 * 642 * @param cls é¸æŠžã‚¿ãƒ–ã?クラスå? 643 */ 644 public void setSelClass( final String cls ) { 645 selClass = nval( getRequestParameter( cls ), selClass ); 646 } 647 648 /** 649 * ã€TAG】éžé¸æŠžã‚¿ãƒ–ã?クラスを指定ã—ã¾ã?åˆæœŸå€¤:unselTab)ã€? 650 * 651 * @og.tag 652 * タブãŒé¸æŠžã•れã¦ã?ªã?Š¶æ…‹ã«ã‚ã‚‹å ´åˆã?ã€ã‚¿ãƒ–部åˆ??クラスåã‚’æŒ?®šã—ã¾ã™ã? 653 * ã“ã?クラスåを変更ã™ã‚‹å ´åˆã?ã€ãã®ã‚¯ãƒ©ã‚¹ã‚’custom/custom.cssç‰ã§å†å®šç¾©ã—ã¦ä¸‹ã•ã?? 654 * åˆæœŸå€¤ã¯ã€unselTabã§ã™ã? 655 * 656 * @param cls é¸æŠžã‚¿ãƒ–ã?クラスå? 657 */ 658 public void setUnselClass( final String cls ) { 659 unselClass = nval( getRequestParameter( cls ), unselClass ); 660 } 661 662 /** 663 * ã€TAG】タブã?æ–¹å‘ã?横åž?Horizontal)ã‹ç¸¦åž?Vertical)を指定ã—ã¾ã?åˆæœŸå€¤:横åž?ã€? 664 * 665 * @og.tag 666 * タブã?ã€ä¸Šã«ã‚¿ãƒ–ãŒä¸¦ã¶æ¨ªåž‹ã¨å·¦ã«ã‚¿ãƒ–ãŒä¸¦ã¶ç¸¦åž‹ãŒã‚りã¾ã™ã? 667 * ã“ã?属æ?ã§ã¯ã€æ¨ªåž‹ã?ã€Horizontal ã€ç¸¦åž‹ã?ã€Vertical を指定ã—ã¾ã™ã? 668 * æŒ?®šã?ã€æ–‡å—å?ã®æœ??ã®ä¸?–‡å—を見ã¦ã?‚‹ã?‘ã§ã™ã?ã§ã€Hã‹Vã§ã‚‚æ§‹ã„ã¾ã›ã‚“ã€? 669 * 670 * 縦åž?Vertical)ã«ã—ãŸå ´åˆã?å?‚¿ãƒ–è¦ç´??ã€ãƒ•レーãƒ?‚µã‚¤ã‚ºã®å¹?«åˆã‚ã›ã¦ 671 * æœ?¤§ã§è¡¨ç¤ºã•れã¾ã™ã?å¹?‚’固定ã™ã‚‹å?åˆã?ã€width属æ?を指定ã—ã¦ä¸‹ã•ã?? 672 * 673 * åˆæœŸå€¤ã¯ã€æ¨ªåž?Horizontal) ã§ã™ã? 674 * 675 * @param ori タブã?æ–¹å‘ã?横åž?Horizontal)ã‹ç¸¦åž?Vertical)を指å®? 676 */ 677 public void setOrientation( final String ori ) { 678 String ori2 = nval( getRequestParameter( ori ),null ); 679 if( ori2 != null && ori2.length() > 0 ) { 680 char ch = ori2.toUpperCase(Locale.JAPAN).charAt( 0 ); 681 if( ch == 'H' ) { isHorizontal = true; } 682 else if( ch == 'V' ) { isHorizontal = false; } 683 else { 684 String errMsg = "orientation ã®æŒ?®šã?ã€H(orizontal) ã¾ãŸã?ã€V(ertical) ã§ã™ã?" 685 + " orientation=" + ori2 ; // 5.1.8.0 (2010/07/01) errMsg ä¿®æ£ 686 throw new HybsSystemException( errMsg ); 687 } 688 } 689 } 690 691 /** 692 * ã€TAG】タブリンクã®å¹?‚’ % ã€px ã€ã¾ãŸã? "auto" ã§æŒ?®šã—ã¾ã™ã? 693 * 694 * @og.tag 695 * åˆæœŸå€¤ã¯ã€?auto"(自動è¨å®? ã§ã™ã? 696 * autoã®å ´åˆã?横型表示ã§ã¯ã€æ–‡å—ã?å¹?«åˆã‚ã›ã¦è‡ªå‹•çš„ã«èª¿æ•´ã•れã€? 697 * 縦型表示ã®å ´åˆã?ã€ãƒ•レーãƒ?‚µã‚¤ã‚ºã«åˆã‚ã›ã¦æ‹¡å¤§ã—ã¦è¡¨ç¤ºã•れã¾ã™ã? 698 * 699 * @param wh å¹?(% ã€px ã€ã¾ãŸã? "auto" ) 700 */ 701 public void setWidth( final String wh ) { 702 width = nval( getRequestParameter( wh ),width ); 703 } 704 705 /** 706 * ã€TAG】タブã?高ã•ã‚’ã?% ã€px ã€ã¾ãŸã? "auto" ã§æŒ?®šã—ã¾ã™ã? 707 * 708 * @og.tag 709 * タブã?高ã•ã‚’ã?% ã€px ã€ã¾ãŸã? "auto" ã§æŒ?®šã—ã¾ã? 710 * åˆæœŸå€¤ã¯ã€?auto"(自動è¨å®? ã§ã™ã? 711 * 712 * @param ht 高㕠(% ã€px ã€ã¾ãŸã? "auto" ) 713 */ 714 public void setHeight( final String ht ) { 715 height = nval( getRequestParameter( ht ),height ); 716 } 717 718 /** 719 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 720 * 721 * @serialData 722 * 723 * @param strm ObjectOutputStreamオブジェクãƒ? 724 */ 725 private void writeObject( final ObjectOutputStream strm ) throws IOException { 726 strm.defaultWriteObject(); 727 } 728 729 /** 730 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 731 * 732 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã? 733 * 734 * @og.rev 5.1.8.0 (2010/07/01) tabData ã®åˆæœŸåŒ–å?ç?追åŠ? 735 * @serialData 736 * 737 * @param strm ObjectInputStreamオブジェクãƒ? 738 * @see #release2() 739 */ 740 private void readObject( final ObjectInputStream strm ) throws IOException, ClassNotFoundException { 741 strm.defaultReadObject(); 742 tabData = new ArrayList<TabData>(); 743 } 744 745 /** 746 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 747 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 748 * 749 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 750 */ 751 @Override 752 public String toString() { 753 return org.opengion.fukurou.util.ToString.title(this.getClass().getName() ) 754 .println( "VERSION" , VERSION ) 755 .println( "listType" , type.toString() ) 756 .println( "href" , href ) 757 .println( "target" , target ) 758 .println( "openTab" , openTab ) 759 .println( "openTabName" , openTabName ) 760 .println( "constKeys" , constKeys ) 761 .println( "constVals" , constVals ) 762 .println( "listCount" , listCount ) 763 .println( "selClass" , selClass ) 764 .println( "unselClass" , unselClass ) 765 .println( "isHorizontal" , isHorizontal ) 766 .println( "width" , width ) 767 .println( "height" , height ) 768 .println( "Other...", getAttributes().getAttribute() ).fixForm().toString(); 769 } 770 }