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.fukurou.util.StringUtil;
021 import org.opengion.fukurou.util.TagBuffer;
022
023 /**
024 * 明細棒グラフ(横棒ã?縦棒)に使用しますã?
025 *
026 * iBar タグは、TDタグの繰返し部に記述することで、横棒ã?縦棒グラフを作æ?しますã?
027 * 使用するには、headタグで、xxxx ="true" を設定するå¿?¦�がありますã?
028 * これにより、common/option/adjustBar.js が読み込まれますã?
029 *
030 * type は、グラフ要ç´??表示形式をæŒ?®šしますã?0?? が予ç´?ªžでã€?,1,2,6 が現時点で実è£?¸ˆみですã?
031 * 0:ラベル表示 1:横æ£?2:差åˆ?ž 6:縦æ£?
032 *
033 * <table border="1" frame="box" rules="all">
034 * <caption>棒グラãƒ?描画方å�?/caption>
035 * <tr><th colspan="2">横方向描画 </th><th colspan="2">縦方向描画 </th></tr>
036 * <tr><td>0</td><td>ラベル表示?ˆ比率ã€??捗率など??/td><td>5</td><td>(保留 未実è£? </td></tr>
037 * <tr><td>1</td><td>横æ£? </td><td>6</td><td>縦æ£? </td></tr>
038 * <tr><td>2</td><td>差åˆ?ž </td><td>7</td><td>(保留 未実è£? </td></tr>
039 * <tr><td>3</td><td>(保留 未実è£? </td><td>8</td><td>(保留 未実è£? </td></tr>
040 * <tr><td>4</td><td>(保留 未実è£? </td><td>9</td><td>(保留 未実è£? </td></tr>
041 * </table>
042 *
043 * value は、位置ã€?•·さを設定しますã?設定方法ã?、type 毎に異なりますã?
044 * baseVal は、グラフ要ç´??描画開始位置を設定しますã?
045 * type=2:差åˆ?ž は、value ??baseVal の場合ã?、è¶?�Žをã?value ??baseValの場合ã?、不足を表しますã?
046 * <table border="1" frame="box" rules="all">
047 * <caption>type 別設定方æ³?/caption>
048 * <tr><th>type</th><th>設定å? </th><th>説æ˜? </th></tr>
049 * <tr><td>0 </td><td>[V1] </td><td>xx% またã? 0.xxã€??比率を設定するã??ˆä¸?�¤のみ??, 描画位置?�baseValのå�?‚«ラãƒ??合計å? * カラãƒ?1の値</td></tr>
050 * <tr><td>1 </td><td>[V1],[V2],…,[Vn]</td><td>棒ã?長さ=[V1],[V2],…,[Vn]å�?‚«ラãƒ??合計å?</td></tr>
051 * <tr><td>2 </td><td>[V1],[V2],…,[Vn]</td><td>描画位置?�baseValのå�?‚«ラãƒ??合計å? , 差åˆ?ž の長さ=valueのå�?‚«ラãƒ??合計å? - baseValのå�?‚«ラãƒ?�ˆ計å?</td></tr>
052 * <tr><td>6 </td><td>[V1],[V2],…,[Vn]</td><td>棒ã?長さ=[V1],[V2],…,[Vn]å�?‚«ラãƒ??合計å?</td></tr>
053 * </table>
054 *
055 * color は、棒グラフ要ç´?¼?ype="1"(横æ£?,"6"(縦æ£??‰ã?色コードを設定しますã?
056 * こã?コードã?、予め決められた色画像を呼び出しますã?で、任意ã?色が使えるとã�?�†事ではありませんã€?
057 * <table border="1" frame="box" rules="all">
058 * <caption>色番号 対応表</caption>
059 * <tr><th>色番号</th><th>設定å? </th><th>棒色 </th><th>ã€?/th><th>横棒サンプル</th><th>縦棒サンプル</th></tr>
060 * <tr><td> 0</td><td>blue </td><td>� </td><td> </td><td style="background-image:url(../image/W_blue.png);"> �/td><td style="background-image:url(../image/H_blue.png);"> �/td></tr>
061 * <tr><td> 1</td><td>black </td><td>� </td><td> </td><td style="background-image:url(../image/W_black.png);"> �/td><td style="background-image:url(../image/H_black.png);"> �/td></tr>
062 * <tr><td> 2</td><td>brown </td><td>茶 </td><td> </td><td style="background-image:url(../image/W_brown.png);"> ã€?/td><td style="background-image:url(../image/H_brown.png);"> ã€?/td></tr>
063 * <tr><td> 3</td><td>green </td><td>� </td><td> </td><td style="background-image:url(../image/W_green.png);"> �/td><td style="background-image:url(../image/H_green.png);"> �/td></tr>
064 * <tr><td> 4</td><td>lightblue </td><td>è–?�’ </td><td> </td><td style="background-image:url(../image/W_lightblue.png);"> ã€?/td><td style="background-image:url(../image/H_lightblue.png);"> ã€?/td></tr>
065 * <tr><td> 5</td><td>lightgreen </td><td>è–?·? </td><td> </td><td style="background-image:url(../image/W_lightgreen.png);"> ã€?/td><td style="background-image:url(../image/H_lightgreen.png);"> ã€?/td></tr>
066 * <tr><td> 6</td><td>orange </td><td>オレンジ </td><td> </td><td style="background-image:url(../image/W_orange.png);"> ã€?/td><td style="background-image:url(../image/H_orange.png);"> ã€?/td></tr>
067 * <tr><td> 7</td><td>pink </td><td>ピンク </td><td> </td><td style="background-image:url(../image/W_pink.png);"> ã€?/td><td style="background-image:url(../image/H_pink.png);"> ã€?/td></tr>
068 * <tr><td> 8</td><td>purple </td><td>紫 </td><td> </td><td style="background-image:url(../image/W_purple.png);"> ã€?/td><td style="background-image:url(../image/H_purple.png);"> ã€?/td></tr>
069 * <tr><td> 9</td><td>red </td><td>赤 </td><td> </td><td style="background-image:url(../image/W_red.png);"> ã€?/td><td style="background-image:url(../image/H_red.png);"> ã€?/td></tr>
070 * <tr><td> 10</td><td>yellow </td><td>� </td><td> </td><td style="background-image:url(../image/W_yellow.png);"> �/td><td style="background-image:url(../image/H_yellow.png);"> �/td></tr>
071 * <tr><td> 11</td><td>navy </td><td>æ¿?´º </td><td> </td><td style="background-image:url(../image/W_navy.png);"> ã€?/td><td style="background-image:url(../image/H_navy.png);"> ã€?/td></tr>
072 * <tr><td> 12</td><td>teal </td><td>青ç·? </td><td> </td><td style="background-image:url(../image/W_teal.png);"> ã€?/td><td style="background-image:url(../image/H_teal.png);"> ã€?/td></tr>
073 * <tr><td> 13</td><td>gray </td><td>灰 </td><td> </td><td style="background-image:url(../image/W_gray.png);"> ã€?/td><td style="background-image:url(../image/H_gray.png);"> ã€?/td></tr>
074 * <tr><td> 14</td><td>indigo </td><td>� </td><td> </td><td style="background-image:url(../image/W_indigo.png);"> �/td><td style="background-image:url(../image/H_indigo.png);"> �/td></tr>
075 * <tr><td> 15</td><td>slategray </td><td>é‰?‰² </td><td> </td><td style="background-image:url(../image/W_slategray.png);"> ã€?/td><td style="background-image:url(../image/H_slategray.png);"> ã€?/td></tr>
076 * <tr><td> 16</td><td>chocorlate </td><td>チョコレーãƒ?</td><td> </td><td style="background-image:url(../image/W_chocorlate.png);"> ã€?/td><td style="background-image:url(../image/H_chocorlate.png);"> ã€?/td></tr>
077 * <tr><td> 17</td><td>darkgreen </td><td>深ç·? </td><td> </td><td style="background-image:url(../image/W_darkgreen.png);"> ã€?/td><td style="background-image:url(../image/H_darkgreen.png);"> ã€?/td></tr>
078 * <tr><td> 18</td><td>violet </td><td>すみã‚?</td><td> </td><td style="background-image:url(../image/W_violet.png);"> ã€?/td><td style="background-image:url(../image/H_violet.png);"> ã€?/td></tr>
079 * <tr><td> 19</td><td>darkslategray</td><td>深é‰?‰² </td><td> </td><td style="background-image:url(../image/W_darkslategray.png);"> ã€?/td><td style="background-image:url(../image/H_darkslategray.png);"> ã€?/td></tr>
080 * <tr><td> 20</td><td>lime </td><td>� </td><td> </td><td style="background-image:url(../image/W_lime.png);"> �/td><td style="background-image:url(../image/H_lime.png);"> �/td></tr>
081 * <tr><td> 21</td><td>aqua </td><td>水色 </td><td> </td><td style="background-image:url(../image/W_aqua.png);"> ã€?/td><td style="background-image:url(../image/H_aqua.png);"> ã€?/td></tr>
082 * <tr><td> 22</td><td>maroon </td><td>ひわだã�?‚� </td><td> </td><td style="background-image:url(../image/W_maroon.png);"> ã€?/td><td style="background-image:url(../image/H_maroon.png);"> ã€?/td></tr>
083 * <tr><td> 23</td><td>olive </td><td>オリーãƒ?</td><td> </td><td style="background-image:url(../image/W_olive.png);"> ã€?/td><td style="background-image:url(../image/H_olive.png);"> ã€?/td></tr>
084 * <tr><td> 24</td><td>silver </td><td>� </td><td> </td><td style="background-image:url(../image/W_silver.png);"> �/td><td style="background-image:url(../image/H_silver.png);"> �/td></tr>
085 * <tr><td> 25</td><td>fuchsia </td><td>赤紫 </td><td> </td><td style="background-image:url(../image/W_fuchsia.png);"> ã€?/td><td style="background-image:url(../image/H_fuchsia.png);"> ã€?/td></tr>
086 * <tr><td> �/td><td> </td><td> </td><td> </td><td> �/td><td> �/td></tr>
087 * <tr><td> BK</td><td>black2 </td><td>� </td><td> </td><td style="background-image:url(../image/W_black2.png);"> �/td><td style="background-image:url(../image/H_black2.png);"> �/td></tr>
088 * <tr><td> WT</td><td>white2 </td><td>白 </td><td> </td><td style="background-image:url(../image/W_white2.png);"> ã€?/td><td style="background-image:url(../image/H_white2.png);"> ã€?/td></tr>
089 * <tr><td> BL</td><td>blue2 </td><td>� </td><td> </td><td style="background-image:url(../image/W_blue2.png);"> �/td><td style="background-image:url(../image/H_blue2.png);"> �/td></tr>
090 * <tr><td> RD</td><td>red2 </td><td>赤 </td><td> </td><td style="background-image:url(../image/W_red2.png);"> ã€?/td><td style="background-image:url(../image/H_red2.png);"> ã€?/td></tr>
091 * <tr><td> YL</td><td>yellow2 </td><td>� </td><td> </td><td style="background-image:url(../image/W_yellow2.png);"> �/td><td style="background-image:url(../image/H_yellow2.png);"> �/td></tr>
092 * </table>
093 *
094 * colorNo 色番号は、色コードを直接æŒ?®šするã?ではなくã?番号でæŒ?®šするå?合に使用しますã?
095 * 棒グラフ要ç´?¼?ype="1"(横æ£?,"6"(縦æ£??‰ã?色を設定しますã?
096 * "1??5 , BK,WT,BL,RD,YL" の色番号でæŒ?®šしますã?
097 * 色番号は、与えた数字をå†?ƒ¨色数で割り算した余を使用しますã?でã€??番の場合でã‚?
098 * 繰返し使われますã?特殊な色として、BK,WT,BL,RD,YLは、番号ではなく記号でæŒ?®šできますã?
099 *
100 * zeroBorder はã€?true" で、å?がゼロの時にもã?æœ?°�ã?バã?を表示するã€?
101 *
102 * graphThick は、グラフã?バã?のå¹?‚’æŒ?®šしますã?
103 *
104 * @og.formSample
105 * ●形式ï¼?lt;og:iBar ... />
106 * ●body?šなã�?
107 * ●前提:headタグで、adjustEvent="Bar" を指定してくださいã€?
108 *
109 * ●Tag定義??
110 * <og:iBar
111 * type 【TAG】グラフ要ç´??表示形式を設å®?0:ラベル表示 1:横æ£?2:差åˆ?ž 6:縦æ£?(å¿??)
112 * value 【TAG】グラフ要ç´??位置ã€?•·さを設å®?typeにより設定方法が異なã‚?(å¿??)
113 * baseVal 【TAG】グラフ要ç´??描画開始位置を設å®?type=0,2の場合å¿??)
114 * color 【TAG】棒グラフ要ç´?¼?ype="1"(横æ£?,"6"(縦æ£??‰ã?色コードを設定するã?
115 * colorNo 【TAGã€?1??5 , BK,WT,BL,RD,YL" の色番号を設定するã?
116 * text 【TAG】バー上に表示するãƒ?‚ストをæŒ?®šしますã?
117 * href 【TAG】リンク作æ?時ã?値を設定しますã?
118 * target 【TAG】リンク作æ?時ã?ターゲãƒ?ƒˆ名をæŒ?®šしますã?
119 * optionAttributes 【TAGã€?{kay:val,key:val} 形式で、属æ?を追åŠ?�—ますã?
120 * zeroBorder 【TAG】最小ã?バã?を表示するかどã�?�‹[true/false]を指定しまã�?初期値:false)
121 * graphThick 【TAG】グラフã?バã?のå¹?‚’æŒ?®šしますã?
122 * paddingLeft 【TAG】ガントバーの間ã?左区åˆ?‚Šスペã?スを指定しまã�?初期値=null)
123 * paddingRigth 【TAG】ガントバーの間ã?右区åˆ?‚Šスペã?スを指定しまã�?初期値=null)
124 * debug 【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
125 * />
126 *
127 * ●使用ä¾?
128 * <og:view command="{@command}" />
129 * <og:tbody rowspan="1" >
130 * <tr>
131 * <og:td>
132 * <og:iBar
133 * type = "X"
134 * value = "[V1],[V2],…,[Vn]"
135 * baseVal = "[BV1],[BV2],…,[BVn]"
136 * color = "C1,C2,…,Cn"
137 * />
138 * </td> </tr>
139 * </og:tbody>
140 * </og:view>
141 *
142 * @og.rev 5.6.3.2 (2013/04/12) 新規作æ?
143 * @og.group 画面部å“?
144 *
145 * @version 5.0
146 * @author Kazuhiko Hasegawa
147 * @since JDK1.7,
148 */
149 public class ViewIBarTag extends CommonTagSupport {
150 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
151 private static final String VERSION = "5.6.4.3 (2013/05/24)" ;
152
153 private static final long serialVersionUID = 564320130524L ;
154
155 /** type 引数に渡す事ã?出来ã‚?タイプリスãƒ? */
156 private static final String[] TYPE_LIST = new String[] { "0" , "1" , "2" , "6" };
157
158 private TagBuffer tag = new TagBuffer( "iBar" ) ;
159
160 // ペã?ジå†?? iBar タグのid設定用のユニã?ク番号ã€?
161 // java.util.concurrent.atomic.AtomicInteger を使ã�?�¾でもなã�??
162 private static int tagId = 100;
163
164 /**
165 * Taglibの終äº?‚¿グが見つかったときに処ç�?�™ã‚?doEndTag() ã‚?オーバã?ライドしますã?
166 *
167 * @og.rev 5.8.1.0 (2014/11/07) HTML5対応ã?javaScriptで、BODYがなã�?�¨入れ子になってしまã�??
168 * @return 後続å?ç�??æŒ?¤º
169 */
170 @Override
171 public int doEndTag() {
172 debugPrint(); // 4.0.0 (2005/02/28)
173
174 tag.add( "id",getTagId() );
175
176 tag.setBody( "<!-- -->" ); // 5.8.1.0 (2014/11/07) HTML5対応ã?
177 jspPrint( tag.makeTag() );
178
179 return(EVAL_PAGE); // ペã?ジの残りを評価するã€?
180 }
181
182 /**
183 * タグリブオブジェクトをリリースしますã?
184 * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
185 *
186 */
187 @Override
188 protected void release2() {
189 super.release2();
190 tag = new TagBuffer( "iBar" );
191 }
192
193 /**
194 * 【TAG】グラフ要ç´??表示形式を設å®?0:ラベル表示 1:横æ£?2:差åˆ?ž 6:縦æ£?しまã�?å¿??)ã€?
195 *
196 * @og.tag
197 * type は、グラフ要ç´??表示形式をæŒ?®šしますã?0?? が予ç´?ªžでã€?,1,2,6 が現時点で実è£?¸ˆみですã?
198 * 0:ラベル表示 1:横æ£?2:差åˆ?ž 6:縦æ£?
199 *
200 * @param type グラフ要ç´??表示形式[0:ラベル表示 1:横æ£?2:差åˆ?ž 6:縦棒]
201 */
202 public void setType( final String type ) {
203 String tmpType = StringUtil.nval( getRequestParameter( type ),null );
204
205 if( tmpType == null || !check( tmpType, TYPE_LIST ) ) {
206 String errMsg = "æŒ?®šã?表示形å¼?type)はå¿??かã?またã?、指定ã?値のみ登録可能ですã?"
207 + HybsSystem.CR
208 + "type=[" + tmpType + "] "
209 + HybsSystem.CR
210 + "登録可能な値=" + StringUtil.array2csv( TYPE_LIST ) ;
211 throw new HybsSystemException( errMsg );
212 }
213
214 tag.add( "type",tmpType );
215 }
216
217 /**
218 * 【TAG】グラフ要ç´??位置ã€?•·さを設定しまã�?typeにより設定方法が異なã‚?(å¿??)
219 *
220 * @og.tag
221 * value は、グラフ要ç´??位置ã€?•·さを設定しますã?設定方法ã?、type 毎に異なりますã?
222 * baseVal は、グラフ要ç´??描画開始位置を設定しますã?
223 * type=2:差åˆ?ž は、value ??baseVal の場合ã?、è¶?�Žをã?value ??baseValの場合ã?、不足を表しますã?
224 * <table border="1" frame="box" rules="all">
225 * <caption>グラフã?type別設定方æ³?/caption>
226 * <tr><th>type</th><th>設定å? </th><th>説æ˜? </th></tr>
227 * <tr><td>0 </td><td>[V1] </td><td>xx% またã? 0.xxã€??比率を設定するã??ˆä¸?�¤のみ?? 描画位置?�baseValのå�?‚«ラãƒ??合計å? * カラãƒ?1の値</td></tr>
228 * <tr><td>1 </td><td>[V1],[V2],…,[Vn]</td><td>棒ã?長さ=[V1],[V2],…,[Vn]å�?‚«ラãƒ??合計å?</td></tr>
229 * <tr><td>2 </td><td>[V1],[V2],…,[Vn]</td><td>描画位置?�baseValのå�?‚«ラãƒ??合計å? , 差åˆ?ž の長さ=valueのå�?‚«ラãƒ??合計å? - baseValのå�?‚«ラãƒ?�ˆ計å?</td></tr>
230 * <tr><td>6 </td><td>[V1],[V2],…,[Vn]</td><td>棒ã?長さ=[V1],[V2],…,[Vn]å�?‚«ラãƒ??合計å?</td></tr>
231 * </table>
232 *
233 * @param val グラフ要ç´??位置ã€?•·ã�?
234 */
235 public void setValue( final String val ) {
236 String tmpVal = StringUtil.nval( getRequestParameter( val ),null );
237
238 if( tmpVal == null ) {
239 String errMsg = "value は、å¿??ですã?";
240 throw new HybsSystemException( errMsg );
241 }
242
243 tag.add( "value",tmpVal );
244 }
245
246 /**
247 * 【TAG】グラフ要ç´??描画開始位置を設定しますã?
248 *
249 * @og.tag
250 * こã?値は、type=0,2の場合ã?å¿??になりますã?
251 * type=2:差åˆ?ž は、value ??baseVal の場合ã?、è¶?�Žをã?value ??baseValの場合ã?、不足を表しますã?
252 * <table border="1" frame="box" rules="all">
253 * <caption>グラフã?type別設定方æ³?/caption>
254 * <tr><th>type</th><th>設定å? </th><th>説æ˜? </th></tr>
255 * <tr><td>0 </td><td>[V1] </td><td>xx% またã? 0.xxã€??比率を設定するã??ˆä¸?�¤のみ??, 描画位置?�baseValのå�?‚«ラãƒ??合計å? * カラãƒ?1の値</td></tr>
256 * <tr><td>2 </td><td>[V1],[V2],…,[Vn]</td><td>描画位置?�baseValのå�?‚«ラãƒ??合計å? , 差åˆ?ž の長さ=valueのå�?‚«ラãƒ??合計å? - baseValのå�?‚«ラãƒ?�ˆ計å?</td></tr>
257 * </table>
258 *
259 * @param bval グラフ要ç´??描画開始位置
260 */
261 public void setBaseVal( final String bval ) {
262 tag.add( "baseVal",StringUtil.nval( getRequestParameter( bval ), null ) );
263 }
264
265 /**
266 * 【TAG】棒グラフ要ç´?¼?ype="1"(横æ£?,"6"(縦æ£??‰ã?色コードを設定しますã?
267 *
268 * @og.tag
269 * color は、棒グラフ要ç´?¼?ype="1"(横æ£?,"6"(縦æ£??‰ã?色コードを設定しますã?
270 * こã?コードã?、予め決められた色画像を呼び出しますã?で、任意ã?色が使えるとã�?�†事ではありませんã€?
271 * 色æŒ?®šã?、横棒ã?場合ã?、image/W_色コーãƒ?png で、縦棒ã?場合ã?、image/H_色コーãƒ?png の画像を使ã�?�¾すã?
272 * 色コーãƒ?と 色番号が同時にæŒ?®šされた場合ã?、色コーãƒ?が優先されますã?
273 *
274 * type=2:差åˆ?ž は、value ??baseVal の場合ã?、è¶?�Žをã?value ??baseValの場合ã?、不足を表しますã?
275 * <table border="1" frame="box" rules="all">
276 * <caption>色番号 対応表</caption>
277 * <tr><th>色番号</th><th>設定å? </th><th>棒色 </th><th>ã€?/th><th>横棒サンプル</th><th>縦棒サンプル</th></tr>
278 * <tr><td> 0</td><td>blue </td><td>� </td><td> </td><td style="background-image:url(../image/W_blue.png);"> �/td><td style="background-image:url(../image/H_blue.png);"> �/td></tr>
279 * <tr><td> 1</td><td>black </td><td>� </td><td> </td><td style="background-image:url(../image/W_black.png);"> �/td><td style="background-image:url(../image/H_black.png);"> �/td></tr>
280 * <tr><td> 2</td><td>brown </td><td>茶 </td><td> </td><td style="background-image:url(../image/W_brown.png);"> ã€?/td><td style="background-image:url(../image/H_brown.png);"> ã€?/td></tr>
281 * <tr><td> 3</td><td>green </td><td>� </td><td> </td><td style="background-image:url(../image/W_green.png);"> �/td><td style="background-image:url(../image/H_green.png);"> �/td></tr>
282 * <tr><td> 4</td><td>lightblue </td><td>è–?�’ </td><td> </td><td style="background-image:url(../image/W_lightblue.png);"> ã€?/td><td style="background-image:url(../image/H_lightblue.png);"> ã€?/td></tr>
283 * <tr><td> 5</td><td>lightgreen </td><td>è–?·? </td><td> </td><td style="background-image:url(../image/W_lightgreen.png);"> ã€?/td><td style="background-image:url(../image/H_lightgreen.png);"> ã€?/td></tr>
284 * <tr><td> 6</td><td>orange </td><td>オレンジ </td><td> </td><td style="background-image:url(../image/W_orange.png);"> ã€?/td><td style="background-image:url(../image/H_orange.png);"> ã€?/td></tr>
285 * <tr><td> 7</td><td>pink </td><td>ピンク </td><td> </td><td style="background-image:url(../image/W_pink.png);"> ã€?/td><td style="background-image:url(../image/H_pink.png);"> ã€?/td></tr>
286 * <tr><td> 8</td><td>purple </td><td>紫 </td><td> </td><td style="background-image:url(../image/W_purple.png);"> ã€?/td><td style="background-image:url(../image/H_purple.png);"> ã€?/td></tr>
287 * <tr><td> 9</td><td>red </td><td>赤 </td><td> </td><td style="background-image:url(../image/W_red.png);"> ã€?/td><td style="background-image:url(../image/H_red.png);"> ã€?/td></tr>
288 * <tr><td> 10</td><td>yellow </td><td>� </td><td> </td><td style="background-image:url(../image/W_yellow.png);"> �/td><td style="background-image:url(../image/H_yellow.png);"> �/td></tr>
289 * <tr><td> 11</td><td>navy </td><td>æ¿?´º </td><td> </td><td style="background-image:url(../image/W_navy.png);"> ã€?/td><td style="background-image:url(../image/H_navy.png);"> ã€?/td></tr>
290 * <tr><td> 12</td><td>teal </td><td>青ç·? </td><td> </td><td style="background-image:url(../image/W_teal.png);"> ã€?/td><td style="background-image:url(../image/H_teal.png);"> ã€?/td></tr>
291 * <tr><td> 13</td><td>gray </td><td>灰 </td><td> </td><td style="background-image:url(../image/W_gray.png);"> ã€?/td><td style="background-image:url(../image/H_gray.png);"> ã€?/td></tr>
292 * <tr><td> 14</td><td>indigo </td><td>� </td><td> </td><td style="background-image:url(../image/W_indigo.png);"> �/td><td style="background-image:url(../image/H_indigo.png);"> �/td></tr>
293 * <tr><td> 15</td><td>slategray </td><td>é‰?‰² </td><td> </td><td style="background-image:url(../image/W_slategray.png);"> ã€?/td><td style="background-image:url(../image/H_slategray.png);"> ã€?/td></tr>
294 * <tr><td> 16</td><td>chocorlate </td><td>チョコレーãƒ?</td><td> </td><td style="background-image:url(../image/W_chocorlate.png);"> ã€?/td><td style="background-image:url(../image/H_chocorlate.png);"> ã€?/td></tr>
295 * <tr><td> 17</td><td>darkgreen </td><td>深ç·? </td><td> </td><td style="background-image:url(../image/W_darkgreen.png);"> ã€?/td><td style="background-image:url(../image/H_darkgreen.png);"> ã€?/td></tr>
296 * <tr><td> 18</td><td>violet </td><td>すみã‚?</td><td> </td><td style="background-image:url(../image/W_violet.png);"> ã€?/td><td style="background-image:url(../image/H_violet.png);"> ã€?/td></tr>
297 * <tr><td> 19</td><td>darkslategray</td><td>深é‰?‰² </td><td> </td><td style="background-image:url(../image/W_darkslategray.png);"> ã€?/td><td style="background-image:url(../image/H_darkslategray.png);"> ã€?/td></tr>
298 * <tr><td> 20</td><td>lime </td><td>� </td><td> </td><td style="background-image:url(../image/W_lime.png);"> �/td><td style="background-image:url(../image/H_lime.png);"> �/td></tr>
299 * <tr><td> 21</td><td>aqua </td><td>水色 </td><td> </td><td style="background-image:url(../image/W_aqua.png);"> ã€?/td><td style="background-image:url(../image/H_aqua.png);"> ã€?/td></tr>
300 * <tr><td> 22</td><td>maroon </td><td>ひわだã�?‚� </td><td> </td><td style="background-image:url(../image/W_maroon.png);"> ã€?/td><td style="background-image:url(../image/H_maroon.png);"> ã€?/td></tr>
301 * <tr><td> 23</td><td>olive </td><td>オリーãƒ?</td><td> </td><td style="background-image:url(../image/W_olive.png);"> ã€?/td><td style="background-image:url(../image/H_olive.png);"> ã€?/td></tr>
302 * <tr><td> 24</td><td>silver </td><td>� </td><td> </td><td style="background-image:url(../image/W_silver.png);"> �/td><td style="background-image:url(../image/H_silver.png);"> �/td></tr>
303 * <tr><td> 25</td><td>fuchsia </td><td>赤紫 </td><td> </td><td style="background-image:url(../image/W_fuchsia.png);"> ã€?/td><td style="background-image:url(../image/H_fuchsia.png);"> ã€?/td></tr>
304 * <tr><td> �/td><td> </td><td> </td><td> </td><td> �/td><td> �/td></tr>
305 * <tr><td> BK</td><td>black2 </td><td>� </td><td> </td><td style="background-image:url(../image/W_black2.png);"> �/td><td style="background-image:url(../image/H_black2.png);"> �/td></tr>
306 * <tr><td> WT</td><td>white2 </td><td>白 </td><td> </td><td style="background-image:url(../image/W_white2.png);"> ã€?/td><td style="background-image:url(../image/H_white2.png);"> ã€?/td></tr>
307 * <tr><td> BL</td><td>blue2 </td><td>� </td><td> </td><td style="background-image:url(../image/W_blue2.png);"> �/td><td style="background-image:url(../image/H_blue2.png);"> �/td></tr>
308 * <tr><td> RD</td><td>red2 </td><td>赤 </td><td> </td><td style="background-image:url(../image/W_red2.png);"> ã€?/td><td style="background-image:url(../image/H_red2.png);"> ã€?/td></tr>
309 * <tr><td> YL</td><td>yellow2 </td><td>� </td><td> </td><td style="background-image:url(../image/W_yellow2.png);"> �/td><td style="background-image:url(../image/H_yellow2.png);"> �/td></tr>
310 * </table>
311 *
312 * @param color グラフ要ç´??位置ã€?•·ã�?
313 */
314 public void setColor( final String color ) {
315 tag.add( "color",StringUtil.nval( getRequestParameter( color ),null ) );
316 }
317
318 /**
319 * 【TAG】グラフ要ç´??色番号を設定しますã?
320 *
321 * @og.tag
322 * 色番号は、色コードを直接æŒ?®šするã?ではなくã?番号でæŒ?®šするå?合に使用しますã?
323 * 棒グラフ要ç´?¼?ype="1"(横æ£?,"6"(縦æ£??‰ã?色を設定しますã?
324 * "1??5 , BK,WT,BL,RD,YL" の色番号でæŒ?®šしますã?
325 * 色番号は、与えた数字をå†?ƒ¨色数で割り算した余を使用しますã?でã€??番の場合でã‚?
326 * 繰返し使われますã?特殊な色として、BK,WT,BL,RD,YLは、番号ではなく記号でæŒ?®šできますã?
327 * 色コーãƒ?と 色番号が同時にæŒ?®šされた場合ã?、色コーãƒ?が優先されますã?
328 *
329 * @param clrNo グラフ要ç´??描画開始位置
330 * @see #setColor( String )
331 */
332 public void setColorNo( final String clrNo ) {
333 tag.add( "colorNo",StringUtil.nval( getRequestParameter( clrNo ),null ) );
334 }
335
336 /**
337 * 【TAG】バー上に表示するãƒ?‚ストをæŒ?®šしますã?
338 *
339 * @og.tag
340 * バã?の上に、å?などのæ–?—を重ã?て表示できますã?
341 *
342 * @param text バã?上に表示するãƒ?‚スãƒ?
343 */
344 public void setText( final String text ) {
345 tag.add( "text",StringUtil.nval( getRequestParameter( text ),null ) );
346 }
347
348 /**
349 * 【TAG】リンク作æ?時ã?値を設定しますã?
350 *
351 * @og.tag
352 * バã?の上ã?æ–?—に対して、リンクを作æ?できますã?
353 *
354 * @param href バã?上に表示するãƒ?‚スãƒ?
355 * @see #setTarget( String )
356 */
357 public void setHref( final String href ) {
358 tag.add( "href",StringUtil.nval( getRequestParameter( href ),null ) );
359 }
360
361 /**
362 * 【TAG】リンク作æ?時ã?ターゲãƒ?ƒˆ名をæŒ?®šしますã?
363 *
364 * @og.tag
365 * バã?の上ã?æ–?—に対して、リンクを作æ?するときã?、ターゲãƒ?ƒˆ名をæŒ?®šできますã?
366 *
367 * @param target リンク作æ?時ã?ターゲãƒ?ƒˆ
368 * @see #setHref( String )
369 */
370 public void setTarget( final String target ) {
371 tag.add( "target",StringUtil.nval( getRequestParameter( target ),null ) );
372 }
373
374 /**
375 * 【TAG】既定ã?属æ?以外ã?属æ?を追åŠ?�—ますã?
376 *
377 * @og.tag
378 * {kay:val,key:val} 形式で、属æ?を追åŠ?�—ますã?
379 *
380 * @param optAtt 属æ?を追åŠ?
381 */
382 public void setOptionAttributes( final String optAtt ) {
383 tag.add( "optionAttributes",StringUtil.nval( getRequestParameter( optAtt ),null ) );
384 }
385
386 /**
387 * 【TAG】最小ã?バã?を表示するかどã�?�‹[true/false]を指定しまã�?初期値:false)
388 *
389 * @og.tag
390 * 設定å?がã?ゼロの場合に、バーをå?したã�??合ã?、true にã€?
391 * 何も出したくなã�??合ã?、false に設定しますã?
392 * 初期値は、false(バã?をå?さなã�? ですã?
393 *
394 * @param zeroBorder æœ?°�ã?バã?を表示するかどã�?�‹[true/false]
395 */
396 public void setZeroBorder( final String zeroBorder ) {
397 tag.add( "zeroBorder",StringUtil.nval( getRequestParameter( zeroBorder ),null ) );
398 }
399
400 /**
401 * 【TAG】グラフã?バã?のå¹?‚’æŒ?®šしますã?
402 *
403 * @og.tag
404 * 何もæŒ?®šしなã�??合ã?ã€??常のバã?の画像ファイルが適用されますã?
405 *
406 * @param graphThick グラフã?バã?のå¹?
407 */
408 public void setGraphThick( final String graphThick ) {
409 tag.add( "graphThick",StringUtil.nval( getRequestParameter( graphThick ),null ) );
410 }
411
412 /**
413 * 【TAG】バーの間ã?左区åˆ?‚Šスペã?スをピクセルでæŒ?®šしまã�?初期値:null)
414 *
415 * @og.tag
416 * バã?表示で連続して同じ色で繋げるå?合ã?くっつã�?�¦表示されますã?
417 * これをã?区別できるように、左区åˆ?‚Šスペã?スをピクセルでæŒ?®šしますã?
418 *
419 * 初期値は、null(属æ?をå?力しなã�? ですã?
420 *
421 * @og.rev 5.6.4.3 (2013/05/24) 新規追åŠ?
422 *
423 * @param paddingLeft 左区åˆ?‚Šスペã?ス
424 * @see #setPaddingRigth( String )
425 */
426 public void setPaddingLeft( final String paddingLeft ) {
427 tag.add( "paddingLeft",StringUtil.nval( getRequestParameter( paddingLeft ),null ) );
428 }
429
430 /**
431 * 【TAG】バーの間ã?右区åˆ?‚Šスペã?スをピクセルでæŒ?®šしまã�?初期値:null)
432 *
433 * @og.tag
434 * バã?表示で連続して同じ色で繋げるå?合ã?くっつã�?�¦表示されますã?
435 * これをã?区別できるように、右区åˆ?‚Šスペã?スをピクセルでæŒ?®šしますã?
436 *
437 * 初期値は、null(属æ?をå?力しなã�? ですã?
438 *
439 * @og.rev 5.6.4.3 (2013/05/24) 新規追åŠ?
440 *
441 * @param paddingRigth 左区åˆ?‚Šスペã?ス
442 * @see #setPaddingLeft( String )
443 */
444 public void setPaddingRigth( final String paddingRigth ) {
445 tag.add( "paddingRigth",StringUtil.nval( getRequestParameter( paddingRigth ),null ) );
446 }
447
448 /**
449 * iBar タグがユニã?クになるよã�?�« id 値を返しますã?
450 *
451 * iBar は、レコードにè¤?•°作æ?されるためã?まずã?iBar作æ?都度のユニã?クIDと
452 * それをViewFormで展開後にユニã?クな番号になる様にするための行番号がçµ?�¿合わされã�?
453 * ID がå¿?¦�ですã?
454 * iBatXXX_[I] 形式ã?IDを作æ?しますã?
455 * 別スレãƒ?ƒ‰による同時アクセスで整合æ?がç?綻(同じ番号が返る)してもã?問題ありませんã€?
456 *
457 * @return ユニã?クな id 値
458 */
459 private static String getTagId() {
460 String id = "IBar" + ( tagId++ ) + "_[I]";
461
462 if( tagId > 999 ) { tagId = 100; }
463
464 return ( id );
465 }
466
467 /**
468 * タグの名称をã?返しますã?
469 * 自åˆ??身のクラス名よりã?自動的に取り出せなã�?�Ÿめã?こã?メソãƒ?ƒ‰をオーバã?ライドしますã?
470 *
471 * @return タグの名称
472 */
473 @Override
474 protected String getTagName() {
475 return "iBar" ;
476 }
477
478 /**
479 * こã?オブジェクトã?æ–?—å?表現を返しますã?
480 * 基本çš?�«ãƒ?ƒ�ãƒ?‚°目çš?�«使用しますã?
481 *
482 * @return こã?クラスのæ–?—å?表現
483 */
484 @Override
485 public String toString() {
486 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
487 .println( "VERSION" ,VERSION )
488 .println( "tag" ,tag.makeTag() )
489 .println( "Other..." ,getAttributes().getAttribute() )
490 .fixForm().toString() ;
491 }
492 }