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.plugin.column;
017
018 import java.util.Locale;
019 import java.util.Map;
020 import java.util.HashMap;
021
022 import org.opengion.hayabusa.db.AbstractRenderer;
023 import org.opengion.hayabusa.db.CellRenderer;
024 import org.opengion.hayabusa.db.DBColumn;
025
026 /**
027 * ICON レンãƒ?ƒ©ãƒ¼ã¯ã€ã‚«ãƒ©ãƒ??ファイルåã?æ‹¡å¼µåã‹ã‚‰ã‚¢ã‚¤ã‚³ãƒ³ãƒ•ァイルã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚¿ã‚°ã‚’作æ?ã—ã¾ã™ã?
028 * イメージãƒ??ã‚¿ã¯ã€jsp/image/thumb を使用ã—ã¾ã™ã?
029 *
030 * 実質çš?«ã¯ã€ã‚¢ã‚¤ã‚³ãƒ³ã§ã¯ãªãã?サãƒ?ƒã‚¤ãƒ«ã¨ã—ã¦åˆ©ç”¨ã—ã¾ã™ã?
031 *
032 * 縦横比をãã?ã¾ã¾ã«ã€ç¸¦ã‹æ¨ªã®æœ?¤§å€¤ã«ç”»åƒã‚µã‚¤ã‚ºã‚’åˆã‚ã›ã‚‹ã«ã¯ã€?
033 * style="max-width:100; max-height:100;" ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ã§å¯¾å¿œã§ãã¾ã™ã?
034 * class="ICON" 属æ?ã‚’å?力ã—ã¦ãŠãã¾ã™ã?ã§ã€CSSファイルã§è¨˜è¿°ã—ã¦ãã ã•ã„ã€?
035 *
036 * (例�
037 *<pre>
038 * <style type="text/css">
039 * img.ICON { max-width:100px; max-height:100px; }
040 * </style>
041 *</pre>
042 *
043 * ã“ã?クラスã¯ã€ä¸å¤‰ã‚ªãƒ–ジェクトã¨ã—ã¦ã€å?有ã•れã¾ã™ã?
044 *
045 * @og.rev 5.6.5.1 (2013/06/14) æ–°è¦ä½œæ?
046 *
047 * @og.group �?タ表示
048 *
049 * @version 4.0
050 * @author Kazuhiko Hasegawa
051 * @since JDK5.0,
052 */
053 public class Renderer_ICON extends AbstractRenderer {
054 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */
055 private static final String VERSION = "5.6.5.1 (2013/06/14)" ;
056
057 private static final CellRenderer dbCell = new Renderer_ICON() ;
058
059 // アイコンファイルã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã‚‹æ‹¡å¼µåã¨ãƒ•ァイルã®é–¢é€£(MAP)æƒ??
060 private static final Map<String,String> ICON_MAP ;
061 static {
062 ICON_MAP = new HashMap<String,String>();
063
064 ICON_MAP.put( "doc" , "../image/thumb/doc.png" );
065 ICON_MAP.put( "docx" , "../image/thumb/doc.png" );
066 ICON_MAP.put( "xls" , "../image/thumb/xls.png" );
067 ICON_MAP.put( "xlsx" , "../image/thumb/xls.png" );
068 ICON_MAP.put( "ppt" , "../image/thumb/ppt.png" );
069 ICON_MAP.put( "pptx" , "../image/thumb/ppt.png" );
070 ICON_MAP.put( "pdf" , "../image/thumb/pdf.png" );
071 ICON_MAP.put( "txt" , "../image/thumb/text.png" );
072 ICON_MAP.put( "zip" , "../image/thumb/zip.png" );
073 }
074 private static final String DOC_VIEW = "../image/thumb/docview.png" ; // ãã?ä»–ã?アイコン
075
076 /**
077 * å?‚ªãƒ–ジェクトã‹ã‚‰è?åˆ??インスタンスを返ã—ã¾ã™ã?
078 * 自åˆ??身をã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã®ã‹ã?æ–°ãŸã«ä½œæ?ã™ã‚‹ã®ã‹ã?ã€å„サブクラスã®å®Ÿè£?«
079 * ã¾ã‹ã•れã¾ã™ã?
080 *
081 * @param clm DBColumnオブジェク�
082 *
083 * @return CellRendererオブジェク�
084 */
085 public CellRenderer newInstance( final DBColumn clm ) {
086 return dbCell;
087 }
088
089 /**
090 * ãƒ??ã‚¿ã®è¡¨ç¤ºç”¨æ–?—å?ã‚’è¿”ã—ã¾ã™ã?
091 *
092 * @param value 入力å?
093 *
094 * @return ãƒ??ã‚¿ã®è¡¨ç¤ºç”¨æ–?—å?
095 */
096 @Override
097 public String getValue( final String value ) {
098 String icon = null;
099
100 if( value != null ) {
101 String sufix = null;
102 int idx = value.lastIndexOf(".");
103 if( idx >= 0 ) {
104 sufix = value.substring( idx+1 ).toLowerCase( Locale.JAPAN );
105 icon = ICON_MAP.get( sufix );
106 }
107 }
108
109 if( icon == null ) { icon = DOC_VIEW; }
110
111 return "<img class=\"ICON\" src=\"" + icon + "\" alt=\"" + value + "\" />" ;
112 }
113 }