blob: 11d9b84269989656bcbd1cb263b5eb19e8bf8058 [file] [log] [blame]
/**
* Copyright (c) 2015 Soft-Maint.
* 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:
* Thomas Cicognani (Soft-Maint) - Bug 442800 - API to open new MoDisco Browser
*/
package org.eclipse.modisco.infra.browser.editor.ui.internal.editor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.facet.util.ui.internal.exported.handler.HandlerUtils;
import org.eclipse.modisco.infra.browser.editor.ui.ITreeEditor;
import org.eclipse.modisco.infra.browser.editor.ui.ITreeEditorOpener;
import org.eclipse.modisco.infra.browser.editor.ui.exceptions.TreeEditorOpenerException;
import org.eclipse.modisco.infra.browser.editor.ui.internal.opener.ResourceEditorInput;
import org.eclipse.modisco.infra.browser.editor.ui.internal.opener.ResourceSetEditorInput;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
public class TreeEditorOpener implements ITreeEditorOpener {
private static TreeEditor openEditor(final IEditorInput editorInput)
throws TreeEditorOpenerException {
final TreeEditor[] editor = new TreeEditor[1];
final PartInitException[] exception = new PartInitException[1];
Display.getDefault().syncExec(new Runnable() {
public void run() {
final IWorkbenchPage activePage = HandlerUtils.getActivePage();
if (activePage != null) {
try {
editor[0] = (TreeEditor) activePage.openEditor(
editorInput, TreeEditor.getEditorId());
} catch (PartInitException e) {
exception[0] = e;
}
}
}
});
if (exception[0] != null) {
throw new TreeEditorOpenerException(exception[0]);
}
return editor[0];
}
public ITreeEditor openWithEObject(final EObject eObject)
throws TreeEditorOpenerException {
final Resource resource = eObject.eResource();
return openWithResource(resource);
}
public ITreeEditor openWithResource(final Resource resource)
throws TreeEditorOpenerException {
final ResourceEditorInput editorInput = new ResourceEditorInput(
resource);
return openEditor(editorInput);
}
public ITreeEditor openWithResourceSet(final ResourceSet resourceSet)
throws TreeEditorOpenerException {
final ResourceSetEditorInput editorInput = new ResourceSetEditorInput(
resourceSet);
return openEditor(editorInput);
}
}