1 package no.uio.ifi.refaktor.utils;
3 import no.uio.ifi.refaktor.textselection.CompilationUnitTextSelection;
5 import org.eclipse.core.commands.ExecutionEvent;
6 import org.eclipse.core.commands.ExecutionException;
7 import org.eclipse.core.resources.IFile;
8 import org.eclipse.jdt.core.ICompilationUnit;
9 import org.eclipse.jdt.core.JavaModelException;
10 import org.eclipse.jface.text.Document;
11 import org.eclipse.jface.text.IDocument;
12 import org.eclipse.jface.text.ITextSelection;
13 import org.eclipse.jface.text.TextSelection;
14 import org.eclipse.jface.viewers.ISelection;
15 import org.eclipse.ui.IEditorPart;
16 import org.eclipse.ui.handlers.HandlerUtil;
17 import org.eclipse.ui.ide.ResourceUtil;
18 import org.eclipse.ui.texteditor.ITextEditor;
20 public class DocumentUtils {
22 public static ITextEditor getEditorFrom(ExecutionEvent event) throws ExecutionException {
23 IEditorPart part = HandlerUtil.getActiveEditorChecked(event);
24 assert part instanceof ITextEditor;
25 return (ITextEditor) part;
28 public static IDocument getDocumentFrom(ITextEditor editor) {
29 return editor.getDocumentProvider().getDocument(editor.getEditorInput());
32 public static CompilationUnitTextSelection getStrippedCompilationUnitTextSelectionFromExecutionEvent(ExecutionEvent event)
33 throws ExecutionException {
34 ICompilationUnit compilationUnit = getCompilationUnitFromExecutionEvent(event);
35 IDocument document = DocumentUtils.getDocumentFromCompilationUnit(compilationUnit);
36 ITextSelection strippedTextSelection = ParseUtils.stripTextSelection(document, getTextSelectionFrom(event));
37 return new CompilationUnitTextSelection(compilationUnit, strippedTextSelection);
40 public static CompilationUnitTextSelection getCompilationUnitTextSelectionFromExecutionEvent(ExecutionEvent event)
41 throws ExecutionException {
42 return new CompilationUnitTextSelection(getCompilationUnitFromExecutionEvent(event), getTextSelectionFrom(event));
45 private static ICompilationUnit getCompilationUnitFromExecutionEvent(ExecutionEvent event)
46 throws ExecutionException {
47 return RefaktorHandleUtils.getCompilationUnitFromEditor(getEditorFrom(event));
51 private static TextSelection getTextSelectionFrom(ExecutionEvent event) throws ExecutionException {
52 ISelection selection = HandlerUtil.getCurrentSelectionChecked(event);
53 assert selection instanceof TextSelection;
54 return (TextSelection) selection;
56 public static void setSelectionForEditor(ISelection selection, ITextEditor editor) {
57 editor.getSite().getSelectionProvider().setSelection(selection);
60 public static IDocument getDocumentFromCompilationUnit(ICompilationUnit compilationUnit) {
61 assert compilationUnit != null;
63 return new Document(compilationUnit.getSource());
64 } catch (JavaModelException e) {
65 throw new RuntimeException(e);
69 public static IFile getFileFromEditor(IEditorPart editor) {
70 return ResourceUtil.getFile(editor.getEditorInput());