diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java | 298 |
1 files changed, 149 insertions, 149 deletions
diff --git a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java index a6b3e0d878..8d0967d6c9 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java +++ b/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/src/org/eclipse/emf/cdo/dawn/examples/acore/diagram/navigator/AcoreNavigatorLinkHelper.java @@ -1,149 +1,149 @@ -/* - * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Martin Fluegge - initial API and implementation - * - */ -package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator; - -import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin; - -import org.eclipse.emf.common.ui.URIEditorInput; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; - -import org.eclipse.core.resources.IFile; -import org.eclipse.gef.EditPart; -import org.eclipse.gef.GraphicalViewer; -import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor; -import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument; -import org.eclipse.gmf.runtime.notation.Diagram; -import org.eclipse.gmf.runtime.notation.View; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.navigator.ILinkHelper; -import org.eclipse.ui.part.FileEditorInput; - -import java.util.Iterator; - -/** - * @generated - */ -public class AcoreNavigatorLinkHelper implements ILinkHelper -{ - - /** - * @generated - */ - private static IEditorInput getEditorInput(Diagram diagram) - { - Resource diagramResource = diagram.eResource(); - for (Iterator it = diagramResource.getContents().iterator(); it.hasNext();) - { - EObject nextEObject = (EObject)it.next(); - if (nextEObject == diagram) - { - return new FileEditorInput(WorkspaceSynchronizer.getFile(diagramResource)); - } - if (nextEObject instanceof Diagram) - { - break; - } - } - URI uri = EcoreUtil.getURI(diagram); - String editorName = uri.lastSegment() + "#" + diagram.eResource().getContents().indexOf(diagram); //$NON-NLS-1$ - IEditorInput editorInput = new URIEditorInput(uri, editorName); - return editorInput; - } - - /** - * @generated - */ - public IStructuredSelection findSelection(IEditorInput anInput) - { - IDiagramDocument document = AcoreDiagramEditorPlugin.getInstance().getDocumentProvider() - .getDiagramDocument(anInput); - if (document == null) - { - return StructuredSelection.EMPTY; - } - Diagram diagram = document.getDiagram(); - IFile file = WorkspaceSynchronizer.getFile(diagram.eResource()); - if (file != null) - { - AcoreNavigatorItem item = new AcoreNavigatorItem(diagram, file, false); - return new StructuredSelection(item); - } - return StructuredSelection.EMPTY; - } - - /** - * @generated - */ - public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) - { - if (aSelection == null || aSelection.isEmpty()) - { - return; - } - if (false == aSelection.getFirstElement() instanceof AcoreAbstractNavigatorItem) - { - return; - } - - AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)aSelection.getFirstElement(); - View navigatorView = null; - if (abstractNavigatorItem instanceof AcoreNavigatorItem) - { - navigatorView = ((AcoreNavigatorItem)abstractNavigatorItem).getView(); - } - else if (abstractNavigatorItem instanceof AcoreNavigatorGroup) - { - AcoreNavigatorGroup navigatorGroup = (AcoreNavigatorGroup)abstractNavigatorItem; - if (navigatorGroup.getParent() instanceof AcoreNavigatorItem) - { - navigatorView = ((AcoreNavigatorItem)navigatorGroup.getParent()).getView(); - } - } - if (navigatorView == null) - { - return; - } - IEditorInput editorInput = getEditorInput(navigatorView.getDiagram()); - IEditorPart editor = aPage.findEditor(editorInput); - if (editor == null) - { - return; - } - aPage.bringToTop(editor); - if (editor instanceof DiagramEditor) - { - DiagramEditor diagramEditor = (DiagramEditor)editor; - ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet(); - EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true); - if (selectedView == null) - { - return; - } - GraphicalViewer graphicalViewer = (GraphicalViewer)diagramEditor.getAdapter(GraphicalViewer.class); - EditPart selectedEditPart = (EditPart)graphicalViewer.getEditPartRegistry().get(selectedView); - if (selectedEditPart != null) - { - graphicalViewer.select(selectedEditPart); - } - } - } - -} +/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Fluegge - initial API and implementation
+ *
+ */
+package org.eclipse.emf.cdo.dawn.examples.acore.diagram.navigator;
+
+import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreDiagramEditorPlugin;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.navigator.ILinkHelper;
+import org.eclipse.ui.part.FileEditorInput;
+
+import java.util.Iterator;
+
+/**
+ * @generated
+ */
+public class AcoreNavigatorLinkHelper implements ILinkHelper
+{
+
+ /**
+ * @generated
+ */
+ private static IEditorInput getEditorInput(Diagram diagram)
+ {
+ Resource diagramResource = diagram.eResource();
+ for (Iterator it = diagramResource.getContents().iterator(); it.hasNext();)
+ {
+ EObject nextEObject = (EObject)it.next();
+ if (nextEObject == diagram)
+ {
+ return new FileEditorInput(WorkspaceSynchronizer.getFile(diagramResource));
+ }
+ if (nextEObject instanceof Diagram)
+ {
+ break;
+ }
+ }
+ URI uri = EcoreUtil.getURI(diagram);
+ String editorName = uri.lastSegment() + "#" + diagram.eResource().getContents().indexOf(diagram); //$NON-NLS-1$
+ IEditorInput editorInput = new URIEditorInput(uri, editorName);
+ return editorInput;
+ }
+
+ /**
+ * @generated
+ */
+ public IStructuredSelection findSelection(IEditorInput anInput)
+ {
+ IDiagramDocument document = AcoreDiagramEditorPlugin.getInstance().getDocumentProvider()
+ .getDiagramDocument(anInput);
+ if (document == null)
+ {
+ return StructuredSelection.EMPTY;
+ }
+ Diagram diagram = document.getDiagram();
+ IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
+ if (file != null)
+ {
+ AcoreNavigatorItem item = new AcoreNavigatorItem(diagram, file, false);
+ return new StructuredSelection(item);
+ }
+ return StructuredSelection.EMPTY;
+ }
+
+ /**
+ * @generated
+ */
+ public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection)
+ {
+ if (aSelection == null || aSelection.isEmpty())
+ {
+ return;
+ }
+ if (false == aSelection.getFirstElement() instanceof AcoreAbstractNavigatorItem)
+ {
+ return;
+ }
+
+ AcoreAbstractNavigatorItem abstractNavigatorItem = (AcoreAbstractNavigatorItem)aSelection.getFirstElement();
+ View navigatorView = null;
+ if (abstractNavigatorItem instanceof AcoreNavigatorItem)
+ {
+ navigatorView = ((AcoreNavigatorItem)abstractNavigatorItem).getView();
+ }
+ else if (abstractNavigatorItem instanceof AcoreNavigatorGroup)
+ {
+ AcoreNavigatorGroup navigatorGroup = (AcoreNavigatorGroup)abstractNavigatorItem;
+ if (navigatorGroup.getParent() instanceof AcoreNavigatorItem)
+ {
+ navigatorView = ((AcoreNavigatorItem)navigatorGroup.getParent()).getView();
+ }
+ }
+ if (navigatorView == null)
+ {
+ return;
+ }
+ IEditorInput editorInput = getEditorInput(navigatorView.getDiagram());
+ IEditorPart editor = aPage.findEditor(editorInput);
+ if (editor == null)
+ {
+ return;
+ }
+ aPage.bringToTop(editor);
+ if (editor instanceof DiagramEditor)
+ {
+ DiagramEditor diagramEditor = (DiagramEditor)editor;
+ ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet();
+ EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true);
+ if (selectedView == null)
+ {
+ return;
+ }
+ GraphicalViewer graphicalViewer = (GraphicalViewer)diagramEditor.getAdapter(GraphicalViewer.class);
+ EditPart selectedEditPart = (EditPart)graphicalViewer.getEditPartRegistry().get(selectedView);
+ if (selectedEditPart != null)
+ {
+ graphicalViewer.select(selectedEditPart);
+ }
+ }
+ }
+
+}
|