diff options
| author | Wojciech Sudol | 2013-10-10 09:35:43 +0000 |
|---|---|---|
| committer | Gerrit Code Review @ Eclipse.org | 2014-02-28 15:47:23 +0000 |
| commit | 95132c5bfa61546ce0fbf31a324b8be3809cf3b3 (patch) | |
| tree | d332613cad9601a6d88514421c72e09880ff0bb2 | |
| parent | 81ca4aa7523ef2b4e1edcbee471f2add9d6df98f (diff) | |
| download | eclipse.platform.ui-95132c5bfa61546ce0fbf31a324b8be3809cf3b3.tar.gz eclipse.platform.ui-95132c5bfa61546ce0fbf31a324b8be3809cf3b3.tar.xz eclipse.platform.ui-95132c5bfa61546ce0fbf31a324b8be3809cf3b3.zip | |
Bug 409332: Image/Icon information returned by EditorReference
implementation is inconsistent with the IEditorPart implementation
Change-Id: Ib47ac90b3d4fcd899de62ff21195780aa920367c
Signed-off-by: Wojciech Sudol <wojciech.sudol@pl.ibm.com>
| -rw-r--r-- | bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java index 33638dd838a..7698ef49075 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPartReference.java @@ -133,9 +133,15 @@ public abstract class WorkbenchPartReference implements IWorkbenchPartReference, * Stores the current Image for this part reference. Lazily created. Null if not allocated. */ private Image image = null; - + + /** + * Stores reference to the image kept in the legacyPart. Used for quick check + * if the image changed. + */ + private Image legacyPartImage = null; + private ImageDescriptor defaultImageDescriptor; - + /** * Stores the current image descriptor for the part. */ @@ -401,13 +407,24 @@ public abstract class WorkbenchPartReference implements IWorkbenchPartReference, if (isDisposed()) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEF_VIEW); } - - if (image == null) { + + Image newLegacyPartImage = null; + if (legacyPart != null) { + newLegacyPartImage = legacyPart.getTitleImage(); + } + // refresh the local image if the image in the legacyPart changed + if (newLegacyPartImage != null && newLegacyPartImage != legacyPartImage) { + legacyPartImage = newLegacyPartImage; + // the setImageDescriptor(ImageDescriptor) method sets the image field to null, + // so a new value will be assigned to the image in the conditional statement below + setImageDescriptor(computeImageDescriptor()); + } + if (image == null) { image = JFaceResources.getResources().createImageWithDefault(imageDescriptor); } return image; } - + public ImageDescriptor getTitleImageDescriptor() { if (isDisposed()) { return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_DEF_VIEW); |
