/******************************************************************************* * Copyright (c) 2007, 2013 Association for Decentralized Information Management * in Industry THTH ry. * 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: * VTT Technical Research Centre of Finland - initial API and implementation * Semantum Oy - issue #4384 *******************************************************************************/ package org.simantics.ui.workbench; import java.util.function.Supplier; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.action.IStatusLineManager; import org.eclipse.ui.IActionBars; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.common.request.ParametrizedRead; import org.simantics.db.event.ChangeListener; import org.simantics.db.management.ISessionContext; import org.simantics.ui.SimanticsUI; /** * ResourceEditorPart is a base implementation for editors that support * {@link ResourceEditorInput} style inputs for working on top of the Simantics * graph database. * *
* If you want your ResourceEditorPart implementation to receive notifications * for all graph change events through the {@link ChangeListener} interface, * just implement it and it will be automatically invoked by this base * implementation. *
* * @author Tuukka Lehtonen */ public abstract class ResourceEditorPart extends EditorPart implements IResourceEditorPart { protected boolean disposed = false; protected ResourceEditorSupport support; /** * Override to define your own input resource editor input validator that * the view uses by default in {@link #init(IEditorSite, IEditorInput)}. * * @return */ protected ParametrizedReadnull
to remove message
*/
public void setStatusMessage(String message) {
getStatusLineManager().setMessage(message);
}
/**
* @param message null
to remove message
*/
public void setStatusErrorMessage(String message) {
getStatusLineManager().setErrorMessage(message);
}
protected Resource getInputResource() {
return getResourceInput().getResource();
}
protected String getInputName() {
return getEditorInput().getName();
}
protected String getTitleText() {
return getInputName();
}
protected String getTitleTooltip() {
return getInputName();
}
protected void updateTitle() {
setPartName(getTitleText());
setTitleToolTip(getTitleTooltip());
}
/**
* A utility method for easier invocation of Runnables asynchronously in the
* SWT UI thread.
*
* @param run
*/
protected void asyncExec(Runnable run) {
getSite().getShell().getDisplay().asyncExec(run);
}
@SuppressWarnings("unchecked")
@Override
public