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);
}
}