Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2014-03-13 13:15:33 +0000
committerVincent Lorenzo2014-03-13 13:15:33 +0000
commitba1c10ae16ff293a9bac64c40aebc08e31cbeced (patch)
tree01fd833790a6629e3c0053f0836d03480279cffd
parente0a3a9f3543e492393111d849345d325c3bbe07d (diff)
downloadorg.eclipse.papyrus-ba1c10ae16ff293a9bac64c40aebc08e31cbeced.tar.gz
org.eclipse.papyrus-ba1c10ae16ff293a9bac64c40aebc08e31cbeced.tar.xz
org.eclipse.papyrus-ba1c10ae16ff293a9bac64c40aebc08e31cbeced.zip
429968: [Table 2] Cell editors that open a dialog do not properly yield focus to the table upon close.
-rw-r--r--extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/AbstractUMLMultiValueCellEditor.java11
-rw-r--r--extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/SingleReferenceValueCellEditor.java11
2 files changed, 20 insertions, 2 deletions
diff --git a/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/AbstractUMLMultiValueCellEditor.java b/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/AbstractUMLMultiValueCellEditor.java
index 663d4a014ee..9d8447dd032 100644
--- a/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/AbstractUMLMultiValueCellEditor.java
+++ b/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/AbstractUMLMultiValueCellEditor.java
@@ -17,10 +17,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.edit.gui.AbstractDialogCellEditor;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer.MoveDirectionEnum;
import org.eclipse.papyrus.infra.nattable.manager.table.ITableAxisElementProvider;
@@ -80,7 +82,14 @@ public abstract class AbstractUMLMultiValueCellEditor extends AbstractDialogCell
*/
@Override
public int open() {
- return ((MultipleValueSelectorDialog)this.dialog).open();
+ int result = ((MultipleValueSelectorDialog)this.dialog).open();
+ if (manager instanceof IAdaptable) {
+ NatTable nattable = (NatTable) ((IAdaptable) manager).getAdapter(NatTable.class);
+ if (nattable != null && !nattable.isDisposed()) {
+ nattable.forceFocus();
+ }
+ }
+ return result;
}
/**
diff --git a/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/SingleReferenceValueCellEditor.java b/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/SingleReferenceValueCellEditor.java
index db3bf6886bf..d63db4ed996 100644
--- a/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/SingleReferenceValueCellEditor.java
+++ b/extraplugins/table/org.eclipse.papyrus.uml.nattable/src/org/eclipse/papyrus/uml/nattable/editor/SingleReferenceValueCellEditor.java
@@ -16,10 +16,12 @@ package org.eclipse.papyrus.uml.nattable.editor;
import java.util.Collections;
import java.util.List;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.edit.gui.AbstractDialogCellEditor;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer.MoveDirectionEnum;
import org.eclipse.papyrus.infra.nattable.manager.table.INattableModelManager;
@@ -81,7 +83,14 @@ public class SingleReferenceValueCellEditor extends AbstractDialogCellEditor {
*/
@Override
public int open() {
- return ((TreeSelectorDialog)this.dialog).open();
+ int result = ((TreeSelectorDialog)this.dialog).open();
+ if (manager instanceof IAdaptable) {
+ NatTable nattable = (NatTable) ((IAdaptable) manager).getAdapter(NatTable.class);
+ if (nattable != null && !nattable.isDisposed()) {
+ nattable.forceFocus();
+ }
+ }
+ return result;
}
/**

Back to the top