/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.ui.editors;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.widgets.Display;
import org.teiid.designer.ui.common.viewsupport.UiBusyIndicator;
/**
* @since 8.0
*/
public class OpenModelEditorJob extends Job {
private static final String JOB_NAME = "Open Model Editor"; //$NON-NLS-1$
IFile fileToOpen;
EObject editableObject;
/**
* @param theName
* @since 5.0
*/
public OpenModelEditorJob( IFile fileToOpen,
EObject eObjectToEdit ) {
super(JOB_NAME);
this.fileToOpen = fileToOpen;
this.editableObject = eObjectToEdit;
}
/**
* @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
* @since 5.0
*/
@Override
protected IStatus run( IProgressMonitor theMonitor ) {
UiBusyIndicator.showWhile(Display.getDefault(), new Runnable() {
@Override
public void run() {
if (editableObject != null) {
ModelEditorManager.edit(editableObject);
} else {
final ModelEditor modelEditor = ModelEditorManager.getModelEditorForFile(fileToOpen, true);
if (modelEditor != null) {
ModelEditorManager.activate(modelEditor);
}
}
}
});
return Status.OK_STATUS;
}
}