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.fukurou.util.XHTMLTag;
020    
021    /**
022     * æŒ?®šã?ä½ç½®ã«ç”»åƒã‚’é…ç½®ã™ã‚‹HTML拡張タグã§ã™ã?
023     *
024     * @og.formSample
025     * â—å½¢å¼ï¼?lt;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     */
073    public 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    }