diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/RSEImageMap.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/RSEImageMap.java deleted file mode 100644 index fbf6d7f3fe8..00000000000 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/RSEImageMap.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2008 IBM Corporation. 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 - * - * Initial Contributors: - * The following IBM employees contributed to the Remote System Explorer - * component that contains this file: David McKnight. - * - * Contributors: - * David McKnight (IBM) - [236505] Remote systems dialog not working - ********************************************************************************/ -package org.eclipse.rse.internal.ui; - -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.swt.graphics.Image; - -public class RSEImageMap { - - private static Map _imageTable = new Hashtable(100); - - public static Image get(Object key) { - if (_imageTable != null){ - return (Image)_imageTable.get(key); - } - return null; - } - - public static void put(Object key, Image image) { - if (_imageTable == null){ - _imageTable = new Hashtable(100); - } - - _imageTable.put(key, image); - } - - public static final void shutdown() { - if (_imageTable != null) { - for (Iterator i = _imageTable.values().iterator(); i.hasNext();) { - ((Image) i.next()).dispose(); - } - _imageTable = null; - } - } -} diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java index 8e11344a800..6d065e6a7c6 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java @@ -17,6 +17,7 @@ * Martin Oberhuber (Wind River) - [197550] Fix NPE when refreshing Pending items * David McKnight (IBM) - [236505] Remote systems dialog not working * Martin Oberhuber (Wind River) - [238519][api] Support styled label decorations + * David McKnight (IBM) - [238288] use ImageRegistry to store/retrieve images for RSE label providers ********************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -30,6 +31,7 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.viewers.AbstractTreeViewer; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider; @@ -41,7 +43,7 @@ import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelP import org.eclipse.rse.core.model.ISystemViewInputProvider; import org.eclipse.rse.core.model.SystemMessageObject; import org.eclipse.rse.core.subsystems.ISubSystem; -import org.eclipse.rse.internal.ui.RSEImageMap; +import org.eclipse.rse.ui.RSEUIPlugin; import org.eclipse.rse.ui.SystemBasePlugin; import org.eclipse.rse.ui.model.ISystemShellProvider; import org.eclipse.rse.ui.operations.SystemDeferredTreeContentManager; @@ -431,7 +433,6 @@ public class SystemViewLabelAndContentProvider extends LabelProvider public Image getImage(Object element) { ISystemViewElementAdapter adapter = getViewAdapter(element); - //System.out.println("Inside getImage. element = " + element + ", adapter = " + adapter); if (adapter == null) return null; @@ -442,12 +443,14 @@ public class SystemViewLabelAndContentProvider extends LabelProvider //add any annotations to the image descriptor descriptor = decorateImage(descriptor, element); + + ImageRegistry imageRegistry = RSEUIPlugin.getDefault().getImageRegistry(); + Image image = imageRegistry.get(descriptor.toString()); + //obtain the cached image corresponding to the descriptor - Image image = RSEImageMap.get(descriptor); - if (image == null) - { - image = descriptor.createImage(); - RSEImageMap.put(descriptor, image); + if (image == null){ + image = descriptor.createImage(); + imageRegistry.put(descriptor.toString(), image); } return image; diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/RSEUIPlugin.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/RSEUIPlugin.java index a56349bd018..c54cf0efcb2 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/RSEUIPlugin.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/RSEUIPlugin.java @@ -33,6 +33,7 @@ * David Dykstal (IBM) - [197167] adding notification and waiting for RSE model * David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types * David McKnight (IBM) - [236505] Remote systems dialog not working + * David McKnight (IBM) - [238288] use ImageRegistry to store/retrieve images for RSE label providers ********************************************************************************/ package org.eclipse.rse.ui; @@ -54,7 +55,6 @@ import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.core.subsystems.ISubSystemConfigurationProxy; import org.eclipse.rse.internal.core.model.SystemProfileManager; import org.eclipse.rse.internal.core.model.SystemRegistry; -import org.eclipse.rse.internal.ui.RSEImageMap; import org.eclipse.rse.internal.ui.RSESystemTypeAdapterFactory; import org.eclipse.rse.internal.ui.RSEUIInitJob; import org.eclipse.rse.internal.ui.subsystems.SubSystemConfigurationProxyAdapterFactory; @@ -502,8 +502,6 @@ public class RSEUIPlugin extends SystemBasePlugin * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) */ public void stop(BundleContext context) throws Exception { - RSEImageMap.shutdown(); - // disconnect all active connections disconnectAll(true);