]>
Commit | Line | Data |
---|---|---|
87b2afda EK |
1 | package no.uio.ifi.refaktor.utils; |
2 | ||
171cf942 | 3 | import static no.uio.ifi.refaktor.assertion.RefaktorAssert.assertThat; |
02079d76 EK |
4 | import static org.hamcrest.CoreMatchers.instanceOf; |
5 | import static org.hamcrest.CoreMatchers.notNullValue; | |
6 | ||
87b2afda EK |
7 | import org.eclipse.core.commands.ExecutionEvent; |
8 | import org.eclipse.core.commands.ExecutionException; | |
dde93e7b | 9 | import org.eclipse.core.resources.IFile; |
fe4785f1 EK |
10 | import org.eclipse.jdt.core.ICompilationUnit; |
11 | import org.eclipse.jdt.core.JavaModelException; | |
12 | import org.eclipse.jface.text.Document; | |
87b2afda | 13 | import org.eclipse.jface.text.IDocument; |
4c03afae | 14 | import org.eclipse.jface.text.ITextSelection; |
87b2afda EK |
15 | import org.eclipse.jface.text.TextSelection; |
16 | import org.eclipse.jface.viewers.ISelection; | |
17 | import org.eclipse.ui.IEditorPart; | |
18 | import org.eclipse.ui.handlers.HandlerUtil; | |
dde93e7b | 19 | import org.eclipse.ui.ide.ResourceUtil; |
87b2afda EK |
20 | import org.eclipse.ui.texteditor.ITextEditor; |
21 | ||
4c03afae | 22 | public class DocumentUtils { |
87b2afda | 23 | |
625f3718 | 24 | private static TextSelection getTextSelectionFrom(ExecutionEvent event) throws ExecutionException { |
87b2afda | 25 | ISelection selection = HandlerUtil.getCurrentSelectionChecked(event); |
02079d76 | 26 | assertThat(selection, instanceOf(TextSelection.class)); |
87b2afda EK |
27 | return (TextSelection) selection; |
28 | } | |
29 | ||
30 | public static ITextEditor getEditorFrom(ExecutionEvent event) throws ExecutionException { | |
31 | IEditorPart part = HandlerUtil.getActiveEditorChecked(event); | |
02079d76 | 32 | assertThat(part, instanceOf(ITextEditor.class)); |
87b2afda EK |
33 | return (ITextEditor) part; |
34 | } | |
35 | ||
36 | public static IDocument getDocumentFrom(ITextEditor editor) { | |
37 | return editor.getDocumentProvider().getDocument(editor.getEditorInput()); | |
38 | } | |
39 | ||
18447975 | 40 | public static CompilationUnitTextSelection getStrippedCompilationUnitTextSelectionFromExecutionEvent(ExecutionEvent event) |
610e968d | 41 | throws ExecutionException { |
18447975 | 42 | ICompilationUnit compilationUnit = getCompilationUnitFromExecutionEvent(event); |
1d39ea7d | 43 | IDocument document = DocumentUtils.getDocumentFromCompilationUnit(compilationUnit); |
4c03afae | 44 | ITextSelection strippedTextSelection = ParseUtils.stripTextSelection(document, getTextSelectionFrom(event)); |
1d39ea7d | 45 | return new CompilationUnitTextSelection(compilationUnit, strippedTextSelection); |
610e968d EK |
46 | } |
47 | ||
18447975 EK |
48 | public static CompilationUnitTextSelection getCompilationUnitTextSelectionFromExecutionEvent(ExecutionEvent event) |
49 | throws ExecutionException { | |
50 | return new CompilationUnitTextSelection(getCompilationUnitFromExecutionEvent(event), getTextSelectionFrom(event)); | |
51 | } | |
52 | ||
53 | private static ICompilationUnit getCompilationUnitFromExecutionEvent(ExecutionEvent event) | |
54 | throws ExecutionException { | |
55 | return RefaktorHandleUtils.getCompilationUnitFromEditor(getEditorFrom(event)); | |
56 | } | |
57 | ||
610e968d EK |
58 | public static void setSelectionForEditor(ISelection selection, ITextEditor editor) { |
59 | editor.getSite().getSelectionProvider().setSelection(selection); | |
4c03afae EK |
60 | } |
61 | ||
57ec7e36 | 62 | public static IDocument getDocumentFromCompilationUnit(ICompilationUnit compilationUnit) { |
02079d76 | 63 | assertThat(compilationUnit, notNullValue()); |
fe4785f1 | 64 | try { |
57ec7e36 | 65 | return new Document(compilationUnit.getSource()); |
fe4785f1 EK |
66 | } catch (JavaModelException e) { |
67 | throw new RuntimeException(e); | |
68 | } | |
69 | } | |
70 | ||
558315ef | 71 | public static IFile getFileFromEditor(IEditorPart editor) { |
dde93e7b EK |
72 | return ResourceUtil.getFile(editor.getEditorInput()); |
73 | } | |
87b2afda | 74 | } |