Package es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator

Source Code of es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorLinkHelper

package es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator;

import org.eclipse.core.resources.IFile;
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.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;

/**
* @generated
*/
public class JadexAgentsNavigatorLinkHelper implements ILinkHelper {

  /**
   * @generated
   */
  private static IEditorInput getEditorInput(Diagram diagram) {
    Resource diagramResource = diagram.eResource();
    for (EObject nextEObject : diagramResource.getContents()) {
      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);
    IEditorInput editorInput = new URIEditorInput(uri, editorName);
    return editorInput;
  }

  /**
   * @generated
   */
  public IStructuredSelection findSelection(IEditorInput anInput) {
    IDiagramDocument document = es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.part.JadexAgentsDiagramEditorPlugin
        .getInstance().getDocumentProvider()
        .getDiagramDocument(anInput);
    if (document == null) {
      return StructuredSelection.EMPTY;
    }
    Diagram diagram = document.getDiagram();
    if (diagram == null || diagram.eResource() == null) {
      return StructuredSelection.EMPTY;
    }
    IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
    if (file != null) {
      es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorItem item = new es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorItem(
          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 es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsAbstractNavigatorItem) {
      return;
    }

    es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsAbstractNavigatorItem abstractNavigatorItem = (es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsAbstractNavigatorItem) aSelection
        .getFirstElement();
    View navigatorView = null;
    if (abstractNavigatorItem instanceof es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorItem) {
      navigatorView = ((es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorItem) abstractNavigatorItem)
          .getView();
    } else if (abstractNavigatorItem instanceof es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorGroup) {
      es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorGroup navigatorGroup = (es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorGroup) abstractNavigatorItem;
      if (navigatorGroup.getParent() instanceof es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorItem) {
        navigatorView = ((es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorItem) 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);
      }
    }
  }

}
TOP

Related Classes of es.upm.dit.gsi.eclipse.jadex.diagram.eclipseJadex.diagram.navigator.JadexAgentsNavigatorLinkHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.