Lines 23-28
import org.eclipse.swt.graphics.Image;
Link Here
|
23 |
import org.eclipse.swt.widgets.Display; |
23 |
import org.eclipse.swt.widgets.Display; |
24 |
|
24 |
|
25 |
import org.eclipse.jface.resource.ImageDescriptor; |
25 |
import org.eclipse.jface.resource.ImageDescriptor; |
|
|
26 |
import org.eclipse.jface.resource.ResourceManager; |
26 |
import org.eclipse.ui.IMemento; |
27 |
import org.eclipse.ui.IMemento; |
27 |
|
28 |
|
28 |
import org.eclipse.draw2d.Border; |
29 |
import org.eclipse.draw2d.Border; |
Lines 138-145
public abstract class PaletteEditPart extends AbstractGraphicalEditPart
Link Here
|
138 |
model.removePropertyChangeListener(this); |
139 |
model.removePropertyChangeListener(this); |
139 |
traverseChildren(model, false); |
140 |
traverseChildren(model, false); |
140 |
if (image != null) { |
141 |
if (image != null) { |
141 |
image.dispose(); |
142 |
ResourceManager resourceManager = getResourceManager(); |
142 |
image = null; |
143 |
|
|
|
144 |
if(resourceManager == null) { |
145 |
image.dispose(); |
146 |
image = null; |
147 |
} else { |
148 |
resourceManager.destroyImage(imgDescriptor); |
149 |
imgDescriptor = null; |
150 |
image = null; |
151 |
} |
143 |
} |
152 |
} |
144 |
super.deactivate(); |
153 |
super.deactivate(); |
145 |
} |
154 |
} |
Lines 376-381
public abstract class PaletteEditPart extends AbstractGraphicalEditPart
Link Here
|
376 |
} |
385 |
} |
377 |
|
386 |
|
378 |
/** |
387 |
/** |
|
|
388 |
* A viewer property that can be used to pass down an instance of {@link ResourceManager} |
389 |
*/ |
390 |
public static final String PROPERTY_RESOURCE_MANAGER = PaletteEditPart.class.getName() + ".resourceManager"; |
391 |
|
392 |
/** |
379 |
* Set the image for this palette edit part. |
393 |
* Set the image for this palette edit part. |
380 |
* |
394 |
* |
381 |
* @param desc |
395 |
* @param desc |
Lines 384-391
public abstract class PaletteEditPart extends AbstractGraphicalEditPart
Link Here
|
384 |
protected void setImageDescriptor(ImageDescriptor desc) { |
398 |
protected void setImageDescriptor(ImageDescriptor desc) { |
385 |
if (desc == imgDescriptor) |
399 |
if (desc == imgDescriptor) |
386 |
return; |
400 |
return; |
387 |
imgDescriptor = desc; |
401 |
|
388 |
setImageInFigure(getImageCache().getImage(imgDescriptor)); |
402 |
ResourceManager resourceManager = getResourceManager(); |
|
|
403 |
if (resourceManager == null) { |
404 |
imgDescriptor = desc; |
405 |
setImageInFigure(getImageCache().getImage(imgDescriptor)); |
406 |
} else { |
407 |
ImageDescriptor oldImageDescriptor = imgDescriptor; |
408 |
imgDescriptor = desc; |
409 |
setImageInFigure(resourceManager.createImage(desc)); |
410 |
if(oldImageDescriptor != null) |
411 |
resourceManager.destroyImage(oldImageDescriptor); |
412 |
} |
413 |
} |
414 |
|
415 |
private ResourceManager getResourceManager() { |
416 |
return (ResourceManager) getViewer().getProperty(PROPERTY_RESOURCE_MANAGER); |
389 |
} |
417 |
} |
390 |
|
418 |
|
391 |
/** |
419 |
/** |