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 }