/******************************************************************************* * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * *******************************************************************************/ package com.liferay.ide.server.ui; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; /** * The activator class controls the plugin life cycle * * @auther Greg Amerson */ public class LiferayServerUI extends AbstractUIPlugin { public static final String IMG_NOTIFICATION = "imgNotification"; public static final String IMG_WIZ_RUNTIME = "imgWizRuntime"; // The plugin ID public static final String PLUGIN_ID = "com.liferay.ide.server.ui"; // base url for icons private static URL ICON_BASE_URL; // The shared instance private static LiferayServerUI plugin; /** * Returns the shared instance * * @return the shared instance */ public static LiferayServerUI getDefault() { return plugin; } /** * Return the image with the given key from the image registry. * * @param key * java.lang.String * @return org.eclipse.jface.parts.IImage */ public static ImageDescriptor getImageDescriptor( String key ) { try { getDefault().getImageRegistry(); return (ImageDescriptor) getDefault().imageDescriptors.get( key ); } catch( Exception e ) { return null; } } public static void logError( Exception ex ) { getDefault().getLog().log( createErrorStatus( ex ) ); } public static IStatus createErrorStatus( Exception ex ) { return new Status( IStatus.ERROR, PLUGIN_ID, ex.getMessage(), ex ); } public static void logError( String msg, Exception ex ) { getDefault().getLog().log( createErrorStatus( msg, ex ) ); } public static IStatus createErrorStatus( String msg ) { return new Status( IStatus.ERROR, PLUGIN_ID, msg, null ); } public static IStatus createErrorStatus( String msg, Exception ex ) { return new Status( IStatus.ERROR, PLUGIN_ID, msg, ex ); } public static IStatus logInfo( String msg, IStatus status ) { return new Status( IStatus.INFO, PLUGIN_ID, msg, status.getException() ); } protected Map<String, ImageDescriptor> imageDescriptors = new HashMap<String, ImageDescriptor>(); /** * The constructor */ public LiferayServerUI() { } /* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext ) fe */ public void start( BundleContext context ) throws Exception { super.start( context ); plugin = this; } /* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext ) */ public void stop( BundleContext context ) throws Exception { plugin = null; super.stop( context ); } /** * Register an image with the registry. * * @param key * java.lang.String * @param partialURL * java.lang.String */ private void registerImage( ImageRegistry registry, String key, String partialURL ) { if( ICON_BASE_URL == null ) { String pathSuffix = "icons/"; //$NON-NLS-1$ ICON_BASE_URL = plugin.getBundle().getEntry( pathSuffix ); } try { ImageDescriptor id = ImageDescriptor.createFromURL( new URL( ICON_BASE_URL, partialURL ) ); registry.put( key, id ); imageDescriptors.put( key, id ); } catch( Exception e ) { plugin.getLog().log( new Status( IStatus.ERROR, PLUGIN_ID, e.getMessage() ) ); } } protected ImageRegistry createImageRegistry() { final ImageRegistry registry = new ImageRegistry(); final String[] pluginTypes = new String[] { "portlet", "hook", "ext", "layouttpl", "theme", "web" }; for (String type : pluginTypes) { registerImage( registry, type, "/icons/e16/" + type + ".png" ); } registerImage( registry, IMG_WIZ_RUNTIME, "wizban/liferay_wiz.png" ); registerImage( registry, IMG_NOTIFICATION, "e16/server.png" ); return registry; } }