+++ /dev/null
-package net.sourceforge.phpdt.internal.debug.ui.launcher;
-
-import java.io.File;
-import java.util.ArrayList;
-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.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 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.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.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-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;
-
-public class PHPEnvironmentTab extends AbstractLaunchConfigurationTab {
- protected ListViewer loadPathListViewer;
-
- protected java.util.List installedInterpretersWorkingCopy;
-
- protected Combo interpreterCombo;
-
- // protected Button loadPathDefaultButton;
- protected Button fRemoteDebugCheckBox;
-
- protected Button fRemoteDebugTranslate;
-
- protected Button fOpenDBGSessionInBrowserCheckBox;
-
- 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)
- *
- * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
- */
- public void modifyText(ModifyEvent e) {
- updateLaunchConfigurationDialog();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
- */
- public void widgetSelected(SelectionEvent e) {
- Object source = e.getSource();
- if (source == fRemoteDebugPathMapTable) {
- setPathMapButtonsEnableState();
- } else if (source == fPathMapAddButton) {
- handlePathMapAddButtonSelected();
- } else if (source == fPathMapEditButton) {
- handlePathMapEditButtonSelected();
- } else if (source == fPathMapRemoveButton) {
- handlePathMapRemoveButtonSelected();
- } else if (source == fRemoteDebugCheckBox) {
- setRemoteTabEnableState();
- } else if (source == fRemoteDebugTranslate) {
- setRemoteTabEnableState();
- } else {
- updateLaunchConfigurationDialog();
- ;
- }
-
- }
-
- }
-
- 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;
-
- static String[] columnTitles = {
- PHPDebugUiMessages
- .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMapTableTitle.local"),
- PHPDebugUiMessages
- .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.PathMapTableTitle.remote") };
-
- public PHPEnvironmentTab() {
- super();
- }
-
- public void createControl(Composite parent) {
- Composite composite = createPageRoot(parent);
-
- tabFolder = new TabFolder(composite, SWT.NONE);
- GridData gridData = new GridData(GridData.FILL_BOTH);
- tabFolder.setLayoutData(gridData);
-
- // addLoadPathTab(tabFolder);
- addInterpreterTab(tabFolder);
- addRemoteDebugTab(tabFolder);
- }
-
- protected void addRemoteDebugTab(TabFolder tabFolder) {
- Label label;
-
- TabItem remoteDebugTab = new TabItem(tabFolder, SWT.NONE, 0);
- remoteDebugTab
- .setText(PHPDebugUiMessages
- .getString("LaunchConfigurationTab.PHPEnvironment.remoteDebugTab.label"));
-
- Composite comp = new Composite(tabFolder, SWT.NONE);
- 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.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);
-
- label = new Label(comp, SWT.NONE);
- 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.addModifyListener(fListener);
-
- createVerticalSpacer(comp, 1);
-
- Composite pathMapComp = new Composite(comp, SWT.NONE);
- gd = new GridData(GridData.FILL_BOTH);
- pathMapComp.setLayoutData(gd);
- GridLayout parametersLayout = new GridLayout();
- parametersLayout.numColumns = 2;
- parametersLayout.marginHeight = 0;
- parametersLayout.marginWidth = 0;
- pathMapComp.setLayout(parametersLayout);
-
- Label pathMapLabel = new Label(pathMapComp, SWT.NONE);
- 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);
- 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$
- 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);
-
- 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);
- envButtonComp.setLayoutData(gd);
-
- 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$
- fPathMapEditButton.addSelectionListener(fListener);
- // 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();
- setPathMapButtonsEnableState();
- }
-
- void handlePathMapRemoveButtonSelected() {
- int[] selectedIndices = this.fRemoteDebugPathMapTable
- .getSelectionIndices();
- this.fRemoteDebugPathMapTable.remove(selectedIndices);
- setPathMapButtonsEnableState();
- updateLaunchConfigurationDialog();
- }
-
- 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);
- }
-
- /**
- * Set the enabled state of whole tab.
- */
- private void setRemoteTabEnableState() {
- boolean state = fRemoteDebugCheckBox.getSelection();
- fRemoteSourcePath.setEnabled(state);
- fRemoteDebugTranslate.setEnabled(state);
-
- fRemoteDebugPathMapTable.setEnabled(state);
- if (!state) {
- fPathMapEditButton.setEnabled(false);
- fPathMapRemoveButton.setEnabled(false);
- fPathMapAddButton.setEnabled(false);
- fOpenDBGSessionInBrowserCheckBox.setEnabled(false);
- } else {
- setPathMapButtonsEnableState();
- }
-
- updateLaunchConfigurationDialog();
- }
-
- /**
- * 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()) {
- fOpenDBGSessionInBrowserCheckBox.setEnabled(true);
- fRemoteDebugTranslate.setEnabled(true);
- int selectCount = this.fRemoteDebugPathMapTable
- .getSelectionIndices().length;
- if (selectCount < 1) {
- fPathMapEditButton.setEnabled(false);
- fPathMapRemoveButton.setEnabled(false);
- } else {
- fPathMapRemoveButton.setEnabled(true);
- if (selectCount == 1) {
- fPathMapEditButton.setEnabled(true);
- } else {
- fPathMapEditButton.setEnabled(false);
- }
- }
- fPathMapAddButton.setEnabled(true);
- }
- }
-
- /**
- * Show the specified dialog and update the pathMapTable table based on its
- * results.
- *
- * @param updateItem
- * the item to update, or <code>null</code> if adding a new
- * item
- */
- private void openNewPathMapDialog(EditPathMapDialog dialog,
- TableItem updateItem) {
- if (dialog.open() != EditPathMapDialog.OK) {
- return;
- }
- String[] pathPair = dialog.getPathPair();
- TableItem tableItem = updateItem;
- if (tableItem == null) {
- tableItem = getTableItemForName(pathPair[0]);
- if (tableItem == null) {
- tableItem = new TableItem(this.fRemoteDebugPathMapTable,
- SWT.NONE);
- }
- }
- tableItem.setText(pathPair);
- this.fRemoteDebugPathMapTable
- .setSelection(new TableItem[] { tableItem });
- updateLaunchConfigurationDialog();
- }
-
- /**
- * 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();
- for (int i = 0; i < items.length; i++) {
- String name = items[i].getText(0);
- if (name.equals(candidateName)) {
- return items[i];
- }
- }
- 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 SelectionListener getLoadPathSelectionListener() {
- return new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- System.out.println("Loadpath list selection occurred: "
- + e.getSource());
- }
- };
- }
-
- protected SelectionListener getLoadPathDefaultButtonSelectionListener() {
- return new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setUseLoadPathDefaults(((Button) e.getSource()).getSelection());
- }
- };
- }
-
- protected void addInterpreterTab(TabFolder tabFolder) {
- Composite interpreterComposite = new Composite(tabFolder, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- interpreterComposite.setLayout(layout);
- interpreterComposite.setLayoutData(new GridData(
- GridData.FILL_HORIZONTAL));
-
- createVerticalSpacer(interpreterComposite, 2);
-
- interpreterCombo = new Combo(interpreterComposite, SWT.READ_ONLY);
- interpreterCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- initializeInterpreterCombo(interpreterCombo);
- interpreterCombo.addModifyListener(getInterpreterComboModifyListener());
-
- Button interpreterAddButton = new Button(interpreterComposite, SWT.PUSH);
- interpreterAddButton
- .setText(PHPDebugUiMessages
- .getString("LaunchConfigurationTab.PHPEnvironment.interpreterAddButton.label"));
- interpreterAddButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent evt) {
- 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.setControl(interpreterComposite);
- }
-
- protected ModifyListener getInterpreterComboModifyListener() {
- return new ModifyListener() {
- public void modifyText(ModifyEvent evt) {
- updateLaunchConfigurationDialog();
- }
- };
- }
-
- protected void createVerticalSpacer(Composite comp, int colSpan) {
- Label label = new Label(comp, SWT.NONE);
- GridData gd = new GridData();
- gd.horizontalSpan = colSpan;
- label.setLayoutData(gd);
- }
-
- 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.getLocation();
- 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) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- public void initializeFrom(ILaunchConfiguration configuration) {
- // initializeLoadPath(configuration);
- initializeInterpreterSelection(configuration);
- initializeRemoteDebug(configuration);
- }
-
- protected void initializeRemoteDebug(ILaunchConfiguration configuration) {
- try {
- fRemoteDebugCheckBox.setSelection(configuration.getAttribute(
- PHPLaunchConfigurationAttribute.REMOTE_DEBUG,
- DEFAULT_REMOTE_DEBUG));
- } catch (CoreException ce) {
- fRemoteDebugCheckBox.setSelection(DEFAULT_REMOTE_DEBUG);
- }
- 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);
- }
- setRemoteTabEnableState();
- try {
- fRemoteSourcePath.setText(configuration.getAttribute(
- PHPLaunchConfigurationAttribute.REMOTE_PATH, ""));
- } catch (CoreException ce) {
- fRemoteSourcePath.setText("");
- }
-
- updatePathMapFromConfig(configuration);
-
- }
-
- private void updatePathMapFromConfig(ILaunchConfiguration config) {
- Map envVars = null;
- try {
- if (config != null) {
- envVars = config.getAttribute(
- PHPLaunchConfigurationAttribute.FILE_MAP, (Map) null);
- }
- updatePathMapTable(envVars, this.fRemoteDebugPathMapTable);
- setPathMapButtonsEnableState();
- } catch (CoreException ce) {
- log(ce);
- }
- }
-
- private void updatePathMapTable(Map map, Table tableWidget) {
- tableWidget.removeAll();
- if (map == null) {
- return;
- }
- Iterator iterator = map.keySet().iterator();
- while (iterator.hasNext()) {
- String key = (String) iterator.next();
- String value = (String) map.get(key);
- TableItem tableItem = new TableItem(tableWidget, SWT.NONE);
- 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 != "") {
- // 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);
- }
-
- protected void initializeInterpreterSelection(
- ILaunchConfiguration configuration) {
- String interpreterName = null;
- try {
- interpreterName = configuration.getAttribute(
- PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
- } catch (CoreException e) {
- log(e);
- }
- if (interpreterName != null && !interpreterName.equals(""))
- interpreterCombo.select(interpreterCombo.indexOf(interpreterName));
- }
-
- 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
- .getInstallLocation().toString();
- }
- interpreterCombo.setItems(interpreterNames);
-
- PHPInterpreter selectedInterpreter = PHPRuntime.getDefault()
- .getSelectedInterpreter();
- if (selectedInterpreter != null)
- 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.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());
- }
-
- protected Composite createPageRoot(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
- createVerticalSpacer(composite, 2);
- setControl(composite);
-
- return composite;
- }
-
- private Map getMapFromPathMapTable() {
- TableItem[] items = fRemoteDebugPathMapTable.getItems();
- if (items.length == 0) {
- return null;
- }
- Map map = new HashMap(items.length);
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- 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");
- }
-
- 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;
- }
- } catch (CoreException e) {
- log(e);
- }
-
- setErrorMessage(null);
- return true;
- }
-
- protected void log(Throwable t) {
- PHPDebugUiPlugin.log(t);
- }
-
- public Image getImage() {
- return PHPUiImages.get(PHPUiImages.IMG_CTOOLS_PHP);
- }
-
-}
\ No newline at end of file