// Copyright (c) 2009-2010 by the projectusus.org contributors // This software is released under the terms and conditions // of the Eclipse Public License (EPL) 1.0. // See http://www.eclipse.org/legal/epl-v10.html for details. package org.projectusus.ui.internal.selection; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jface.text.TextSelection; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IEditorInput; import org.projectusus.ui.internal.UsusUIPlugin; public class EditorInputAnalysis { private final ICompilationUnit compilationUnit; EditorInputAnalysis( ICompilationUnitInputLoader loader, IEditorInput editorInput ) { if( loader == null ) { throw new IllegalArgumentException(); } compilationUnit = loader.loadCompilationUnit( editorInput ); } public ICompilationUnit getCompilationUnit() { return compilationUnit; } public IJavaElement getSelectedElement( ISelection selection ) { if( selection instanceof TextSelection ) { try { IJavaElement element = compilationUnit.getElementAt( ((TextSelection)selection).getOffset() ); return element == null ? compilationUnit : element; } catch( JavaModelException jamox ) { UsusUIPlugin.getDefault().log( jamox ); } } return compilationUnit; } }