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.fukurou.util.XHTMLTag;
020
021/**
022 * 指定の位置に画像を配置するHTML拡張タグです。
023 *
024 * @og.formSample
025 * ●形式:<og:img src="・・・" alt="・・・"; />
026 * ●body:なし
027 *
028 * ●Tag定義:
029 *   <og:img
030 *       name               【HTML】名前を指定します
031 *       src              ○【HTML】表示させる画像のURLを指定します(必須)。
032 *       alt              ○【HTML】画像が表示されない場合、代わりに表示させるテキストを指定します(必須)。
033 *       longdesc           【HTML】画像部分についての詳しい情報があるURL(longdesc)を指定します
034 *       width              【HTML】横幅をピクセル数または%で指定します
035 *       height             【HTML】縦幅をピクセル数または%で指定します
036 *       usemap             【HTML】クライアントサイドクリッカブルを指定します
037 *       ismap              【HTML】サーバーサイドクリッカブルを指定します
038 *       clazz              【HTML】要素に対して class 属性を設定します
039 *       id                 【HTML】要素に対して固有の名前(id)をつける場合に設定します
040 *       title              【HTML】要素に対する補足的情報(title)を設定します
041 *       style              【HTML】この要素に対して適用させるスタイルシート(style)を設定します
042 *       lang               【HTML】要素の内容と他の属性値の言語(lang,xml:lang)を指定します
043 *       dir                【HTML】文字表記の方向(dir)を指定します
044 *       onClick            【HTML】JavaScriptのイベント onClick を設定します(例:onClick="renew('query.jsp','QUERY');")
045 *       onBlur             【HTML】JavaScriptのイベント onBlur を設定します(例:onBlur="this.value=value.toUpperCase();")
046 *       onFocus            【HTML】JavaScriptのイベント onFocus を設定します
047 *       ondblClick         【HTML】JavaScriptのイベント ondblClick を設定します
048 *       onMouseDown        【HTML】JavaScriptのイベント onMouseDown を設定します
049 *       onMouseUp          【HTML】JavaScriptのイベント onMouseUp を設定します
050 *       onMouseMove        【HTML】JavaScriptのイベント onMouseMove を設定します
051 *       onMouseOut         【HTML】JavaScriptのイベント onMouseOut を設定します
052 *       onMouseOver        【HTML】JavaScriptのイベント onMouseOver を設定します
053 *       roles              【TAG】ロールをセットします
054 *       caseKey            【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 5.7.7.2 (2014/06/20)
055 *       caseVal            【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 5.7.7.2 (2014/06/20)
056 *       caseNN             【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true) 5.7.7.2 (2014/06/20)
057 *       caseNull           【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true) 5.7.7.2 (2014/06/20)
058 *       debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
059 *   />
060 *
061 * ●使用例
062 *    <og:img src="{@URL}" alt="sample" />
063 *
064 *        src  : 表示させる画像のURL(必須)
065 *        alt  : 画像が表示されない場合、代わりに表示させるテキスト(必須)
066 *
067 * @og.group 画面部品
068 *
069 * @version  4.0
070 * @author   Kohei Naruse
071 * @since    JDK5.0,
072 */
073public class ImageTag extends HTMLTagSupport {
074        //* このプログラムのVERSION文字列を設定します。   {@value} */
075        private static final String VERSION = "4.0.0.0 (2005/01/31)" ;
076
077        private static final long serialVersionUID = 400020050131L ;
078
079        /**
080         * 指定位置に画像を配置するためのイメージタグを作成します。
081         *
082         * @return  イメージタグ
083         */
084        @Override
085        protected String makeTag() {
086                StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
087
088                rtn.append(XHTMLTag.img(getAttributes()));
089
090                return rtn.toString();
091        }
092
093        /**
094         * 【HTML】名前を指定します。
095         *
096         * @og.tag 名前を指定します。
097         *
098         * @param   name 名前
099         */
100        public void setName( final String name ) {
101                set( "name",getRequestParameter( name ) );
102        }
103
104        /**
105         * 【HTML】表示させる画像のURLを指定します。
106         *
107         * @og.tag 表示させる画像のURLを指定します。
108         *
109         * @param   src 画像のURL
110         */
111        public void setSrc( final String src ) {
112                set( "src",getRequestParameter( src ) );
113        }
114
115        /**
116         * 【HTML】画像が表示されない場合、代わりに表示させるテキストを指定します。
117         *
118         * @og.tag 画像が表示されない場合、代わりに表示させるテキストを指定します。
119         *
120         * @param   alt 代替えテキスト
121         */
122        public void setAlt( final String alt ) {
123                set( "alt",getRequestParameter( alt ) );
124        }
125
126        /**
127         * 【HTML】画像部分についての詳しい情報があるURL(longdesc)を指定します。
128         *
129         * @og.tag longdescを指定します。
130         *
131         * @param   longdesc 詳しい情報があるURL
132         */
133        public void setLongdesc( final String longdesc ) {
134                set( "longdesc",getRequestParameter( longdesc ) );
135        }
136
137        /**
138         * 【HTML】横幅をピクセル数または%で指定します。
139         *
140         * @og.tag 横幅を指定します。
141         *
142         * @param   width 横幅(ピクセル数または%)
143         */
144        public void setWidth( final String width ) {
145                set( "width",getRequestParameter( width ) );
146        }
147
148        /**
149         * 【HTML】縦幅をピクセル数または%で指定します。
150         *
151         * @og.tag 縦幅を指定します。
152         *
153         * @param   height 縦幅(ピクセル数または%)
154         */
155        public void setHeight( final String height ) {
156                set( "height",getRequestParameter( height ) );
157        }
158
159        /**
160         * 【HTML】クライアントサイドクリッカブルを指定します。
161         *
162         * @og.tag クライアントサイドクリッカブルを指定します。
163         *
164         * @param   usemap クライアントサイドクリッカブル
165         */
166        public void setUsemap( final String usemap ) {
167                set( "usemap",getRequestParameter( usemap ) );
168        }
169
170        /**
171         * 【HTML】サーバーサイドクリッカブルを指定します。
172         *
173         * @og.tag サーバーサイドクリッカブルを指定します。
174         *
175         * @param   ismap クライアントサイドクリッカブル
176         */
177        public void setIsmap( final String ismap ) {
178                set( "ismap",getRequestParameter( ismap ) );
179        }
180
181        /**
182         * タグの名称を、返します。
183         * 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
184         *
185         * @og.rev 4.0.0.0 (2005/01/31) 新規追加
186         *
187         * @return  タグの名称
188         */
189        @Override
190        protected String getTagName() {
191                return "img" ;
192        }
193}