blob: 7101f19e1fc29e84adcba4bf4f8ca14923a13c8e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.tools.images.internal;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.plugin.AbstractUIPlugin;
/**
* A helper class to load images/icons from other plug-ins.
*
*/
public class ImageLoader
{
static final public String PLUGIN_ID_O_E_SEARCH = "org.eclipse.search";
static final public String ICON_SEARCH_EXPANDALL = "icons/full/elcl16/expandall.gif";
static final public String ICON_SEARCH_EXPANDALL_E = "icons/full/elcl16/expandall.gif";
static final public String ICON_SEARCH_EXPANDALL_D = "icons/full/dlcl16/expandall.gif";
static final public String ICON_SEARCH_COLLAPSEALL = "icons/full/elcl16/collapseall.gif";
static final public String ICON_SEARCH_COLLAPSEALL_E = "icons/full/elcl16/collapseall.gif";
static final public String ICON_SEARCH_COLLAPSEALL_D = "icons/full/dlcl16/collapseall.gif";
static final public String ICON_SEARCH_PREV = "icons/full/elcl16/search_prev.gif";
static final public String ICON_SEARCH_NEXT = "icons/full/elcl16/search_next.gif";
// Icons from "org.eclipse.ui"
static final public String PLUGIN_ID_O_E_UI = "org.eclipse.ui";
static final public String ICON_FOLDER = "icons/full/obj16/fldr_obj.gif";
static final public String ICON_FILE = "icons/full/obj16/file_obj.gif";
static final public String ICON_ERROR_TASK = "icons/full/obj16/error_tsk.gif";
static final public String ICON_UI_VIEW_MENU = "icons/full/elcl16/view_menu.gif";
static final public String PLUGIN_ID_O_E_JUNIT = "org.eclipse.jdt.junit";
static final public String ICON_DOC_OK = "icons/full/obj16/testok.gif";
static final public String ICON_DOC_ERROR = "icons/full/obj16/testerr.gif";
static final public String ICON_JUNIT_TEST = "icons/full/obj16/test.gif";
static final public String PLUGIN_ID_O_E_PDE_UI = "org.eclipse.pde.ui";
static final public String ICON_ERROR_LOG = "icons/view16/error_log.gif";
static final public String ICON_PDE_UI_REFRESH = "icons/elcl16/refresh.gif";
static final public String PLUGIN_ID_O_E_DEBUG_UI = "org.eclipse.debug.ui";
static final public String ICON_DEBUG_UI_RUNLAST_E = "icons/full/elcl16/runlast_co.gif";
static final public String ICON_DEBUG_UI_RUNLAST_D = "icons/full/dlcl16/runlast_co.gif";
static final public String ICON_DEBUG_UI_TERMINATE_E = "icons/full/elcl16/terminate_co.gif";
static final public String ICON_DEBUG_UI_TERMINATE_D = "icons/full/dcl16/terminate_co.gif";
// From "org.eclipse.ui.ide"
static final public String PLUGIN_ID_O_E_UI_IDE = "org.eclipse.ui.ide";
static final public String ICON_UI_IDE_IMPORT_PREF = "icons/full/obj16/importpref_obj.gif";
static final public String ICON_UI_IDE_FILTER = "icons/full/elcl16/filter_ps.gif";
// "org.eclipse.jdt.ui"
static final public String PLUGIN_ID_O_E_JDT_UI = "org.eclipse.jdt.debug.ui";
static final public String ICON_JDT_UI_HIERARCHY = "icons/full/elcl16/hierarchy_co.gif";
// "org.eclipse.jdt.debug.ui"
static final public String PLUGIN_ID_O_E_JDT_DEBUG_UI = "org.eclipse.jdt.debug.ui";
static final public String ICON_JDT_DEBUG_UI_FEATURE = "icons/full/elcl16/final_co.gif";
/*************************************************************************/
static final public String ICON_UIMA_TOOLS_TYPE = "icons/full/obj16/type.gif";
static final public String ICON_UIMA_TOOLS_TYPE_ERROR = "icons/full/obj16/type_error.gif";
static final public String ICON_UIMA_TOOLS_FEATURE = ICON_JDT_DEBUG_UI_FEATURE;
static final public String ICON_UIMA_TOOLS_FEATURE_ERROR = ICON_ERROR_TASK;
/*************************************************************************/
static private ImageLoader instance;
protected ImageRegistry imageRegistry;
static public ImageLoader getInstance()
{
if (instance == null) {
instance = new ImageLoader();
}
return instance;
}
public ImageDescriptor registerImageDescriptor (String key,
String pluginId, String iconFileName)
{
ImageDescriptor imgDesc = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, iconFileName);
if (imgDesc != null) {
// Register
getImageRegistry().remove(key);
getImageRegistry().put(key, imgDesc);
}
return imgDesc;
}
public ImageDescriptor getImageDescriptor(String key) {
return getImageRegistry().getDescriptor(key);
}
public Image getImage(String key) {
return getImageRegistry().get(key);
}
public void initializeImageRegistry ()
{
// Register COMMON Images
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_SEARCH_EXPANDALL_E, ImageLoader.PLUGIN_ID_O_E_SEARCH, ImageLoader.ICON_SEARCH_EXPANDALL_E);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_SEARCH_EXPANDALL_D, ImageLoader.PLUGIN_ID_O_E_SEARCH, ImageLoader.ICON_SEARCH_EXPANDALL_D);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_SEARCH_COLLAPSEALL_E, ImageLoader.PLUGIN_ID_O_E_SEARCH, ImageLoader.ICON_SEARCH_COLLAPSEALL_E);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_SEARCH_COLLAPSEALL_D, ImageLoader.PLUGIN_ID_O_E_SEARCH, ImageLoader.ICON_SEARCH_COLLAPSEALL_D);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_SEARCH_PREV, ImageLoader.PLUGIN_ID_O_E_SEARCH, ImageLoader.ICON_SEARCH_PREV);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_SEARCH_NEXT, ImageLoader.PLUGIN_ID_O_E_SEARCH, ImageLoader.ICON_SEARCH_NEXT);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_PDE_UI_REFRESH, ImageLoader.PLUGIN_ID_O_E_PDE_UI, ImageLoader.ICON_PDE_UI_REFRESH);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_UI_IDE_IMPORT_PREF, ImageLoader.PLUGIN_ID_O_E_UI_IDE, ImageLoader.ICON_UI_IDE_IMPORT_PREF);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_UI_IDE_FILTER, ImageLoader.PLUGIN_ID_O_E_UI_IDE, ImageLoader.ICON_UI_IDE_FILTER);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_UI_VIEW_MENU, ImageLoader.PLUGIN_ID_O_E_UI, ImageLoader.ICON_UI_VIEW_MENU);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_UIMA_TOOLS_FEATURE, ImageLoader.PLUGIN_ID_O_E_JDT_DEBUG_UI, ImageLoader.ICON_UIMA_TOOLS_FEATURE);
ImageLoader.getInstance().registerImageDescriptor(ImageLoader.ICON_JDT_UI_HIERARCHY, ImageLoader.PLUGIN_ID_O_E_JDT_UI, ImageLoader.ICON_JDT_UI_HIERARCHY);
}
public void dispose() {
if (imageRegistry != null) {
imageRegistry.dispose();
}
}
/*************************************************************************/
/*************************************************************************/
static public Image createImage (String pluginId, String iconFileName)
{
ImageDescriptor imgDesc = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, iconFileName);
if (imgDesc != null) {
return imgDesc.createImage();
}
return null;
}
/*************************************************************************/
protected ImageRegistry createImageRegistry()
{
// If we are in the UI Thread use that
if (Display.getCurrent() != null) {
return new ImageRegistry(Display.getCurrent());
} else {
// Invalid thread access if it is not the UI Thread
// and the workbench is not created.
throw new SWTError(SWT.ERROR_THREAD_INVALID_ACCESS);
}
}
protected ImageRegistry getImageRegistry()
{
if (imageRegistry == null) {
imageRegistry = createImageRegistry();
// initializeImageRegistry(imageRegistry);
}
return imageRegistry;
}
/*************************************************************************/
}