[375507] deleting a server with a dirty server editor - prompt for closing serve editor during server editor.
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java
index f9723a1..7b62517 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java
@@ -99,6 +99,12 @@
 				resourceDeleted = true;
 				if (!isDirty()) {
 					closeEditor();
+				} else {
+					Display.getDefault().asyncExec(new Runnable() {
+						public void run() {
+							checkAndCloseEditorOnDeletedServer();
+						}
+					});
 				}
 			}
 		}
@@ -932,16 +938,7 @@
 		super.setFocus();
 	}
 
-	/**
-	 * 
-	 */
-	protected void checkResourceState() {
-		// do not check the resource state change if saving through the editor
-		if (isSaving) {
-			// do nothing
-			return;
-		}
-		
+	void checkAndCloseEditorOnDeletedServer() {
 		// check for deleted files
 		if (resourceDeleted) {
 			String title = Messages.editorResourceDeleteTitle;
@@ -955,10 +952,24 @@
 				doSave(new NullProgressMonitor());
 			else
 				closeEditor();
-			return;
 		}
 		resourceDeleted = false;
+	}
+
+
+	/**
+	 * 
+	 */
+	protected void checkResourceState() {
+		// do not check the resource state change if saving through the editor
+		if (isSaving) {
+			// do nothing
+			return;
+		}
 		
+		// check for deleted files
+		checkAndCloseEditorOnDeletedServer();
+				
 		// check for server changes
 		if (serverId != null) {
 			if (!commandManager.isDirty(serverId)) {