Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Fluegge2010-11-13 16:06:27 +0000
committerMartin Fluegge2010-11-13 16:06:27 +0000
commit1de458e14d3cc89ef59052ba01175e7d20e03497 (patch)
tree36f0bb1eec63e9e6f1f42ebc3325353a3179fa4c /plugins/org.eclipse.emf.cdo.ui.shared/src
parentfde61f3b0bb830b38e16fafa7a3f89e3e54d3235 (diff)
downloadcdo-1de458e14d3cc89ef59052ba01175e7d20e03497.tar.gz
cdo-1de458e14d3cc89ef59052ba01175e7d20e03497.tar.xz
cdo-1de458e14d3cc89ef59052ba01175e7d20e03497.zip
[329632] Create common access mechanism for SharedIcons
https://bugs.eclipse.org/bugs/show_bug.cgi?id=329632
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.ui.shared/src')
-rw-r--r--plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/SharedIcons.java160
-rw-r--r--plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/bundle/OM.java53
2 files changed, 213 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/SharedIcons.java b/plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/SharedIcons.java
new file mode 100644
index 0000000000..543c634430
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/SharedIcons.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Victor Roldan Betancort - maintenance
+ */
+package org.eclipse.emf.cdo.ui.internal.icons;
+
+import org.eclipse.emf.cdo.ui.internal.icons.bundle.OM;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author Eike Stepper
+ */
+public class SharedIcons
+{
+ private static final String IMAGE_FORMAT_GIF = ".gif"; //$NON-NLS-1$
+
+ private static final String IMAGE_FORMAT_PNG = ".png"; //$NON-NLS-1$
+
+ private static final ImageRegistry REGISTRY = new ImageRegistry(getDisplay());
+
+ private static final String ETOOL = "etool16/"; //$NON-NLS-1$
+
+ private static final String OBJ = "obj16/"; //$NON-NLS-1$
+
+ private static final String VIEW = "view16/"; //$NON-NLS-1$
+
+ private static final String WIZBAN = "wizban/"; //$NON-NLS-1$
+
+ public static final String ETOOL_OPEN_SESSION = ETOOL + "open_session" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String ETOOL_OPEN_EDITOR = ETOOL + "open_editor" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_SESSION = OBJ + "cdo_session" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_SESSION_SYNCING = OBJ + "cdo_session_syncing" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_SESSION_OFFLINE = OBJ + "cdo_session_offline" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EDITOR = OBJ + "cdo_editor" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EDITOR_READWRITE = OBJ + "cdo_editor_readwrite" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EDITOR_READONLY = OBJ + "cdo_editor_readonly" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EDITOR_HISTORICAL = OBJ + "cdo_editor_historical" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EPACKAGE = OBJ + "EPackage" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_RESOURCE = OBJ + "CDOResource" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_RESOURCE_FOLDER = OBJ + "CDOResourceFolder" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EPACKAGE_CONVERTED = OBJ + "EPackageConverted" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EPACKAGE_LEGACY = OBJ + "EPackageLegacy" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EPACKAGE_NATIVE = OBJ + "EPackageNative" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EPACKAGE_DYNAMIC = OBJ + "EPackageDynamic" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_EPACKAGE_UNKNOWN = OBJ + "EPackageUnknown" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String OBJ_ECLASS = OBJ + "EClass" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String VIEW_SESSIONS = VIEW + "cdo_sessions" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String WIZBAN_PACKAGE_MANAGER = WIZBAN + "PackageManager" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String WIZBAN_PROTOCOL_PROBLEM = WIZBAN + "ProtocolProblem" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String WIZBAN_TARGET_SELECTION = WIZBAN + "BranchBanner" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String WIZBAN_TIME_SELECTION = WIZBAN + "TimeBanner" + IMAGE_FORMAT_GIF; //$NON-NLS-1$
+
+ public static final String ETOOL_TIME_PICK_BUTTON_ICON = ETOOL + "clock" + IMAGE_FORMAT_PNG; //$NON-NLS-1$
+
+ public static final String ETOOL_SLIDER_ICON = ETOOL + "slider" + IMAGE_FORMAT_PNG; //$NON-NLS-1$
+
+ public static final String REPO = OBJ + "repo.gif"; //$NON-NLS-1$
+
+ public static final String BRANCH = OBJ + "branch.png"; //$NON-NLS-1$
+
+ public static Image getImage(String key)
+ {
+ key = mangleKey(key);
+ Image image = REGISTRY.get(key);
+ if (image == null)
+ {
+ createDescriptor(key);
+ image = REGISTRY.get(key);
+ }
+
+ // For some reason, sometimes images get disposed.
+ // In that case, create and put in registry again.
+ if (image.isDisposed())
+ {
+ REGISTRY.remove(key);
+ createDescriptor(key);
+ image = REGISTRY.get(key);
+ }
+
+ return image;
+ }
+
+ public static ImageDescriptor getDescriptor(String key)
+ {
+ key = mangleKey(key);
+ ImageDescriptor descriptor = REGISTRY.getDescriptor(key);
+ if (descriptor == null)
+ {
+ descriptor = createDescriptor(key);
+ }
+
+ return descriptor;
+ }
+
+ private static ImageDescriptor createDescriptor(String key)
+ {
+ ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(OM.BUNDLE_ID, key);
+ if (descriptor != null)
+ {
+ REGISTRY.put(key, descriptor);
+ }
+
+ return descriptor;
+ }
+
+ private static Display getDisplay()
+ {
+ Display display = Display.getCurrent();
+ if (display == null)
+ {
+ display = Display.getDefault();
+ }
+
+ if (display == null)
+ {
+ throw new IllegalStateException("display == null"); //$NON-NLS-1$
+ }
+
+ return display;
+ }
+
+ private static String mangleKey(String key)
+ {
+ return "icons/full/" + key; //$NON-NLS-1$
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/bundle/OM.java b/plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/bundle/OM.java
new file mode 100644
index 0000000000..6b18fbcd2c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.ui.shared/src/org/eclipse/emf/cdo/ui/internal/icons/bundle/OM.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2004 - 2010 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Victor Roldan Betancort - maintenance
+ */
+package org.eclipse.emf.cdo.ui.internal.icons.bundle;
+
+import org.eclipse.net4j.util.om.OMBundle;
+import org.eclipse.net4j.util.om.OMPlatform;
+import org.eclipse.net4j.util.om.OSGiActivator;
+import org.eclipse.net4j.util.om.log.OMLogger;
+import org.eclipse.net4j.util.om.pref.OMPreferences;
+import org.eclipse.net4j.util.om.trace.OMTracer;
+
+/**
+ * The <em>Operations & Maintenance</em> class of this bundle.
+ *
+ * @author Martin Fluegge
+ */
+public abstract class OM
+{
+ public static final String BUNDLE_ID = "org.eclipse.emf.cdo.ui.shared"; //$NON-NLS-1$
+
+ public static final OMBundle BUNDLE = OMPlatform.INSTANCE.bundle(BUNDLE_ID, OM.class);
+
+ public static final OMTracer DEBUG = BUNDLE.tracer("debug"); //$NON-NLS-1$
+
+ public static final OMTracer TEST = BUNDLE.tracer("test"); //$NON-NLS-1$
+
+ public static final OMLogger LOG = BUNDLE.logger();
+
+ public static final OMPreferences PREFS = BUNDLE.preferences();
+
+ /**
+ * @author Eike Stepper
+ */
+ public static final class Activator extends OSGiActivator
+ {
+ public static Activator INSTANCE;
+
+ public Activator()
+ {
+ super(BUNDLE);
+ INSTANCE = this;
+ }
+ }
+}

Back to the top