diff -r 4060a0bfff28 web.project/src/org/netbeans/modules/web/project/Bundle.properties
--- a/web.project/src/org/netbeans/modules/web/project/Bundle.properties Tue Jul 17 15:37:16 2012 +0200
+++ b/web.project/src/org/netbeans/modules/web/project/Bundle.properties Thu Jul 19 13:36:53 2012 +0200
@@ -98,6 +98,9 @@
MSG_No_Server_Selected=The target server has not been set or has been removed.
Right-click the project in the Projects window and choose
Resolve Missing Server Problem \
to set the target server.
+MSG_Unknown_Server_Selected=The target server ({0}) may have been removed.
Right-click the project in the Projects window and choose
Resolve Missing Server Problem \
+ to set the target server.
+MSG_Unknown_Server_Exec=E&xecute anyway!
TXT_noExecutableClass=Class "{0}" neither has a main method nor is it a servlet specified in web.xml.
diff -r 4060a0bfff28 web.project/src/org/netbeans/modules/web/project/WebActionProvider.java
--- a/web.project/src/org/netbeans/modules/web/project/WebActionProvider.java Tue Jul 17 15:37:16 2012 +0200
+++ b/web.project/src/org/netbeans/modules/web/project/WebActionProvider.java Thu Jul 19 13:36:53 2012 +0200
@@ -84,6 +84,7 @@
import java.util.LinkedList;
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.TypeElement;
+import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
@@ -117,6 +118,8 @@
import org.netbeans.spi.project.support.ant.PropertyEvaluator;
import org.netbeans.spi.project.support.ant.PropertyUtils;
import org.openide.DialogDescriptor;
+import org.openide.NotifyDescriptor.Message;
+import org.openide.awt.Mnemonics;
import org.openide.util.Exceptions;
/** Action provider of the Web project. This is the place where to do
@@ -913,10 +916,22 @@
return true;
}
}
-
- // no selected server => warning
- String msg = NbBundle.getMessage(WebActionProvider.class, "MSG_No_Server_Selected"); // NOI18N
- DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(msg, NotifyDescriptor.WARNING_MESSAGE));
+
+ if (instance == null || instance.isEmpty()) {
+ // no selected server => warning
+ String msg = NbBundle.getMessage(WebActionProvider.class, "MSG_No_Server_Selected"); // NOI18N
+ DialogDisplayer.getDefault().notify(new Message(msg, NotifyDescriptor.WARNING_MESSAGE));
+ } else {
+ String msg = NbBundle.getMessage(WebActionProvider.class, "MSG_Unknown_Server_Selected", instance); // NOI18N
+ final Message nd = new Message(msg, NotifyDescriptor.WARNING_MESSAGE);
+ JButton anyway = new JButton();
+ Mnemonics.setLocalizedText(anyway, NbBundle.getMessage(WebActionProvider.class, "MSG_Unknown_Server_Exec")); // NOI18N
+ anyway.setDefaultCapable(false);
+ nd.setOptions(new Object[] { Message.OK_OPTION, anyway });
+ if (DialogDisplayer.getDefault().notify(nd) == anyway) {
+ return true;
+ }
+ }
return false;
}