X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/launcher/PHPEnvironmentTab.java b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/launcher/PHPEnvironmentTab.java index d7a6527..c51906a 100644 --- a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/launcher/PHPEnvironmentTab.java +++ b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/launcher/PHPEnvironmentTab.java @@ -63,6 +63,8 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { protected Button fOpenDBGSessionInBrowserCheckBox; + protected Button fOpenDBGSessionInExternalBrowserCheckBox; + protected Button fPathMapRemoveButton; protected Button fPathMapAddButton; @@ -111,11 +113,12 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { setRemoteTabEnableState(); } else if (source == fRemoteDebugTranslate) { setRemoteTabEnableState(); + } else if (source == fOpenDBGSessionInBrowserCheckBox) { + setRemoteTabEnableState(); } else { updateLaunchConfigurationDialog(); } makeupTargetFile(); - } } @@ -130,6 +133,8 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { private static final boolean DEFAULT_OPEN_DBGSESSION_IN_BROWSER = true; + private static final boolean DEFAULT_OPEN_DBGSESSION_IN_EXTERNAL_BROWSER = false; + static String[] columnTitles = { PHPDebugUiMessages .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMapTableTitle.local"), @@ -148,8 +153,8 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { tabFolder.setLayoutData(gridData); // addLoadPathTab(tabFolder); - addInterpreterTab(tabFolder); addRemoteDebugTab(tabFolder); + addInterpreterTab(tabFolder); } protected void addRemoteDebugTab(TabFolder tabFolder) { @@ -189,6 +194,18 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { GridData.HORIZONTAL_ALIGN_BEGINNING)); fOpenDBGSessionInBrowserCheckBox.addSelectionListener(fListener); + // addendum + fOpenDBGSessionInExternalBrowserCheckBox = new Button(comp, SWT.CHECK); + fOpenDBGSessionInExternalBrowserCheckBox + .setText(PHPDebugUiMessages + .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.OpenDBGSessionInExternalBrowserCheckBox.label")); + fOpenDBGSessionInExternalBrowserCheckBox.setLayoutData(new GridData( + SWT.BEGINNING)); + ((GridData) fOpenDBGSessionInExternalBrowserCheckBox.getLayoutData()).horizontalIndent = 16; + fOpenDBGSessionInExternalBrowserCheckBox + .addSelectionListener(fListener); + // addendum + label = new Label(comp, SWT.NONE); label .setText(PHPDebugUiMessages @@ -356,6 +373,7 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { fPathMapRemoveButton.setEnabled(false); fPathMapAddButton.setEnabled(false); fOpenDBGSessionInBrowserCheckBox.setEnabled(false); + fOpenDBGSessionInExternalBrowserCheckBox.setEnabled(false); } else { setPathMapButtonsEnableState(); } @@ -372,6 +390,8 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { // if (fRemoteDebugCheckBox.getSelection()) { fOpenDBGSessionInBrowserCheckBox.setEnabled(true); + fOpenDBGSessionInExternalBrowserCheckBox + .setEnabled(fOpenDBGSessionInBrowserCheckBox.getSelection()); fRemoteDebugTranslate.setEnabled(true); int selectCount = this.fRemoteDebugPathMapTable .getSelectionIndices().length; @@ -554,7 +574,7 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { IProject project = ResourcesPlugin.getWorkspace().getRoot() .getProject(projectName); if (project != null) { - IPath remotePath = project.getLocation(); + IPath remotePath = project.getFullPath(); String fileName = configuration.getAttribute( PHPLaunchConfigurationAttribute.FILE_NAME, ""); if (fileName != "") { @@ -586,6 +606,7 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { } catch (CoreException ce) { fRemoteDebugCheckBox.setSelection(DEFAULT_REMOTE_DEBUG); } + tabFolder.setSelection(fRemoteDebugCheckBox.getSelection() ? 0 : 1); try { fRemoteDebugTranslate.setSelection(configuration.getAttribute( PHPLaunchConfigurationAttribute.REMOTE_DEBUG_TRANSLATE, @@ -603,7 +624,19 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { fOpenDBGSessionInBrowserCheckBox .setSelection(DEFAULT_OPEN_DBGSESSION_IN_BROWSER); } + try { + fOpenDBGSessionInExternalBrowserCheckBox + .setSelection(configuration + .getAttribute( + PHPLaunchConfigurationAttribute.OPEN_DBGSESSION_IN_EXTERNAL_BROWSER, + DEFAULT_OPEN_DBGSESSION_IN_EXTERNAL_BROWSER)); + } catch (CoreException ce) { + fOpenDBGSessionInExternalBrowserCheckBox + .setSelection(DEFAULT_OPEN_DBGSESSION_IN_EXTERNAL_BROWSER); + } + setRemoteTabEnableState(); + try { fRemoteSourcePath.setText(configuration.getAttribute( PHPLaunchConfigurationAttribute.REMOTE_PATH, "")); @@ -692,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) { @@ -755,6 +796,10 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab { configuration.setAttribute( PHPLaunchConfigurationAttribute.OPEN_DBGSESSION_IN_BROWSER, fOpenDBGSessionInBrowserCheckBox.getSelection()); + configuration + .setAttribute( + PHPLaunchConfigurationAttribute.OPEN_DBGSESSION_IN_EXTERNAL_BROWSER, + fOpenDBGSessionInExternalBrowserCheckBox.getSelection()); } protected Composite createPageRoot(Composite parent) { @@ -790,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);