From 4b6a04fac1ca5a4a9fbb98b44f7c45cfb79f1135 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Wed, 26 Aug 2015 13:49:06 -0400 Subject: [PATCH] launchbar: resurrect gear on target selector it will open Properties dialog on connection. Contributors can adapt connection to their class to show various property pages and allow to edit "targets" Change-Id: I0fe486b069450bbf8379930ffdeaabd9c8dbbd6e --- .../ui/internal/controls/TargetSelector.java | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/controls/TargetSelector.java b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/controls/TargetSelector.java index 46145371e8f..f8a72c3684c 100644 --- a/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/controls/TargetSelector.java +++ b/bundles/org.eclipse.launchbar.ui/src/org/eclipse/launchbar/ui/internal/controls/TargetSelector.java @@ -20,8 +20,13 @@ import org.eclipse.core.commands.NotEnabledException; import org.eclipse.core.commands.NotHandledException; import org.eclipse.core.commands.common.NotDefinedException; import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.window.SameShellProvider; import org.eclipse.launchbar.core.internal.LaunchBarManager; import org.eclipse.launchbar.ui.internal.Activator; import org.eclipse.launchbar.ui.internal.LaunchBarUIManager; @@ -45,6 +50,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.dialogs.PropertyDialogAction; public class TargetSelector extends CSelector { @@ -94,13 +100,37 @@ public class TargetSelector extends CSelector { @Override public boolean isEditable(Object element) { - // TODO - return false; + + return true; } + private ISelectionProvider getSelectionProvider(){ + return new ISelectionProvider() { + @Override + public void setSelection(ISelection selection) { + // ignore + } + + @Override + public void removeSelectionChangedListener(ISelectionChangedListener listener) { + // ignore + } + + @Override + public ISelection getSelection() { + return new StructuredSelection(TargetSelector.this.getSelection()); + } + + @Override + public void addSelectionChangedListener(ISelectionChangedListener listener) { + // ignore + } + }; + } @Override public void handleEdit(Object element) { - // TODO + // opens property dialog on a selected target + new PropertyDialogAction(new SameShellProvider(getShell()), getSelectionProvider()).run(); } @Override @@ -138,6 +168,7 @@ public class TargetSelector extends CSelector { createLabel.setBackground(backgroundColor); MouseListener mouseListener = new MouseAdapter() { + @Override public void mouseUp(org.eclipse.swt.events.MouseEvent event) { try { ICommandService commandService = PlatformUI.getWorkbench().getService(ICommandService.class);