[279479] Servers View returns Error for Label Decorator if not in J2EE perspective
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java
index a06d04e..6816d46 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008,2009 IBM Corporation and others.
+ * Copyright (c) 2008,2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -26,30 +26,47 @@
 		Messages.viewStatusStopping4,
 		Messages.viewStatusStopped2};
 	
-	private static final Image[] startingImages = new Image[] {
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_1),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_2),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_3)
-	};
+	private static Image[] startingImages;
+	private static ImageDescriptor[] startingImagesDescriptor;	
+	private static Image[] stoppingImages;
+	private static ImageDescriptor[] stoppingImagesDescriptor;
 	
-	private static final ImageDescriptor[] startingImagesDescriptor = new ImageDescriptor[] {
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_1),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_2),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_3)
-	};
+	/**
+	 * Initialize the variables for this class
+	 */
+	public void init(){
+		loadImages();
+	}
 	
-	private static final Image[] stoppingImages = new Image[] {
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_1),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2)
-	};
-	
-	private static final ImageDescriptor[] stoppingImagesDescriptor = new ImageDescriptor[] {
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_1),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_2),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_3)
-	};
-	
+	/**
+	 * Load the Server starting images. 
+	 * NOTE: This is done so that we don't initialize the images when a label is being requested
+	 */
+	public void loadImages(){
+		startingImages = new Image[] {
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_1),
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_2),
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_3)
+		};
+		
+		startingImagesDescriptor = new ImageDescriptor[] {
+			ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_1),
+			ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_2),
+			ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_3)
+		};
+		
+		stoppingImages = new Image[] {
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_1),
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2),
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2)
+		};
+		
+		stoppingImagesDescriptor = new ImageDescriptor[] {
+			ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_1),
+			ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_2),
+			ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_3)
+		};
+	}
 
 	/**
 	 * @see UIDecorator#getStateLabel(int, String, int)
@@ -73,11 +90,14 @@
 		
 		return serverStateUnmanaged[state];
 	}
-
-	/**
-	 * @see UIDecorator#getStateImage(int, String, int)
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.ui.internal.provisional.UIDecorator#getStateImage(int, java.lang.String, int)
 	 */
 	public Image getStateImage(int state, String mode, int count) {
+		// Only initialize the images when an image is required
+		init();
+		
 		if (state == IServer.STATE_UNKNOWN)
 			return null;
 		else if (state == IServer.STATE_STARTING)
@@ -97,10 +117,11 @@
 		}
 	}
 	
-	/**
-	 * @see UIDecorator#getStateImage(int, String, int)
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.ui.internal.provisional.UIDecorator#getStateImageDescriptor(int, java.lang.String, int)
 	 */
 	public ImageDescriptor getStateImageDescriptor(int state, String mode, int count) {
+		// Only initialize the images when an image is required
 		if (state == IServer.STATE_UNKNOWN)
 			return null;
 		else if (state == IServer.STATE_STARTING)
@@ -120,8 +141,6 @@
 		}
 	}
 	
-	
-
 	public String getModuleName() {
 		return "module";
 	}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ManagedUIDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ManagedUIDecorator.java
index 29206c5..1eab035 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ManagedUIDecorator.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ManagedUIDecorator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -34,18 +34,33 @@
 		Messages.viewStatusStopping2,
 		Messages.viewStatusStopping3};
 	
-	private static final Image[] startingImages = new Image[] {
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_1),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_2),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_3)
-	};
+	private static Image[] startingImages;
+	private static Image[] stoppingImages;
 	
-	private static final Image[] stoppingImages = new Image[] {
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_1),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2),
-		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2)
-	};
-
+	/**
+	 * Initialize the variables for this class
+	 */
+	public void init(){
+		loadImages();
+	}
+	
+	/**
+	 * Load the Server starting images. 
+	 * NOTE: This is done so that we don't initialize the images when a label is being requested
+	 */
+	public void loadImages(){
+		startingImages = new Image[] {
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_1),
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_2),
+			ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_3)
+		};
+		stoppingImages = new Image[] {
+				ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_1),
+				ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2),
+				ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2)
+		};
+	}
+		
 	/**
 	 * @see UIDecorator#getStateLabel(int, String, int)
 	 */
@@ -72,7 +87,10 @@
 	/**
 	 * @see UIDecorator#getStateImage(int, String, int)
 	 */
-	public Image getStateImage(int state, String mode, int count) {
+	public Image getStateImage(int state, String mode, int count) { 
+		// Only initialize the images when an image is required
+		init();
+		
 		if (state == IServer.STATE_UNKNOWN)
 			return null;
 		else if (state == IServer.STATE_STARTING)
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java
index 036d7f3..eb92b38 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005,2009 IBM Corporation and others.
+ * Copyright (c) 2005,2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -17,11 +17,20 @@
 	protected static UIDecorator decorator = new ManagedUIDecorator();
 	protected static UIDecorator decorator2 = new CNFManagedUIDecorator();
 	
+	@Deprecated
 	public static UIDecorator getUIDecorator(IServerType serverType) {
 		return decorator;
 	}
-	
+	@Deprecated
 	public static UIDecorator getCNFUIDecorator(IServerType serverType) {
 		return decorator2;
 	}
+	
+	public static UIDecorator getUIDecorator(){
+		return decorator;
+	}
+	
+	public static UIDecorator getCNFUIDecorator() {
+		return decorator2;
+	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java
index 34f7733..205aa73 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * Copyright (c) 2003, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -254,23 +254,6 @@
 	 */
 	protected Image getStateImage(IServerType serverType, int state, String mode) {
 		return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, count);
-		/*if (state == IServer.STATE_UNKNOWN)
-			return null;
-		else if (state == IServer.STATE_STARTING)
-			return startingImages[count];
-		else if (state == IServer.STATE_STOPPING)
-			return stoppingImages[count];
-		else if (state == IServer.STATE_STOPPED)
-			return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPED);
-		else { //if (state == IServer.STATE_STARTED) {
-			//String mode = server.getMode();
-			if (ILaunchManager.DEBUG_MODE.equals(mode))
-				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED_DEBUG);
-			else if (ILaunchManager.PROFILE_MODE.equals(mode))
-				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED_PROFILE);
-			else
-				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED);
-		}*/
 	}
 	
 	/**
@@ -290,28 +273,6 @@
 	 */
 	protected String getStateLabel(IServerType serverType, int state, String mode) {
 		return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode, count);
-		/*if (stateSet == IServerType.SERVER_STATE_SET_PUBLISHED)
-			return "";
-		
-		if (stateSet == IServerType.SERVER_STATE_SET_MANAGED) {
-			if (state == IServer.STATE_UNKNOWN)
-				return "";
-			else if (state == IServer.STATE_STARTING)
-				return startingText[count];
-			else if (state == IServer.STATE_STOPPING)
-				return stoppingText[count];
-			else if (state == IServer.STATE_STARTED) {
-				if (ILaunchManager.DEBUG_MODE.equals(mode))
-					return Messages.viewStatusStartedDebug");
-				else if (ILaunchManager.PROFILE_MODE.equals(mode))
-					return Messages.viewStatusStartedProfile");
-				else
-					return Messages.viewStatusStarted");
-			} else if (state == IServer.STATE_STOPPED)
-				return Messages.viewStatusStopped");
-		}
-		
-		return serverStateUnmanaged[state];*/
 	}
 	
 	protected void animate() {