[269741] ServerView2: Memory leak
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java
index fab3fe9..75c7645 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java
@@ -11,7 +11,6 @@
package org.eclipse.wst.server.ui.internal.cnf;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
@@ -133,14 +132,14 @@
return syncState[i];
}
- public static ImageDescriptor getServerStateImage(IServer server) {
+ public static Image getServerStateImage(IServer server) {
return server == null ? null :
getStateImage(server.getServerType(), server.getServerState(), server.getMode());
}
-
- public static ImageDescriptor getStateImage(IServerType serverType, int state, String mode) {
+
+ public static Image getStateImage(IServerType serverType, int state, String mode) {
return serverType == null ? null :
- UIDecoratorManager.getCNFUIDecorator(serverType).getStateImageDescriptor(state, mode, getCount());
+ UIDecoratorManager.getCNFUIDecorator(serverType).getStateImage(state, mode, getCount());
}
public static String getModuleText(ModuleServer ms ) {
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
index b0a69be..7ea62fd 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
@@ -10,7 +10,8 @@
*******************************************************************************/
package org.eclipse.wst.server.ui.internal.cnf;
-import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
@@ -18,6 +19,7 @@
import org.eclipse.wst.server.ui.ServerUICore;
import org.eclipse.wst.server.ui.internal.ImageResource;
import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
/**
* Server table label provider.
@@ -50,8 +52,13 @@
if( element == ServerContentProvider.INITIALIZING)
return Messages.viewInitializing;
+ if (element instanceof IWorkspaceRoot){
+ return Platform.getResourceString(ServerUIPlugin.getInstance().getBundle(), "%viewServers");
+ }
+
return "-";
}
+
public Image getImage(Object element) {
Image image = null;
if (element instanceof ModuleServer) {
@@ -62,12 +69,13 @@
} else if( element instanceof IServer ) {
IServer server = (IServer) element;
if (server.getServerType() != null) {
- image = ImageResource.getImage(server.getServerType().getId());
// TODO Angel says: Need to fix this
- // Because we are now grabbing the ServerState the type will not show. It might be best to create a new icon for the state
- ImageDescriptor imgDescriptor = ServerDecorator.getServerStateImage(server);
- if (image != null && imgDescriptor != null){
- image = imgDescriptor.createImage();
+ // Because we are now grabbing the ServerState the type will not show.
+ // It might be best to create a new icon for the state, perhaps just the
+ // play/stop images, without the server
+ image = ServerDecorator.getServerStateImage(server);
+ if (image == null){
+ image = ImageResource.getImage(server.getServerType().getId());
}
}
}
@@ -87,5 +95,5 @@
}
}
return true;
- }
+ }
}