From 4f57a1774a9729e3e16c4fe77238af29dc07f252 Mon Sep 17 00:00:00 2001 From: Andrew Obuchowicz Date: Fri, 21 Jun 2019 15:39:27 -0400 Subject: Bug 548520 - Add right-click context-menu for Java environment var tab Patch ready for review. Change-Id: Ie1d939bc0bf50ca58098785bb072de980c56fbb2 Signed-off-by: Andrew Obuchowicz --- .../ui/org/eclipse/debug/ui/EnvironmentTab.java | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/ui') diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/EnvironmentTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/EnvironmentTab.java index 5e6a56568..28c6bf347 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/EnvironmentTab.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/EnvironmentTab.java @@ -88,6 +88,10 @@ import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; @@ -318,6 +322,80 @@ public class EnvironmentTab extends AbstractLaunchConfigurationTab { } }); + // Setup right-click context menu + Menu menuTable = new Menu(table); + table.setMenu(menuTable); + + // Create add environment variable menu item + MenuItem miAdd = new MenuItem(menuTable, SWT.NONE); + miAdd.setText(LaunchConfigurationsMessages.EnvironmentTab_ContextMenu0); + + miAdd.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + handleEnvAddButtonSelected(); + } + }); + + // Create copy environment variable menu item + MenuItem miCopy = new MenuItem(menuTable, SWT.NONE); + miCopy.setText(LaunchConfigurationsMessages.EnvironmentTab_ContextMenu1); + + miCopy.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + handleEnvCopyButtonSelected(); + } + }); + + // Create paste environment variable menu item + MenuItem miPaste = new MenuItem(menuTable, SWT.NONE); + miPaste.setText(LaunchConfigurationsMessages.EnvironmentTab_ContextMenu2); + + miPaste.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + handleEnvPasteButtonSelected(); + } + }); + + // Create remove environment variable menu item + MenuItem miRemove = new MenuItem(menuTable, SWT.NONE); + miRemove.setText(LaunchConfigurationsMessages.EnvironmentTab_ContextMenu3); + miRemove.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + handleEnvRemoveButtonSelected(); + } + }); + + environmentTable.addSelectionChangedListener(new ISelectionChangedListener() { + @Override + public void selectionChanged(SelectionChangedEvent event) { + IStructuredSelection selection = environmentTable.getStructuredSelection(); + if (selection.size() == 1) { + miRemove.setText(LaunchConfigurationsMessages.EnvironmentTab_ContextMenu3); + } else if (selection.size() > 1) { + miRemove.setText(LaunchConfigurationsMessages.EnvironmentTab_ContextMenu4); + } + } + }); + + // Disable certain context menu item's if no table item is selected + table.addListener(SWT.MenuDetect, new Listener() { + @Override + public void handleEvent(Event event) { + if (table.getSelectionCount() <= 0) { + miRemove.setEnabled(false); + miCopy.setEnabled(false); + } else { + miRemove.setEnabled(true); + miCopy.setEnabled(true); + } + } + }); + + // Setup and create Columns ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(environmentTable) { @Override -- cgit v1.2.3