public Image decorateImage(Image baseImage, Object object) { IResource objectResource = (IResource) object; if (objectResource == null) { return null; } if (objectResource.getType() != IResource.PROJECT) { // Only projects are decorated return null; } IProject project = (IProject) objectResource; boolean isJava = false; try { if (project.hasNature(X10DTCorePlugin.X10_CPP_PRJ_NATURE_ID)) { isJava = false; } else if (project.hasNature(X10DTCorePlugin.X10_PRJ_JAVA_NATURE_ID)) { isJava = true; } else { return null; } } catch (CoreException e) { X10DTUIPlugin.getInstance().getLog().log(e.getStatus()); } // Overlay custom image over base image ImageDescriptor[] desc = new ImageDescriptor[5]; desc[1] = X10PluginImages.DESC_OVR_X10; // This is the X10 project decoration. if (isJava) desc[0] = X10PluginImages.DESC_OVR_JAVA; DecorationOverlayIcon overlayIcon = new DecorationOverlayIcon(baseImage, desc); return overlayIcon.createImage(); }
@Parameters public static Collection<Object[]> params() throws Exception { project = ProjectUtils.copyProjectIntoWorkspace( X10DTUIPlugin.getInstance().getBundle(), new Path("data/X10DocProvider")); IFolder folder = project.getFolder("src"); final List<Object[]> list = new ArrayList<Object[]>(); folder.accept( new IResourceVisitor() { public boolean visit(IResource resource) throws CoreException { if (resource instanceof IFile) { if (!resource.toString().contains(".svn/")) { list.add(new Object[] {resource}); } return false; } return true; } }); return list; }
public static TypeHierarchyViewPart open(IMemberInfo[] candidates, IWorkbenchWindow window) { Assert.isTrue(candidates != null && candidates.length != 0); IMemberInfo input = null; if (candidates.length > 1) { String title = Messages.OpenTypeHierarchyUtil_selectionDialog_title; String message = Messages.OpenTypeHierarchyUtil_selectionDialog_message; input = SelectionConverter.selectJavaElement(candidates, window.getShell(), title, message); } else { input = candidates[0]; } if (input == null) return null; try { if (X10Constants.OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE.equals( X10DTUIPlugin.getInstance() .getPreferenceStore() .getString(EditorActionDefinitionIds.OPEN_TYPE_HIERARCHY))) { return openInPerspective(window, input); } else { return openInViewPart(window, input); } } catch (Exception e) { // ExceptionHandler.handle(e, window.getShell(), // Messages.OpenTypeHierarchyUtil_error_open_perspective, // e.getMessage()); X10DTUIPlugin.log(e); } // catch (JavaModelException e) { // ExceptionHandler.handle(e, window.getShell(), // Messages.OpenTypeHierarchyUtil_error_open_editor, // e.getMessage()); // } return null; }
private static TypeHierarchyViewPart openInViewPart(IWorkbenchWindow window, IMemberInfo input) { IWorkbenchPage page = window.getActivePage(); try { TypeHierarchyViewPart result = (TypeHierarchyViewPart) page.findView(X10Constants.ID_TYPE_HIERARCHY); if (result != null) { result.clearNeededRefresh(); // avoid refresh of old hierarchy on 'becomes visible' } result = (TypeHierarchyViewPart) page.showView(X10Constants.ID_TYPE_HIERARCHY); result.setInputElement(input); return result; } catch (CoreException e) { // ExceptionHandler.handle(e, window.getShell(), // Messages.OpenTypeHierarchyUtil_error_open_view, e.getMessage()); X10DTUIPlugin.log(e); } return null; }
private static TypeHierarchyViewPart openInPerspective(IWorkbenchWindow window, IMemberInfo input) throws WorkbenchException, Exception { IWorkbench workbench = X10DTUIPlugin.getInstance().getWorkbench(); // The problem is that the input element can be a working copy. So we first convert it to the // original element if // it exists. IMemberInfo perspectiveInput = input; if (input instanceof IMemberInfo) { if (!(input instanceof ITypeInfo)) { perspectiveInput = ((IMemberInfo) input).getDeclaringType(); } else { perspectiveInput = input; } } ; IWorkbenchPage page = workbench.showPerspective( X10Constants.ID_HIERARCHYPERSPECTIVE, window, SearchUtils.getResource(perspectiveInput)); TypeHierarchyViewPart part = (TypeHierarchyViewPart) page.findView(X10Constants.ID_TYPE_HIERARCHY); if (part != null) { part.clearNeededRefresh(); // avoid refresh of old hierarchy on 'becomes visible' } part = (TypeHierarchyViewPart) page.showView(X10Constants.ID_TYPE_HIERARCHY); part.setInputElement(input); if (input instanceof IMemberInfo) { if (page.getEditorReferences().length == 0) { SearchUtils.openEditor(input); } } return part; }