Fixed: 1777191 - Interpreter is required even if remote debugging
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.ui / src / net / sourceforge / phpdt / internal / debug / ui / launcher / PHPEnvironmentTab.java
index 50d3212..cd7ae8f 100644 (file)
@@ -606,9 +606,7 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
                } catch (CoreException ce) {
                        fRemoteDebugCheckBox.setSelection(DEFAULT_REMOTE_DEBUG);
                }
-               if (fRemoteDebugCheckBox.getSelection()) {
-                       tabFolder.setSelection(0);
-               }
+               tabFolder.setSelection(fRemoteDebugCheckBox.getSelection() ? 0 : 1);
                try {
                        fRemoteDebugTranslate.setSelection(configuration.getAttribute(
                                        PHPLaunchConfigurationAttribute.REMOTE_DEBUG_TRANSLATE,
@@ -727,8 +725,16 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
                } catch (CoreException e) {
                        log(e);
                }
-               if (interpreterName != null && !interpreterName.equals(""))
+               if (interpreterName != null && !interpreterName.equals("")) {
                        interpreterCombo.select(interpreterCombo.indexOf(interpreterName));
+               }
+               if (interpreterCombo.getSelectionIndex() < 0) {
+                       // previous definition had been deleted
+                       ((ILaunchConfigurationWorkingCopy) configuration).setAttribute(
+                                       PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
+                       setErrorMessage(PHPDebugUiMessages
+                                       .getString("LaunchConfigurationTab.PHPEnvironment.interpreter_not_selected_error_message"));
+               }
        }
 
        protected void initializeInterpreterCombo(Combo interpreterCombo) {
@@ -829,12 +835,15 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
 
        public boolean isValid(ILaunchConfiguration launchConfig) {
                try {
-                       String selectedInterpreter = launchConfig.getAttribute(
-                                       PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
-                       if (selectedInterpreter.length() == 0) {
-                               setErrorMessage(PHPDebugUiMessages
-                                               .getString("LaunchConfigurationTab.PHPEnvironment.interpreter_not_selected_error_message"));
-                               return false;
+                       if (launchConfig.getAttribute(
+                                       PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "")
+                                       .equals("")) {
+                               if (!launchConfig.getAttribute(
+                                               PHPLaunchConfigurationAttribute.REMOTE_DEBUG, false)) {
+                                       setErrorMessage(PHPDebugUiMessages
+                                                       .getString("LaunchConfigurationTab.PHPEnvironment.interpreter_not_selected_error_message"));
+                                       return false;
+                               }
                        }
                } catch (CoreException e) {
                        log(e);