Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Tanasenko2014-09-14 22:16:33 +0000
committerAnton Tanasenko2014-09-15 14:54:06 +0000
commitca79bc814c690064f8aea5fa2eb46c4cf1240be9 (patch)
tree63011e7fda18e8f87381c383785bf804d8ed4180 /org.eclipse.m2e.editor/src/org/eclipse
parent3a316afc8372207fc21476296844fdc37542d5c1 (diff)
downloadm2e-core-ca79bc814c690064f8aea5fa2eb46c4cf1240be9.tar.gz
m2e-core-ca79bc814c690064f8aea5fa2eb46c4cf1240be9.tar.xz
m2e-core-ca79bc814c690064f8aea5fa2eb46c4cf1240be9.zip
441523 Tuned pom editor's TableViewerEditor behavior
Change-Id: I2d44243a77330f0f3c1c09d878ecd6d3583b9cfe Signed-off-by: Anton Tanasenko <atg.sleepless@gmail.com>
Diffstat (limited to 'org.eclipse.m2e.editor/src/org/eclipse')
-rw-r--r--org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/ListEditorComposite.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/ListEditorComposite.java b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/ListEditorComposite.java
index b6e309ce..ab08833a 100644
--- a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/ListEditorComposite.java
+++ b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/ListEditorComposite.java
@@ -18,6 +18,9 @@ import java.util.Map;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.ColumnViewerEditor;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ILabelProvider;
@@ -28,6 +31,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.TableViewerEditor;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlAdapter;
@@ -223,6 +227,27 @@ public class ListEditorComposite<T> extends Composite {
}
public void setCellModifier(ICellModifier cellModifier) {
+
+ // trigger editing only on second click to prevent losing viewer selection on defocus
+ ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {
+ Object prevSelection;
+
+ protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
+
+ IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+ if(selection.size() != 1)
+ return false;
+
+ Object selElement = selection.getFirstElement();
+ if(prevSelection != (prevSelection = selElement))
+ return false;
+
+ return super.isEditorActivationEvent(event);
+ }
+ };
+
+ TableViewerEditor.create(viewer, activationSupport, ColumnViewerEditor.DEFAULT);
+
viewer.setColumnProperties(new String[] {"?"}); //$NON-NLS-1$
TextCellEditor editor = new TextCellEditor(viewer.getTable());

Back to the top