package org.objectstyle.wolips.eomodeler.editors; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.ui.IEditorInput; import org.objectstyle.wolips.eomodeler.Activator; public class LoadEOModelWorkspaceJob extends WorkspaceJob { private EOModelEditor _editor; private IEditorInput _editorInput; public LoadEOModelWorkspaceJob(EOModelEditor editor, IEditorInput editorInput) { super("Loading EOModel ..."); _editor = editor; _editorInput = editorInput; } @Override public IStatus runInWorkspace(final IProgressMonitor monitor) throws CoreException { IProgressMonitor monitorWrapper = new IProgressMonitor() { public void beginTask(String name, int totalWork) { monitor.beginTask(name, totalWork); } public void done() { monitor.done(); } public void internalWorked(double work) { monitor.internalWorked(work); } public boolean isCanceled() { return monitor.isCanceled(); } public void setCanceled(boolean value) { monitor.setCanceled(value); } public void setTaskName(String name) { setName(name); monitor.setTaskName(name); } public void subTask(String name) { monitor.subTask(name); } public void worked(int work) { monitor.worked(work); } }; _editor._loadInBackground(monitorWrapper); return new Status(IStatus.OK, Activator.PLUGIN_ID, IStatus.OK, "Done", null); } }