Author: scabanovich
Date: 2011-11-30 20:27:30 -0500 (Wed, 30 Nov 2011)
New Revision: 36812
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/ModelUIImages.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/ActionX.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/XModelObjectAction.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/LabelDecoratorImpl.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryDialog.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryWizardView.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/special/DefaultSpecialWizardDialog.java
Log:
JBIDE-10245
https://issues.jboss.org/browse/JBIDE-10245
ImageRegistry is used to manage images.
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/ModelUIImages.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/ModelUIImages.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/ModelUIImages.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -15,6 +15,7 @@
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
public class ModelUIImages {
@@ -52,17 +53,29 @@
}
public static Image getImage(String key) {
- if(ModelUIPlugin.isDebugEnabled()) {
- ModelUIPlugin.getPluginLog().logInfo("Create image for key
'"+key+"'."); //$NON-NLS-1$ //$NON-NLS-2$
+ getImageDescriptor(key); // provide image in the registry
+ ImageRegistry registry = ModelUIPlugin.getDefault().getImageRegistry();
+ synchronized(registry) {
+ return registry.get(key);
}
- return INSTANCE.createImageDescriptor(key).createImage();
}
public static ImageDescriptor getImageDescriptor(String key) {
- if(ModelUIPlugin.isDebugEnabled()) {
- ModelUIPlugin.getPluginLog().logInfo("Create image descriptor for key
'"+key+"'."); //$NON-NLS-1$ //$NON-NLS-2$
+ ImageDescriptor result = null;
+ ImageRegistry registry = ModelUIPlugin.getDefault().getImageRegistry();
+ synchronized(registry) {
+ result = registry.getDescriptor(key);
}
- return INSTANCE.createImageDescriptor(key);
+ if(result == null) {
+ result = INSTANCE.createImageDescriptor(key);
+ if(result != null) {
+ synchronized (registry) {
+ registry.remove(key);
+ registry.put(key, result);
+ }
+ }
+ }
+ return result;
}
public static void setImageDescriptors(IAction action, String iconName) {
@@ -94,10 +107,6 @@
this(url,null);
}
- public Image getImageByFileName(String key) {
- return createImageDescriptor(key).createImage();
- }
-
public ImageDescriptor createImageDescriptor(String key) {
try {
return ImageDescriptor.createFromURL(makeIconFileURL(key));
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/ActionX.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/ActionX.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/ActionX.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -53,11 +53,13 @@
setText(displayName);
- String iconKey = action.getIconKey();
- Image image = action.getMetaModel().getIconList().getImage(iconKey);
- setImageDescriptor(new XImageDescriptor(image));
+ setImageDescriptor(new XImageDescriptor(getImage()));
setEnabled(enabled);
}
+
+ public Image getImage() {
+ return action.getMetaModel().getIconList().getImage(action.getIconKey());
+ }
class XImageDescriptor extends ImageDescriptor {
Image image;
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/XModelObjectAction.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/XModelObjectAction.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/action/XModelObjectAction.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -142,7 +142,7 @@
item.addSelectionListener(new AL());
item.setText(eclipseAction.getText());
item.setEnabled(eclipseAction.isEnabled());
- item.setImage(eclipseAction.getImageDescriptor().createImage());
+ item.setImage(eclipseAction.getImage());
}
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/LabelDecoratorImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/LabelDecoratorImpl.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/LabelDecoratorImpl.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -14,11 +14,13 @@
import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.resource.CompositeImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.*;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.markers.XMarkerManager;
import org.jboss.tools.common.model.ui.ModelUIImages;
+import org.jboss.tools.common.model.ui.ModelUIPlugin;
public class LabelDecoratorImpl implements ILabelDecorator {
public static Image emptyImage = ModelUIImages.getImage("empty_co.gif");
//$NON-NLS-1$
@@ -48,9 +50,10 @@
private Image getErrorImage(Image image) {
Image i = (Image)errorImages.get(image);
- if(i == null) {
+ if(i == null || i.isDisposed()) {
ErrorImageDescriptor d = new ErrorImageDescriptor(image, IMarker.SEVERITY_ERROR);
i = d.createImage();
+ registerImage(i);
errorImages.put(image, i);
}
return i;
@@ -58,14 +61,24 @@
private Image getWarningImage(Image image) {
Image i = (Image)warningImages.get(image);
- if(i == null) {
+ if(i == null || i.isDisposed()) {
ErrorImageDescriptor d = new ErrorImageDescriptor(image, IMarker.SEVERITY_WARNING);
i = d.createImage();
+ registerImage(i);
warningImages.put(image, i);
}
return i;
}
+ private void registerImage(Image i) {
+ ImageRegistry registry = ModelUIPlugin.getDefault().getImageRegistry();
+ String key = "" + Math.random(); //We retrieve created images by maps, let
use unique random key for registry.
+ synchronized(registry) {
+ registry.remove(key); //Just in case, to be on the safe side.
+ registry.put(key, i);
+ }
+ }
+
int getErrorState(Object element) {
if(!(element instanceof XModelObject)) return 0;
return XMarkerManager.getInstance().getErrorState((XModelObject)element);
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryDialog.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryDialog.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryDialog.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -43,7 +43,7 @@
}
protected Control createDialogArea(Composite parent) {
- setTitleImage(ModelUIImages.getImageDescriptor(ModelUIImages.WIZARD_DEFAULT).createImage(null));
+ setTitleImage(ModelUIImages.getImage(ModelUIImages.WIZARD_DEFAULT));
Composite composite = new Composite(parent, SWT.NONE);
GridLayout gridLayout = new GridLayout(1, false);
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryWizardView.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryWizardView.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/query/AbstractQueryWizardView.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -150,7 +150,7 @@
if ((titleImage!=null)&&(titleDialog!=null)) {
titleDialog.setTitleImage(titleImage);
} else {
- titleDialog.setTitleImage(ModelUIImages.getImageDescriptor(ModelUIImages.WIZARD_DEFAULT).createImage(null));
+ titleDialog.setTitleImage(ModelUIImages.getImage(ModelUIImages.WIZARD_DEFAULT));
}
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/special/DefaultSpecialWizardDialog.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/special/DefaultSpecialWizardDialog.java 2011-12-01
01:17:02 UTC (rev 36811)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/wizards/special/DefaultSpecialWizardDialog.java 2011-12-01
01:27:30 UTC (rev 36812)
@@ -53,7 +53,7 @@
stepPage = null;
}
ISpecialWizardStep wizardStep = wizard.getWizardStep();
- this.setTitleImage(ModelUIImages.getImageDescriptor(ModelUIImages.WIZARD_DEFAULT).createImage(null));
+ this.setTitleImage(ModelUIImages.getImage(ModelUIImages.WIZARD_DEFAULT));
return wizardStep.createControl(parent);
}