diff options
author | Darin Swanson | 2003-04-28 20:52:58 +0000 |
---|---|---|
committer | Darin Swanson | 2003-04-28 20:52:58 +0000 |
commit | 8258920dbdda86fba4c0fe9f3926a09e66b2da6d (patch) | |
tree | ae4ead3c80d49a5951e8bdfd7533874af48ba196 /org.eclipse.ui.externaltools | |
parent | 0633634657035f6705c7cf99d9000ad585212f36 (diff) | |
download | eclipse.platform.debug-8258920dbdda86fba4c0fe9f3926a09e66b2da6d.tar.gz eclipse.platform.debug-8258920dbdda86fba4c0fe9f3926a09e66b2da6d.tar.xz eclipse.platform.debug-8258920dbdda86fba4c0fe9f3926a09e66b2da6d.zip |
Bug 36937 - WorkingSetComponent should set the working set images
Diffstat (limited to 'org.eclipse.ui.externaltools')
-rw-r--r-- | org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variable/WorkingSetComponent.java | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variable/WorkingSetComponent.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variable/WorkingSetComponent.java index b965bca06..275572645 100644 --- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variable/WorkingSetComponent.java +++ b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variable/WorkingSetComponent.java @@ -10,7 +10,11 @@ *******************************************************************************/ package org.eclipse.ui.externaltools.internal.variable; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; @@ -20,6 +24,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -36,10 +41,47 @@ import org.eclipse.ui.externaltools.internal.group.IGroupDialogPage; public class WorkingSetComponent extends AbstractVariableComponent { private TableViewer viewer; + private ILabelProvider labelProvider; + /** * Label provider that provides labels for working sets - */ - private static ILabelProvider labelProvider = new LabelProvider() { + */ + private static class WorkingSetLabelProvider extends LabelProvider { + private Map icons; + + public WorkingSetLabelProvider() { + icons = new Hashtable(5); + } + + public void dispose() { + Iterator iterator = icons.values().iterator(); + + while (iterator.hasNext()) { + Image icon = (Image) iterator.next(); + icon.dispose(); + } + super.dispose(); + } + + public Image getImage(Object object) { + if(object instanceof IWorkingSet){ + IWorkingSet workingSet = (IWorkingSet) object; + ImageDescriptor imageDescriptor = workingSet.getImage(); + + if (imageDescriptor == null) { + return null; + } + + Image icon = (Image) icons.get(imageDescriptor); + if (icon == null) { + icon = imageDescriptor.createImage(); + icons.put(imageDescriptor, icon); + } + return icon; + } + return super.getImage(object); + } + public String getText(Object element) { if (element instanceof IWorkingSet) { return ((IWorkingSet) element).getName(); @@ -75,6 +117,7 @@ public class WorkingSetComponent extends AbstractVariableComponent { super.createContents(parent, varTag, page); // Creates the main group and sets the page viewer = new TableViewer(mainGroup); + labelProvider= new WorkingSetLabelProvider(); viewer.setLabelProvider(labelProvider); viewer.setContentProvider(contentProvider); viewer.setInput(PlatformUI.getWorkbench()); |