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 92162b0..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
@@ -1,38 +1,40 @@
package net.sourceforge.phpdt.internal.debug.ui.launcher;
+import java.io.File;
import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
import net.sourceforge.phpdt.internal.debug.ui.PHPDebugUiMessages;
import net.sourceforge.phpdt.internal.debug.ui.PHPDebugUiPlugin;
-import net.sourceforge.phpdt.internal.debug.ui.preferences.EditInterpreterDialog;
import net.sourceforge.phpdt.internal.debug.ui.preferences.EditPathMapDialog;
+import net.sourceforge.phpdt.internal.debug.ui.preferences.PHPInterpreterPreferencePage;
import net.sourceforge.phpdt.internal.launching.PHPInterpreter;
import net.sourceforge.phpdt.internal.launching.PHPLaunchConfigurationAttribute;
import net.sourceforge.phpdt.internal.launching.PHPRuntime;
import net.sourceforge.phpdt.internal.ui.PHPUiImages;
-import net.sourceforge.phpeclipse.LoadPathEntry;
-import net.sourceforge.phpeclipse.PHPCore;
-import net.sourceforge.phpeclipse.resourcesview.PHPProject;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
+import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -43,38 +45,62 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.internal.dialogs.ListContentProvider;
public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
protected ListViewer loadPathListViewer;
+
protected java.util.List installedInterpretersWorkingCopy;
+
protected Combo interpreterCombo;
- protected Button loadPathDefaultButton;
+
+ // protected Button loadPathDefaultButton;
protected Button fRemoteDebugCheckBox;
+
+ protected Button fRemoteDebugTranslate;
+
+ protected Button fOpenDBGSessionInBrowserCheckBox;
+
+ protected Button fOpenDBGSessionInExternalBrowserCheckBox;
+
protected Button fPathMapRemoveButton;
+
protected Button fPathMapAddButton;
+
protected Button fPathMapEditButton;
+
protected Text fRemoteSourcePath;
+
protected Table fRemoteDebugPathMapTable;
+
protected TabFolder tabFolder;
-
- private class RemoteDebugTabListener extends SelectionAdapter implements ModifyListener {
- /* (non-Javadoc)
+ private Text targetFile;
+
+ private String originalFileName = "";
+
+ private class RemoteDebugTabListener extends SelectionAdapter implements
+ ModifyListener {
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
*/
public void modifyText(ModifyEvent e) {
updateLaunchConfigurationDialog();
+ makeupTargetFile();
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent e) {
- Object source= e.getSource();
+ Object source = e.getSource();
if (source == fRemoteDebugPathMapTable) {
setPathMapButtonsEnableState();
} else if (source == fPathMapAddButton) {
@@ -84,22 +110,37 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
} else if (source == fPathMapRemoveButton) {
handlePathMapRemoveButtonSelected();
} else if (source == fRemoteDebugCheckBox) {
- setRemoteTabEnableState();
+ setRemoteTabEnableState();
+ } else if (source == fRemoteDebugTranslate) {
+ setRemoteTabEnableState();
+ } else if (source == fOpenDBGSessionInBrowserCheckBox) {
+ setRemoteTabEnableState();
} else {
- updateLaunchConfigurationDialog();;
- }
-
+ updateLaunchConfigurationDialog();
+ }
+ makeupTargetFile();
}
}
-
- private static final String EMPTY_STRING = ""; //$NON-NLS-1$
- private RemoteDebugTabListener fListener= new RemoteDebugTabListener();
-
- private static final boolean DEFAULT_REMOTE_DEBUG= false;
- static String [] columnTitles = { PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMapTableTitle.local"),
- PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMapTableTitle.remote")
- };
+
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+ private RemoteDebugTabListener fListener = new RemoteDebugTabListener();
+
+ private static final boolean DEFAULT_REMOTE_DEBUG = false;
+
+ private static final boolean DEFAULT_REMOTE_DEBUG_TRANSLATE = false;
+
+ 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"),
+ PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMapTableTitle.remote") };
+
public PHPEnvironmentTab() {
super();
}
@@ -111,37 +152,99 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
GridData gridData = new GridData(GridData.FILL_BOTH);
tabFolder.setLayoutData(gridData);
- addLoadPathTab(tabFolder);
- addInterpreterTab(tabFolder);
+ // addLoadPathTab(tabFolder);
addRemoteDebugTab(tabFolder);
+ addInterpreterTab(tabFolder);
}
-
- protected void addRemoteDebugTab(TabFolder tabFolder)
- {
+
+ protected void addRemoteDebugTab(TabFolder tabFolder) {
Label label;
-
+
TabItem remoteDebugTab = new TabItem(tabFolder, SWT.NONE, 0);
- remoteDebugTab.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.label"));
-
+ remoteDebugTab
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.label"));
+
Composite comp = new Composite(tabFolder, SWT.NONE);
- comp.setLayout(new GridLayout());
- remoteDebugTab.setControl(comp);
+ comp.setLayout(new GridLayout());
+ remoteDebugTab.setControl(comp);
GridData gd;
-
+
fRemoteDebugCheckBox = new Button(comp, SWT.CHECK);
- fRemoteDebugCheckBox.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.RemoteCheckBox.label"));
- fRemoteDebugCheckBox.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
+ fRemoteDebugCheckBox
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.RemoteCheckBox.label"));
+ fRemoteDebugCheckBox.setLayoutData(new GridData(
+ GridData.HORIZONTAL_ALIGN_BEGINNING));
fRemoteDebugCheckBox.addSelectionListener(fListener);
-
+
+ fRemoteDebugTranslate = new Button(comp, SWT.CHECK);
+ fRemoteDebugTranslate
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.RemoteTranslate.label"));
+ fRemoteDebugTranslate.setLayoutData(new GridData(
+ GridData.HORIZONTAL_ALIGN_BEGINNING));
+ fRemoteDebugTranslate.addSelectionListener(fListener);
+
+ fOpenDBGSessionInBrowserCheckBox = new Button(comp, SWT.CHECK);
+ fOpenDBGSessionInBrowserCheckBox
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.OpenDBGSessionInBrowserCheckBox.label"));
+ fOpenDBGSessionInBrowserCheckBox.setLayoutData(new GridData(
+ 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.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.RemoteSourcePath.label"));
+ label
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.RemoteSourcePath.label"));
fRemoteSourcePath = new Text(comp, SWT.BORDER | SWT.SINGLE);
gd = new GridData(GridData.FILL_HORIZONTAL);
- fRemoteSourcePath.setLayoutData(gd);
+ fRemoteSourcePath.setLayoutData(gd);
fRemoteSourcePath.addModifyListener(fListener);
-
- createVerticalSpacer(comp,1);
-
+
+ // addendum - make an effect of RemoteSourcePath clear
+ Composite targetComp = new Composite(comp, SWT.NONE);
+ targetComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ GridLayout targetLayout = new GridLayout(4, false);
+ targetLayout.marginHeight = 0;
+ targetLayout.marginWidth = 3;
+ targetComp.setLayout(targetLayout);
+ Color targetColor = new Color(null, 160, 160, 160);
+ Label label_lp = new Label(targetComp, SWT.NONE);
+ label_lp.setText("(");
+ label_lp.setForeground(targetColor);
+ label_lp.setLayoutData(new GridData(GridData.BEGINNING));
+ Label targetLabel = new Label(targetComp, SWT.NONE);
+ targetLabel
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.TargetFile.label"));
+ targetLabel.setForeground(targetColor);
+ targetLabel.setLayoutData(new GridData(GridData.BEGINNING));
+ targetFile = new Text(targetComp, SWT.SINGLE);
+ targetFile.setForeground(targetColor);
+ targetFile.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ targetFile.setEditable(false);
+ Label label_rp = new Label(targetComp, SWT.NONE);
+ label_rp.setText(")");
+ label_rp.setForeground(targetColor);
+ label_rp.setLayoutData(new GridData(GridData.END));
+ // addendum
+
+ createVerticalSpacer(comp, 1);
+
Composite pathMapComp = new Composite(comp, SWT.NONE);
gd = new GridData(GridData.FILL_BOTH);
pathMapComp.setLayoutData(gd);
@@ -151,136 +254,147 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
parametersLayout.marginWidth = 0;
pathMapComp.setLayout(parametersLayout);
-
Label pathMapLabel = new Label(pathMapComp, SWT.NONE);
- pathMapLabel.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.label"));
+ pathMapLabel
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.label"));
gd = new GridData();
gd.horizontalSpan = 2;
pathMapLabel.setLayoutData(gd);
-
- fRemoteDebugPathMapTable = new Table(pathMapComp, SWT.BORDER | SWT.MULTI);
+ fRemoteDebugPathMapTable = new Table(pathMapComp, SWT.BORDER
+ | SWT.MULTI);
TableLayout tableLayout = new TableLayout();
fRemoteDebugPathMapTable.setLayout(tableLayout);
gd = new GridData(GridData.FILL_BOTH);
fRemoteDebugPathMapTable.setLayoutData(gd);
- TableColumn column1 = new TableColumn(this.fRemoteDebugPathMapTable, SWT.NONE);
- column1.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Table.Title.local")); //$NON-NLS-1$
- TableColumn column2 = new TableColumn(this.fRemoteDebugPathMapTable, SWT.NONE);
- column2.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Table.Title.remote")); //$NON-NLS-1$
+ TableColumn column1 = new TableColumn(this.fRemoteDebugPathMapTable,
+ SWT.NONE);
+ column1
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Table.Title.local")); //$NON-NLS-1$
+ TableColumn column2 = new TableColumn(this.fRemoteDebugPathMapTable,
+ SWT.NONE);
+ column2
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Table.Title.remote")); //$NON-NLS-1$
tableLayout.addColumnData(new ColumnWeightData(100));
tableLayout.addColumnData(new ColumnWeightData(100));
fRemoteDebugPathMapTable.setHeaderVisible(true);
fRemoteDebugPathMapTable.setLinesVisible(true);
fRemoteDebugPathMapTable.addSelectionListener(fListener);
fRemoteDebugPathMapTable.addMouseListener(new MouseAdapter() {
- public void mouseDoubleClick(MouseEvent e) {
- setPathMapButtonsEnableState();
- if (fPathMapEditButton.isEnabled()) {
- handlePathMapEditButtonSelected();
- }
- }
- });
-// fRemoteDebugPathMapTable.setEnabled(false);
-
+ public void mouseDoubleClick(MouseEvent e) {
+ setPathMapButtonsEnableState();
+ if (fPathMapEditButton.isEnabled()) {
+ handlePathMapEditButtonSelected();
+ }
+ }
+ });
+ // fRemoteDebugPathMapTable.setEnabled(false);
+
Composite envButtonComp = new Composite(pathMapComp, SWT.NONE);
GridLayout envButtonLayout = new GridLayout();
envButtonLayout.marginHeight = 0;
envButtonLayout.marginWidth = 0;
envButtonComp.setLayout(envButtonLayout);
- gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL);
+ gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING
+ | GridData.HORIZONTAL_ALIGN_FILL);
envButtonComp.setLayoutData(gd);
-
- fPathMapAddButton = createPushButton(envButtonComp ,PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Button.Add.label"), null); //$NON-NLS-1$
+ fPathMapAddButton = createPushButton(
+ envButtonComp,
+ PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Button.Add.label"), null); //$NON-NLS-1$
fPathMapAddButton.addSelectionListener(fListener);
-// fPathMapAddButton.setEnabled(false);
-
- fPathMapEditButton = createPushButton(envButtonComp,PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Button.Edit.label"), null); //$NON-NLS-1$
+ // fPathMapAddButton.setEnabled(false);
+
+ fPathMapEditButton = createPushButton(
+ envButtonComp,
+ PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Button.Edit.label"), null); //$NON-NLS-1$
fPathMapEditButton.addSelectionListener(fListener);
-// fPathMapEditButton.setEnabled(false);
-
- fPathMapRemoveButton = createPushButton(envButtonComp,PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Button.Remove.label"), null); //$NON-NLS-1$
+ // fPathMapEditButton.setEnabled(false);
+
+ fPathMapRemoveButton = createPushButton(
+ envButtonComp,
+ PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMap.Button.Remove.label"), null); //$NON-NLS-1$
fPathMapRemoveButton.addSelectionListener(fListener);
-// fPathMapRemoveButton.setEnabled(false);
-
-
- }
-
- void handlePathMapAddButtonSelected()
- {
- EditPathMapDialog dialog=
- new EditPathMapDialog(
- getShell(),
- "Edit File Map",
- new String[] {EMPTY_STRING, EMPTY_STRING});
- openNewPathMapDialog(dialog,null);
-// dialog.create();
-// if (dialog.open()==EditPathMapDialog.OK)
-// {
-// TableItem item = new TableItem (fRemoteDebugPathMapTable, SWT.NONE);
-// item.setText(0,dialog.getLocalPath());
-// item.setText(1,dialog.getRemotePath());
-// updateLaunchConfigurationDialog();
-// }
-// updateLaunchConfigurationDialog();
+ // fPathMapRemoveButton.setEnabled(false);
+
+ }
+
+ void handlePathMapAddButtonSelected() {
+ EditPathMapDialog dialog = new EditPathMapDialog(getShell(),
+ "Edit File Map", new String[] { EMPTY_STRING, EMPTY_STRING });
+ openNewPathMapDialog(dialog, null);
+ // dialog.create();
+ // if (dialog.open()==EditPathMapDialog.OK)
+ // {
+ // TableItem item = new TableItem (fRemoteDebugPathMapTable, SWT.NONE);
+ // item.setText(0,dialog.getLocalPath());
+ // item.setText(1,dialog.getRemotePath());
+ // updateLaunchConfigurationDialog();
+ // }
+ // updateLaunchConfigurationDialog();
setPathMapButtonsEnableState();
}
-
- void handlePathMapRemoveButtonSelected()
- {
- int[] selectedIndices = this.fRemoteDebugPathMapTable.getSelectionIndices();
+
+ void handlePathMapRemoveButtonSelected() {
+ int[] selectedIndices = this.fRemoteDebugPathMapTable
+ .getSelectionIndices();
this.fRemoteDebugPathMapTable.remove(selectedIndices);
setPathMapButtonsEnableState();
updateLaunchConfigurationDialog();
}
-
- void handlePathMapEditButtonSelected()
- {
+
+ void handlePathMapEditButtonSelected() {
TableItem selectedItem = this.fRemoteDebugPathMapTable.getSelection()[0];
- String local = selectedItem.getText(0);
- String remote = selectedItem.getText(1);
- EditPathMapDialog dialog=
- new EditPathMapDialog(
- getShell(),
- "Edit File Map",
- new String[] {local, remote});
- openNewPathMapDialog(dialog, selectedItem);
+ String local = selectedItem.getText(0);
+ String remote = selectedItem.getText(1);
+ EditPathMapDialog dialog = new EditPathMapDialog(getShell(),
+ "Edit File Map", new String[] { local, remote });
+ openNewPathMapDialog(dialog, selectedItem);
}
-
/**
* Set the enabled state of whole tab.
*/
private void setRemoteTabEnableState() {
- boolean state=fRemoteDebugCheckBox.getSelection();
+ boolean state = fRemoteDebugCheckBox.getSelection();
fRemoteSourcePath.setEnabled(state);
-
+ fRemoteDebugTranslate.setEnabled(state);
+
fRemoteDebugPathMapTable.setEnabled(state);
- if (!state)
- {
+ if (!state) {
fPathMapEditButton.setEnabled(false);
- fPathMapRemoveButton.setEnabled(false);
+ fPathMapRemoveButton.setEnabled(false);
fPathMapAddButton.setEnabled(false);
+ fOpenDBGSessionInBrowserCheckBox.setEnabled(false);
+ fOpenDBGSessionInExternalBrowserCheckBox.setEnabled(false);
} else {
setPathMapButtonsEnableState();
}
updateLaunchConfigurationDialog();
}
-
-
+
/**
- * Set the enabled state of the three environment variable-related buttons based on the
- * selection in the PathMapTable widget.
+ * Set the enabled state of the three environment variable-related buttons
+ * based on the selection in the PathMapTable widget.
*/
private void setPathMapButtonsEnableState() {
-// just do nothing for now
-//
- if(fRemoteDebugCheckBox.getSelection())
- {
- int selectCount = this.fRemoteDebugPathMapTable.getSelectionIndices().length;
+ // just do nothing for now
+ //
+ if (fRemoteDebugCheckBox.getSelection()) {
+ fOpenDBGSessionInBrowserCheckBox.setEnabled(true);
+ fOpenDBGSessionInExternalBrowserCheckBox
+ .setEnabled(fOpenDBGSessionInBrowserCheckBox.getSelection());
+ fRemoteDebugTranslate.setEnabled(true);
+ int selectCount = this.fRemoteDebugPathMapTable
+ .getSelectionIndices().length;
if (selectCount < 1) {
fPathMapEditButton.setEnabled(false);
fPathMapRemoveButton.setEnabled(false);
@@ -291,18 +405,21 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
} else {
fPathMapEditButton.setEnabled(false);
}
- }
+ }
fPathMapAddButton.setEnabled(true);
}
}
-
+
/**
- * Show the specified dialog and update the pathMapTable table based on its results.
+ * Show the specified dialog and update the pathMapTable table based on its
+ * results.
*
- * @param updateItem the item to update, or null
if
- * adding a new item
+ * @param updateItem
+ * the item to update, or null
if adding a new
+ * item
*/
- private void openNewPathMapDialog(EditPathMapDialog dialog, TableItem updateItem) {
+ private void openNewPathMapDialog(EditPathMapDialog dialog,
+ TableItem updateItem) {
if (dialog.open() != EditPathMapDialog.OK) {
return;
}
@@ -311,17 +428,19 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
if (tableItem == null) {
tableItem = getTableItemForName(pathPair[0]);
if (tableItem == null) {
- tableItem = new TableItem(this.fRemoteDebugPathMapTable, SWT.NONE);
+ tableItem = new TableItem(this.fRemoteDebugPathMapTable,
+ SWT.NONE);
}
}
tableItem.setText(pathPair);
- this.fRemoteDebugPathMapTable.setSelection(new TableItem[] {tableItem});
- updateLaunchConfigurationDialog();
+ this.fRemoteDebugPathMapTable
+ .setSelection(new TableItem[] { tableItem });
+ updateLaunchConfigurationDialog();
}
-
+
/**
- * Helper method that indicates whether the specified parameter name is already present
- * in the parameters table.
+ * Helper method that indicates whether the specified parameter name is
+ * already present in the parameters table.
*/
private TableItem getTableItemForName(String candidateName) {
TableItem[] items = this.fRemoteDebugPathMapTable.getItems();
@@ -332,41 +451,42 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
}
}
return null;
- }
-
-
-
- protected void addLoadPathTab(TabFolder tabFolder) {
- Composite loadPathComposite = new Composite(tabFolder, SWT.NONE);
- loadPathComposite.setLayout(new GridLayout());
-
- loadPathListViewer = new ListViewer(loadPathComposite, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- loadPathListViewer.setContentProvider(new ListContentProvider());
- loadPathListViewer.setLabelProvider(new LoadPathEntryLabelProvider());
- loadPathListViewer.getList().setLayoutData(new GridData(GridData.FILL_BOTH));
-
- TabItem loadPathTab = new TabItem(tabFolder, SWT.NONE, 0);
- loadPathTab.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.loadPathTab.label"));
- loadPathTab.setControl(loadPathComposite);
- loadPathTab.setData(loadPathListViewer);
-
- loadPathDefaultButton = new Button(loadPathComposite, SWT.CHECK);
- loadPathDefaultButton.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.loadPathDefaultButton.label"));
- loadPathDefaultButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
- loadPathDefaultButton.addSelectionListener(getLoadPathDefaultButtonSelectionListener());
-
- loadPathDefaultButton.setEnabled(false); //for now, until the load path is customizable on the configuration
}
+ // protected void addLoadPathTab(TabFolder tabFolder) {
+ // Composite loadPathComposite = new Composite(tabFolder, SWT.NONE);
+ // loadPathComposite.setLayout(new GridLayout());
+ //
+ // loadPathListViewer = new ListViewer(loadPathComposite, SWT.BORDER |
+ // SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
+ // loadPathListViewer.setContentProvider(new ListContentProvider());
+ // loadPathListViewer.setLabelProvider(new LoadPathEntryLabelProvider());
+ // loadPathListViewer.getList().setLayoutData(new
+ // GridData(GridData.FILL_BOTH));
+ //
+ // TabItem loadPathTab = new TabItem(tabFolder, SWT.NONE, 0);
+ // loadPathTab.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.loadPathTab.label"));
+ // loadPathTab.setControl(loadPathComposite);
+ // loadPathTab.setData(loadPathListViewer);
+
+ // loadPathDefaultButton = new Button(loadPathComposite, SWT.CHECK);
+ // loadPathDefaultButton.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.loadPathDefaultButton.label"));
+ // loadPathDefaultButton.setLayoutData(new
+ // GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
+ // loadPathDefaultButton.addSelectionListener(getLoadPathDefaultButtonSelectionListener());
+ //
+ // loadPathDefaultButton.setEnabled(false); //for now, until the load path
+ // is customizable on the configuration
+ // }
+
protected SelectionListener getLoadPathSelectionListener() {
return new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
- System.out.println("Loadpath list selection occurred: " + e.getSource());
+ System.out.println("Loadpath list selection occurred: "
+ + e.getSource());
}
};
}
-
-
protected SelectionListener getLoadPathDefaultButtonSelectionListener() {
return new SelectionAdapter() {
@@ -380,10 +500,11 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
Composite interpreterComposite = new Composite(tabFolder, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
+ // layout.marginHeight = 0;
+ // layout.marginWidth = 0;
interpreterComposite.setLayout(layout);
- interpreterComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ interpreterComposite.setLayoutData(new GridData(
+ GridData.FILL_HORIZONTAL));
createVerticalSpacer(interpreterComposite, 2);
@@ -393,23 +514,31 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
interpreterCombo.addModifyListener(getInterpreterComboModifyListener());
Button interpreterAddButton = new Button(interpreterComposite, SWT.PUSH);
- interpreterAddButton.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.interpreterAddButton.label"));
+ interpreterAddButton
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.interpreterAddButton.label"));
interpreterAddButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent evt) {
- PHPInterpreter newInterpreter = new PHPInterpreter(null, null);
- EditInterpreterDialog editor = new EditInterpreterDialog(getShell(), PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.editInterpreterDialog.title"));
- editor.create();
- editor.setInterpreterToEdit(newInterpreter);
- if (EditInterpreterDialog.OK == editor.open()) {
- PHPRuntime.getDefault().addInstalledInterpreter(newInterpreter);
- interpreterCombo.add(newInterpreter.getName());
- interpreterCombo.select(interpreterCombo.indexOf(newInterpreter.getName()));
+ PHPInterpreter newInterpreter = new PHPInterpreter(null);
+ File phpRuntime = PHPInterpreterPreferencePage.getFile(
+ getShell(), null);
+ if (phpRuntime != null) {
+ newInterpreter.setInstallLocation(phpRuntime);
+ PHPRuntime.getDefault().addInstalledInterpreter(
+ newInterpreter);
+ interpreterCombo.add(newInterpreter.getInstallLocation()
+ .toString());
+ interpreterCombo.select(interpreterCombo
+ .indexOf(newInterpreter.getInstallLocation()
+ .toString()));
}
}
});
TabItem interpreterTab = new TabItem(tabFolder, SWT.NONE);
- interpreterTab.setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.interpreterTab.label"));
+ interpreterTab
+ .setText(PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.interpreterTab.label"));
interpreterTab.setControl(interpreterComposite);
}
@@ -429,42 +558,110 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
}
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
+ PHPInterpreter selectedInterpreter = PHPRuntime.getDefault()
+ .getSelectedInterpreter();
+ if (selectedInterpreter != null) {
+ String interpreterLocation = selectedInterpreter
+ .getInstallLocation().toString();
+ configuration.setAttribute(
+ PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER,
+ interpreterLocation);
+ }
+ try {
+ String projectName = configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.PROJECT_NAME, "");
+ if (projectName != "") {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
+ if (project != null) {
+ IPath remotePath = project.getFullPath();
+ String fileName = configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.FILE_NAME, "");
+ if (fileName != "") {
+ Path filePath = new Path(fileName);
+ remotePath = remotePath.append(filePath
+ .removeLastSegments(1));
+ }
+ configuration.setAttribute(
+ PHPLaunchConfigurationAttribute.REMOTE_PATH,
+ remotePath.toOSString());
+ }
+ }
+ } catch (CoreException e) {
+ log(e);
+ }
}
public void initializeFrom(ILaunchConfiguration configuration) {
- initializeLoadPath(configuration);
+ // initializeLoadPath(configuration);
initializeInterpreterSelection(configuration);
initializeRemoteDebug(configuration);
}
-
- protected void initializeRemoteDebug(ILaunchConfiguration configuration)
- {
- String s[];
- int startIdx =0;
- int idx;
- try{
- fRemoteDebugCheckBox.setSelection(
- configuration.getAttribute(PHPLaunchConfigurationAttribute.REMOTE_DEBUG,DEFAULT_REMOTE_DEBUG));
- } catch(CoreException ce) {
+
+ protected void initializeRemoteDebug(ILaunchConfiguration configuration) {
+ try {
+ fRemoteDebugCheckBox.setSelection(configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.REMOTE_DEBUG,
+ DEFAULT_REMOTE_DEBUG));
+ } catch (CoreException ce) {
fRemoteDebugCheckBox.setSelection(DEFAULT_REMOTE_DEBUG);
}
+ tabFolder.setSelection(fRemoteDebugCheckBox.getSelection() ? 0 : 1);
+ try {
+ fRemoteDebugTranslate.setSelection(configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.REMOTE_DEBUG_TRANSLATE,
+ DEFAULT_REMOTE_DEBUG_TRANSLATE));
+ } catch (CoreException ce) {
+ fRemoteDebugTranslate.setSelection(DEFAULT_REMOTE_DEBUG_TRANSLATE);
+ }
+ try {
+ fOpenDBGSessionInBrowserCheckBox
+ .setSelection(configuration
+ .getAttribute(
+ PHPLaunchConfigurationAttribute.OPEN_DBGSESSION_IN_BROWSER,
+ DEFAULT_OPEN_DBGSESSION_IN_BROWSER));
+ } catch (CoreException ce) {
+ 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,""));
- } catch(CoreException ce) {
+
+ try {
+ fRemoteSourcePath.setText(configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.REMOTE_PATH, ""));
+ } catch (CoreException ce) {
fRemoteSourcePath.setText("");
}
-
+
updatePathMapFromConfig(configuration);
-
+
+ try {
+ originalFileName = configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.FILE_NAME, "");
+ makeupTargetFile();
+ } catch (CoreException ce) {
+ originalFileName = "";
+ }
+
}
-
+
private void updatePathMapFromConfig(ILaunchConfiguration config) {
Map envVars = null;
try {
if (config != null) {
- envVars = config.getAttribute(PHPLaunchConfigurationAttribute.FILE_MAP, (Map)null);
+ envVars = config.getAttribute(
+ PHPLaunchConfigurationAttribute.FILE_MAP, (Map) null);
}
updatePathMapTable(envVars, this.fRemoteDebugPathMapTable);
setPathMapButtonsEnableState();
@@ -483,82 +680,126 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
String key = (String) iterator.next();
String value = (String) map.get(key);
TableItem tableItem = new TableItem(tableWidget, SWT.NONE);
- tableItem.setText(new String[] {key, value});
+ tableItem.setText(new String[] { key, value });
}
}
- protected void initializeLoadPath(ILaunchConfiguration configuration) {
- boolean useDefaultLoadPath = true;
- try {
- useDefaultLoadPath = configuration.getAttribute(PHPLaunchConfigurationAttribute.USE_DEFAULT_LOAD_PATH, true);
- setUseLoadPathDefaults(useDefaultLoadPath);
- if (useDefaultLoadPath) {
- String projectName = configuration.getAttribute(PHPLaunchConfigurationAttribute.PROJECT_NAME, "");
- if (projectName != "") {
- PHPProject project = PHPCore.getPHPProject(projectName);
- if (project != null) {
- List loadPathEntries = project.getLoadPathEntries();
- loadPathListViewer.setInput(loadPathEntries);
- }
- }
- }
- } catch (CoreException e) {
- log(e);
- }
- }
+ // protected void initializeLoadPath(ILaunchConfiguration configuration) {
+ // boolean useDefaultLoadPath = true;
+ // try {
+ // useDefaultLoadPath =
+ // configuration.getAttribute(PHPLaunchConfigurationAttribute.USE_DEFAULT_LOAD_PATH,
+ // true);
+ // setUseLoadPathDefaults(useDefaultLoadPath);
+ // if (useDefaultLoadPath) {
+ // String projectName =
+ // configuration.getAttribute(PHPLaunchConfigurationAttribute.PROJECT_NAME,
+ // "");
+ // if (projectName != "") {
+ // IProject aProject =
+ // PHPeclipsePlugin.getWorkspace().getRoot().getProject(projectName);
+ // if ((aProject != null) && JavaCore.isPHPProject(aProject)) {
+ // JavaProject thePHPProject = new JavaProject();
+ // thePHPProject.setProject(aProject);
+ // List loadPathEntries = thePHPProject.getLoadPathEntries();
+ // loadPathListViewer.setInput(loadPathEntries);
+ // }
+ // }
+ // }
+ // } catch (CoreException e) {
+ // log(e);
+ // }
+ // }
protected void setUseLoadPathDefaults(boolean useDefaults) {
loadPathListViewer.getList().setEnabled(!useDefaults);
- loadPathDefaultButton.setSelection(useDefaults);
+ // loadPathDefaultButton.setSelection(useDefaults);
}
- protected void initializeInterpreterSelection(ILaunchConfiguration configuration) {
+ protected void initializeInterpreterSelection(
+ ILaunchConfiguration configuration) {
String interpreterName = null;
try {
- interpreterName = configuration.getAttribute(PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
+ interpreterName = configuration.getAttribute(
+ PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
} 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) {
installedInterpretersWorkingCopy = new ArrayList();
- installedInterpretersWorkingCopy.addAll(PHPRuntime.getDefault().getInstalledInterpreters());
-
- String[] interpreterNames = new String[installedInterpretersWorkingCopy.size()];
- for (int interpreterIndex = 0; interpreterIndex < installedInterpretersWorkingCopy.size(); interpreterIndex++) {
- PHPInterpreter interpreter = (PHPInterpreter) installedInterpretersWorkingCopy.get(interpreterIndex);
- interpreterNames[interpreterIndex] = interpreter.getName();
+ installedInterpretersWorkingCopy.addAll(PHPRuntime.getDefault()
+ .getInstalledInterpreters());
+
+ String[] interpreterNames = new String[installedInterpretersWorkingCopy
+ .size()];
+ for (int interpreterIndex = 0; interpreterIndex < installedInterpretersWorkingCopy
+ .size(); interpreterIndex++) {
+ PHPInterpreter interpreter = (PHPInterpreter) installedInterpretersWorkingCopy
+ .get(interpreterIndex);
+ interpreterNames[interpreterIndex] = interpreter
+ .getInstallLocation().toString();
}
interpreterCombo.setItems(interpreterNames);
- PHPInterpreter selectedInterpreter = PHPRuntime.getDefault().getSelectedInterpreter();
+ PHPInterpreter selectedInterpreter = PHPRuntime.getDefault()
+ .getSelectedInterpreter();
if (selectedInterpreter != null)
- interpreterCombo.select(interpreterCombo.indexOf(selectedInterpreter.getName()));
+ interpreterCombo.select(interpreterCombo
+ .indexOf(selectedInterpreter.getInstallLocation()
+ .toString()));
}
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
int selectionIndex = interpreterCombo.getSelectionIndex();
if (selectionIndex >= 0)
- configuration.setAttribute(PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, interpreterCombo.getItem(selectionIndex));
-
- configuration.setAttribute(PHPLaunchConfigurationAttribute.USE_DEFAULT_LOAD_PATH, loadPathDefaultButton.getSelection());
-
- if (!loadPathDefaultButton.getSelection()) {
- List loadPathEntries = (List) loadPathListViewer.getInput();
- List loadPathStrings = new ArrayList();
- for (Iterator iterator = loadPathEntries.iterator(); iterator.hasNext();) {
- LoadPathEntry entry = (LoadPathEntry) iterator.next();
- loadPathStrings.add(entry.getPath().toString());
- }
- configuration.setAttribute(PHPLaunchConfigurationAttribute.CUSTOM_LOAD_PATH, loadPathStrings);
- }
-
- configuration.setAttribute(PHPLaunchConfigurationAttribute.REMOTE_DEBUG, fRemoteDebugCheckBox.getSelection());
- configuration.setAttribute(PHPLaunchConfigurationAttribute.FILE_MAP, getMapFromPathMapTable());
- configuration.setAttribute(PHPLaunchConfigurationAttribute.REMOTE_PATH, fRemoteSourcePath.getText());
+ configuration.setAttribute(
+ PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER,
+ interpreterCombo.getItem(selectionIndex));
+
+ // configuration.setAttribute(PHPLaunchConfigurationAttribute.USE_DEFAULT_LOAD_PATH,
+ // loadPathDefaultButton.getSelection());
+
+ // if (!loadPathDefaultButton.getSelection()) {
+ // List loadPathEntries = (List) loadPathListViewer.getInput();
+ // List loadPathStrings = new ArrayList();
+ // for (Iterator iterator = loadPathEntries.iterator();
+ // iterator.hasNext();) {
+ // LoadPathEntry entry = (LoadPathEntry) iterator.next();
+ // loadPathStrings.add(entry.getPath().toString());
+ // }
+ // configuration.setAttribute(PHPLaunchConfigurationAttribute.CUSTOM_LOAD_PATH,
+ // loadPathStrings);
+ // }
+
+ configuration.setAttribute(
+ PHPLaunchConfigurationAttribute.REMOTE_DEBUG,
+ fRemoteDebugCheckBox.getSelection());
+ configuration.setAttribute(
+ PHPLaunchConfigurationAttribute.REMOTE_DEBUG_TRANSLATE,
+ fRemoteDebugTranslate.getSelection());
+ configuration.setAttribute(PHPLaunchConfigurationAttribute.FILE_MAP,
+ getMapFromPathMapTable());
+ configuration.setAttribute(PHPLaunchConfigurationAttribute.REMOTE_PATH,
+ fRemoteSourcePath.getText());
+ configuration.setAttribute(
+ PHPLaunchConfigurationAttribute.OPEN_DBGSESSION_IN_BROWSER,
+ fOpenDBGSessionInBrowserCheckBox.getSelection());
+ configuration
+ .setAttribute(
+ PHPLaunchConfigurationAttribute.OPEN_DBGSESSION_IN_EXTERNAL_BROWSER,
+ fOpenDBGSessionInExternalBrowserCheckBox.getSelection());
}
protected Composite createPageRoot(Composite parent) {
@@ -571,7 +812,7 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
return composite;
}
-
+
private Map getMapFromPathMapTable() {
TableItem[] items = fRemoteDebugPathMapTable.getItems();
if (items.length == 0) {
@@ -583,29 +824,35 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
String key = item.getText(0);
String value = item.getText(1);
map.put(key, value);
- }
+ }
return map;
}
public String getName() {
- return PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPEnvironment.name");
+ return PHPDebugUiMessages
+ .getString("LaunchConfigurationTab.PHPEnvironment.name");
}
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);
}
-
+
setErrorMessage(null);
return true;
}
-
+
protected void log(Throwable t) {
PHPDebugUiPlugin.log(t);
}
@@ -614,4 +861,63 @@ public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
return PHPUiImages.get(PHPUiImages.IMG_CTOOLS_PHP);
}
+ private void makeupTargetFile() {
+ if (!fRemoteDebugCheckBox.getSelection() || originalFileName.equals("")) {
+ targetFile.setText("");
+ return;
+ }
+
+ // see net.sourceforge.phpdt.internal.debug.core.PHPDBGProxy.MapPath(PHPLineBreakpoint)
+
+ IPath remoteSourcePath = new Path(fRemoteSourcePath.getText());
+ IPath filename = new Path(originalFileName);
+ filename = remoteSourcePath.append(filename);
+ String path = filename.toOSString();
+ Map pathmap = getMapFromPathMapTable();
+
+ if (pathmap != null) {
+ Iterator it = pathmap.keySet().iterator();
+ while (it.hasNext()) {
+ String k = (String) it.next();
+ if (path.startsWith(k)) {
+ path = pathmap.get(k) + path.substring(k.length());
+ break;
+ }
+ }
+ }
+
+ if (remoteSourcePath.isEmpty()) {
+ if (pathmap != null) {
+ Iterator it = pathmap.keySet().iterator();
+ while (it.hasNext()) {
+ String local = (String) it.next();
+ IPath remotePath = new Path((String) pathmap.get(local));
+ IPath localPath = new Path(local);
+ if (localPath.isPrefixOf(filename)) {
+ IPath newpath = filename.removeFirstSegments(localPath
+ .matchingFirstSegments(filename));
+ newpath = remotePath.append(newpath);
+ path = newpath.toString();
+ if (path.substring(0, 1).equals("/")) {
+ path = path.replace('\\', '/');
+ } else {
+ path = path.replace('/', '\\');
+ }
+ break;
+ }
+ }
+ }
+ } else {
+ if (fRemoteDebugTranslate.getSelection()) {
+ if (remoteSourcePath.toString().substring(0, 1).equals("/")) {
+ path = path.replace('\\', '/');
+ } else {
+ path = path.replace('/', '\\');
+ }
+ }
+ }
+
+ targetFile.setText(path);
+ }
+
}
\ No newline at end of file