Bug 552176 - [Tools] Application model editor: Jump to list entries
add IOpenListener for E4PickList, CompositePartEditor list
Change-Id: Ibaf311eb001c81ad00a93dd3c3cf6b829e362be7
Signed-off-by: Benedikt Kuntz <benedikt.kuntz@airbus.com>
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4PickList.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4PickList.java
index f9200e1..cdf5173 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4PickList.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4PickList.java
@@ -113,6 +113,17 @@
final ObservableListContentProvider<?> cp = new ObservableListContentProvider<>();
viewer.setContentProvider(cp);
+ viewer.addOpenListener(event -> {
+ if (event.getSelection() instanceof IStructuredSelection) {
+ IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+ ModelEditor editor = componentEditor.getEditor();
+ if (selection.getFirstElement() instanceof EObject && editor != null) {
+ EObject selected = (EObject) selection.getFirstElement();
+ editor.gotoEObject(ModelEditor.TAB_FORM, selected);
+ }
+ }
+ });
+
// enable tabbing and keyboard activation
this.focusCellMgr = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer),
new CellNavigationStrategy());
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java
index 11c8edb..02a03f2 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java
@@ -19,6 +19,7 @@
import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider;
import org.eclipse.e4.tools.emf.ui.internal.common.ComponentLabelProvider;
import org.eclipse.e4.tools.emf.ui.internal.common.FeatureClassLabelProvider;
+import org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.TextPasteHandler;
import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.PartIconDialogEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer;
@@ -356,6 +357,16 @@
viewer.setInput(E4Properties.<MPartSashContainerElement>children().observeDetail(getMaster()));
+ viewer.addOpenListener(event -> {
+ if (event.getSelection() instanceof IStructuredSelection) {
+ IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+ if (selection.getFirstElement() instanceof EObject && getEditor() != null) {
+ EObject selected = (EObject) selection.getFirstElement();
+ getEditor().gotoEObject(ModelEditor.TAB_FORM, selected);
+ }
+ }
+ });
+
new Label(parent, SWT.NONE);
final Composite buttonCompBot = new Composite(parent, SWT.NONE);