/******************************************************************************* * Copyright (c) 2015 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.rdb.core.viewers.connections; import org.apache.log4j.Logger; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.hangum.tadpole.engine.define.DBDefine; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; import com.hangum.tadpole.rdb.core.Activator; /** * db icons utils * * @author hangum * */ public class DBIconsUtils { private static final Logger logger = Logger.getLogger(DBIconsUtils.class); /** * Get db iamge url * * @param userDB * @return */ public static String getDBImageUrl(UserDBDAO userDB) { String strBaseImage = ""; DBDefine dbType = userDB.getDBDefine(); if(DBDefine.MYSQL_DEFAULT == dbType) strBaseImage = "mysql-add.png"; else if(DBDefine.MARIADB_DEFAULT == dbType) strBaseImage = "mariadb-add.png"; else if(DBDefine.ORACLE_DEFAULT == dbType) strBaseImage = "oracle-add.png"; else if(DBDefine.SQLite_DEFAULT == dbType) strBaseImage = "sqlite-add.png"; else if(DBDefine.MSSQL_DEFAULT == dbType || DBDefine.MSSQL_8_LE_DEFAULT == dbType) strBaseImage = "mssql-add.png"; else if(DBDefine.CUBRID_DEFAULT == dbType) strBaseImage = "cubrid-add.png"; else if(DBDefine.POSTGRE_DEFAULT == dbType) strBaseImage = "postgresSQL-add.png"; else if(DBDefine.MONGODB_DEFAULT == dbType) strBaseImage = "mongodb-add.png"; else if(DBDefine.HIVE_DEFAULT == dbType || DBDefine.HIVE2_DEFAULT == dbType) strBaseImage = "hive-add.png"; else if(DBDefine.TAJO_DEFAULT == dbType) strBaseImage = "tajo-add.jpg"; else if(DBDefine.TIBERO_DEFAULT == dbType) strBaseImage = "tibero_add.png"; else if(DBDefine.ALTIBASE_DEFAULT == dbType) strBaseImage = "altibase_add.png"; else if(DBDefine.AGENSGRAPH_DEFAULT == dbType) strBaseImage = "agens_add.png"; else if(DBDefine.AMAZON_REDSHIFT_DEFAULT == dbType) strBaseImage = "redshift_add.png"; else strBaseImage = "database-add.png"; return "resources/icons/dbs/" + strBaseImage; } // /** // * get db image // * // * @param userDB // * @return // */ // public static Image getDBNormalImage(UserDBDAO userDB) { // return ResourceManager.getPluginImage(Activator.PLUGIN_ID, getDBImageUrl(userDB)); // } /** * * https://bugs.eclipse.org/bugs/show_bug.cgi?id=468362 * * @param userDB * @return */ public static Image getEditorImage(UserDBDAO userDB) { return getPluginImage(Activator.PLUGIN_ID, getDBImageUrl(userDB)); } /** * get procedure image * * @param userDB * @return */ public static Image getProcedureImage(UserDBDAO userDB) { Image baseImage = getEditorImage(userDB); // 이미지 캐쉬에 문제가 있어서 주석처리. // try { // return getDecorateImage(baseImage, "resources/icons/editor/compile_0.28.png", ResourceManager.BOTTOM_RIGHT); // } catch(Exception e) { // return baseImage; // } return baseImage; } /** * get db image * * @param userDB * @return */ public static Image getDBConnectionImage(UserDBDAO userDB) { Image baseImage = getEditorImage(userDB); // 이미지 캐쉬에 문제가 있어서 주석처리. // try { // if(PublicTadpoleDefine.YES_NO.YES.name().equals(userDB.getIs_lock())) { // if(!TadpoleSecurityManager.getInstance().isLock(userDB)) { // baseImage = getDecorateImage(baseImage, "resources/icons/lock_0.28.png", ResourceManager.BOTTOM_RIGHT); // } else { // baseImage = getDecorateImage(baseImage, "resources/icons/unlock_0.28.png", ResourceManager.BOTTOM_RIGHT); // } // } // } catch(Exception e) { // logger.error("Image decoration", e); // } // // // extension image decoration // try { // ConnectionDecorationContributionsHandler handler = new ConnectionDecorationContributionsHandler(); // Image extensionImage = handler.getImage(userDB); // if(extensionImage != null) { // return ResourceManager.decorateImage(baseImage, extensionImage, ResourceManager.BOTTOM_LEFT); // } // } catch(Exception e) { // logger.error("extension point exception", e); // } return baseImage; } // // 이미지 캐쉬에 문제가 있어서 주석처리. // /** // * lock image // * // * @param baseImage // * @return // */ // public static Image getDecorateImage(Image baseImage, String strDecorateImage, int conor) throws Exception { // return ResourceManager.decorateImage(baseImage, // ResourceManager.getPluginImage(Activator.PLUGIN_ID, strDecorateImage), // conor); // } /** * get plugin image * * @param pluginId * @param imgURL * @return */ public static Image getPluginImage(String pluginId, String imgURL) { ImageDescriptor descriptor = getPluginImageDescriptor(pluginId, imgURL); if(descriptor != null) return descriptor.createImage(); else return null; } /** * * @param pluginId * @param imgURL * @return */ public static ImageDescriptor getPluginImageDescriptor(String pluginId, String imgURL) { String imgKey = pluginId + imgURL; ImageDescriptor descriptor = JFaceResources.getImageRegistry().getDescriptor(imgKey); if(descriptor == null) { // if(logger.isDebugEnabled()) logger.debug(String.format("==[image][new][key] %s]", imgKey)); try { descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imgURL); JFaceResources.getImageRegistry().put(pluginId, descriptor); } catch(Exception e) { logger.error("create image exception", e); } return descriptor; } else { if(logger.isDebugEnabled()) logger.debug(String.format("==[image][registery] %s]", imgKey)); return descriptor; } } }