package ru.naumen.gintonic.utils; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.ITypeRoot; import org.eclipse.jdt.ui.JavaUI; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.texteditor.ITextEditor; import ru.naumen.gintonic.project.navigate.selection.ICompilationUnitSelection; public class ICompilationUnitSelectionUtils { public static ICompilationUnitSelection getCompilationUnitSelection() { IEditorPart editorPart = EclipseUtils.getActiveEditor(); if (editorPart == null | !(editorPart instanceof ITextEditor)) { return null; } ITextEditor textEditor = (ITextEditor) editorPart; IEditorInput editorInput = textEditor.getEditorInput(); ITypeRoot editorInputTypeRoot = JavaUI.getEditorInputTypeRoot(editorInput); if (!(editorInputTypeRoot instanceof ICompilationUnit)) { return null; } ICompilationUnit icompilationUnit = (ICompilationUnit) editorInputTypeRoot; ISelectionProvider selectionProvider = textEditor.getSelectionProvider(); ISelection sel = selectionProvider.getSelection(); if (!(sel instanceof ITextSelection)) { return null; } ITextSelection currentSelection = (ITextSelection) sel; return new ICompilationUnitSelection(icompilationUnit, currentSelection); } }