You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2008/03/13 10:59:36 UTC
svn commit: r636690 -
/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/ValueEditorsPreferencePage.java
Author: seelmann
Date: Thu Mar 13 02:59:35 2008
New Revision: 636690
URL: http://svn.apache.org/viewvc?rev=636690&view=rev
Log:
Fix for DIRSTUDIO-290: fixed image handling in properties dialog
Modified:
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/ValueEditorsPreferencePage.java
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/ValueEditorsPreferencePage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/ValueEditorsPreferencePage.java?rev=636690&r1=636689&r2=636690&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/ValueEditorsPreferencePage.java (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/ValueEditorsPreferencePage.java Thu Mar 13 02:59:35 2008
@@ -24,7 +24,9 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
@@ -41,6 +43,7 @@
import org.apache.directory.studio.valueeditors.ValueEditorManager;
import org.apache.directory.studio.valueeditors.ValueEditorManager.ValueEditorExtension;
import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
@@ -122,6 +125,8 @@
/** The syntax remove button. */
private Button syntaxRemoveButton;
+ /** The map of images */
+ private Map<ImageDescriptor, Image> imageMap;
/**
* Creates a new instance of ValueEditorsPreferencePage.
@@ -130,6 +135,7 @@
{
super( "Value Editors" );
super.setDescription( "Specify value editors:" );
+ this.imageMap = new HashMap<ImageDescriptor, Image>();
}
@@ -144,6 +150,24 @@
/**
* {@inheritDoc}
*/
+ public void dispose()
+ {
+ if ( imageMap != null ) {
+ for ( Image image : imageMap.values() )
+ {
+ if ( image != null && !image.isDisposed() )
+ {
+ image.dispose();
+ }
+ }
+ }
+ super.dispose();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
protected Control createContents( Composite parent )
{
Composite composite = BaseWidgetUtils.createColumnContainer( parent, 1, 1 );
@@ -552,7 +576,16 @@
if ( index == 2 )
{
ValueEditorExtension vee = class2ValueEditorExtensionMap.get( relation.getValueEditorClassName() );
- return vee != null ? vee.icon.createImage() : null;
+ if ( vee != null )
+ {
+ if ( !imageMap.containsKey( vee.icon ) )
+ {
+ Image image = vee.icon.createImage();
+ imageMap.put( vee.icon, image );
+ }
+ return imageMap.get( vee.icon );
+ }
+ return null;
}
}
@@ -601,7 +634,16 @@
if ( index == 2 )
{
ValueEditorExtension vee = class2ValueEditorExtensionMap.get( relation.getValueEditorClassName() );
- return vee != null ? vee.icon.createImage() : null;
+ if ( vee != null )
+ {
+ if ( !imageMap.containsKey( vee.icon ) )
+ {
+ Image image = vee.icon.createImage();
+ imageMap.put( vee.icon, image );
+ }
+ return imageMap.get( vee.icon );
+ }
+ return null;
}
}