|
@@ -0,0 +1,50 @@
|
|
|
+/**
|
|
|
+ * Copyright (c) 2015 committers of YAKINDU 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:
|
|
|
+ * committers of YAKINDU - initial API and implementation
|
|
|
+ *
|
|
|
+*/
|
|
|
+package org.yakindu.sct.ui.editor.editor;
|
|
|
+
|
|
|
+import org.eclipse.core.resources.IFile;
|
|
|
+import org.eclipse.emf.common.util.URI;
|
|
|
+import org.eclipse.emf.ecore.EReference;
|
|
|
+import org.eclipse.ui.IEditorPart;
|
|
|
+import org.eclipse.ui.PartInitException;
|
|
|
+import org.eclipse.ui.PlatformUI;
|
|
|
+import org.eclipse.ui.part.FileEditorInput;
|
|
|
+import org.eclipse.xtext.ui.editor.IURIEditorOpener;
|
|
|
+import org.yakindu.sct.domain.util.URIUtil;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Opens <code>.sct</code> files in corresponding statechart diagramm editor.
|
|
|
+ *
|
|
|
+ * @author thomas kutz - Initial contribution and API
|
|
|
+ *
|
|
|
+ */
|
|
|
+public class SCTFileEditorOpener implements IURIEditorOpener {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IEditorPart open(URI uri, boolean select) {
|
|
|
+ try {
|
|
|
+ IFile fileToOpen = URIUtil.toFile(uri);
|
|
|
+ if (fileToOpen != null) {
|
|
|
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
|
|
|
+ .openEditor(new FileEditorInput(fileToOpen), StatechartDiagramEditor.ID);
|
|
|
+ }
|
|
|
+ } catch (PartInitException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IEditorPart open(URI referenceOwnerURI, EReference reference, int indexInList, boolean select) {
|
|
|
+ return open(referenceOwnerURI, select);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|