blob: 6f3aeb58827f96fd47504bd1174710a24aa1ef36 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2019 Mia-Software and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Nicolas Bros (Mia-Software) - initial API and implementation
*******************************************************************************/
package org.eclipse.modisco.infra.browser.opener;
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.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.modisco.facet.util.emf.core.IEObjectBrowserOpener;
import org.eclipse.modisco.facet.util.emf.core.IEPackageBrowserOpener;
import org.eclipse.modisco.facet.util.emf.core.IResourceBrowserOpener;
import org.eclipse.modisco.infra.browser.MoDiscoBrowserPlugin;
import org.eclipse.modisco.infra.browser.editors.BrowserUtils;
import org.eclipse.modisco.infra.browser.editors.EcoreBrowser;
import org.eclipse.modisco.infra.common.core.logging.MoDiscoLogger;
import org.eclipse.modisco.infra.common.ui.internal.editorInputs.ResourceEditorInput;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
public class BrowserOpener implements IResourceBrowserOpener, IEPackageBrowserOpener,
IEObjectBrowserOpener {
public BrowserOpener() {
//
}
public void openResource(final Resource resource) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
try {
IWorkbenchPage activePage = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IDE.openEditor(activePage, new ResourceEditorInput(resource),
EcoreBrowser.EDITOR_ID, true);
} catch (Exception e) {
MoDiscoLogger.logError(e, MoDiscoBrowserPlugin.getPlugin());
}
}
});
}
public void openEObject(final EObject eObject) {
BrowserUtils.openEObjectInBrowser(eObject, true);
}
public void openEPackage(final EPackage ePackage) {
try {
final IEditorInput input = new URIEditorInput(URI.createURI(ePackage.getNsURI()));
IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
input, EcoreBrowser.EDITOR_ID, true);
} catch (final Exception e) {
MoDiscoBrowserPlugin.logException(e);
}
}
public String getBrowserName() {
return EcoreBrowser.HUMAN_READABLE_NAME;
}
}