取得当前激活状态的Iproject
获得当前激活状态的Iproject
/** * 获得当前工程 * @return */ public static IProject getActiveProject() { IWorkbenchPage page = getWorkbenchPage(); if (page == null) { return null; } IWorkbenchPart part = page.getActivePart(); Object adaptable = null; if ((part instanceof IEditorPart)) { IEditorPart editorPart = (IEditorPart) part; IEditorInput input = editorPart.getEditorInput(); adaptable = input.getAdapter(IFile.class); } else { IViewPart viewPart = (IViewPart) part; adaptable = viewPart.getAdapter(IResource.class); if (adaptable == null) { ISelection selection = page.getSelection(); if ((isValidSelection(selection)) && ((selection instanceof IStructuredSelection))) { IStructuredSelection newSelection = (IStructuredSelection) selection; Object[] objects = newSelection.toArray(); if (!ArrayUtils.isEmpty(objects)) { for (int i = 0; i < objects.length; i++) { Object object = objects; adaptable = AdapterUtil.getAdapter(object, IResource.class); if (adaptable != null) { break; } } } } } } if (adaptable == null) { IEditorPart editor = getActiveEditor(); if (editor == null) return null; IEditorInput input = editor.getEditorInput(); adaptable = input.getAdapter(IFile.class); } if ((adaptable instanceof IResource)) { IResource resource = (IResource) adaptable; IProject project = resource.getProject(); return project; } return null; } public static boolean isValidSelection(ISelection selection) { return (selection != null) && (!selection.isEmpty()); }
/** * 适配器工具类 * * @author Ming.He * */ public class AdapterUtil { public static Object getAdapter(Object r_Element, Class r_AdapterType) { if (r_Element == null) { return null; } if ((r_Element instanceof IAdaptable)) { return ((IAdaptable) r_Element).getAdapter(r_AdapterType); } return Platform.getAdapterManager().getAdapter(r_Element, r_AdapterType); } }