package org.projectusus.ui.util;
import static org.eclipse.jdt.ui.JavaUI.openInEditor;
import static org.eclipse.ui.PlatformUI.getWorkbench;
import org.eclipse.core.resources.IFile;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.ide.IDE;
import org.projectusus.ui.internal.UsusUIPlugin;
public final class EditorOpener {
public void openEditor( IFile file ) {
if( file == null ) {
return;
}
try {
IDE.openEditor( getActivePage(), file );
} catch( PartInitException paix ) {
UsusUIPlugin.getDefault().getLog().log( paix.getStatus() );
}
}
public void openEditorAt( ICompilationUnit compilationUnit, int sourcePosition ) {
if( compilationUnit != null ) {
try {
openJavaEditor( compilationUnit, sourcePosition );
} catch( Exception ex ) {
UsusUIPlugin.getDefault().log( ex );
}
}
}
private void openJavaEditor( ICompilationUnit compilationUnit, int sourcePosition ) throws Exception {
IJavaElement javaElement = compilationUnit.getElementAt( sourcePosition );
if( javaElement == null ) {
javaElement = compilationUnit.getPrimaryElement();
}
if( javaElement != null ) {
openInEditor( javaElement, true, true );
}
}
private IWorkbenchPage getActivePage() {
return getWorkbench().getActiveWorkbenchWindow().getActivePage();
}
}