public void run(IStructuredSelection selection) { if (selection.size() != 1) return; Object input= selection.getFirstElement(); if (input instanceof LogicalPackage) { IPackageFragment[] fragments= ((LogicalPackage)input).getFragments(); if (fragments.length == 0) return; input= fragments[0]; } if (!(input instanceof IJavaElement)) { IStatus status= createStatus(ActionMessages.OpenTypeHierarchyAction_messages_no_java_element); ErrorDialog.openError(getShell(), getDialogTitle(), ActionMessages.OpenTypeHierarchyAction_messages_title, status); return; } IJavaElement element= (IJavaElement) input; if (!ActionUtil.isProcessable(getShell(), element)) return; List result= new ArrayList(1); IStatus status= compileCandidates(result, element); if (status.isOK()) { run((IJavaElement[]) result.toArray(new IJavaElement[result.size()])); } else { ErrorDialog.openError(getShell(), getDialogTitle(), ActionMessages.OpenTypeHierarchyAction_messages_title, status); } }
@Override public void selectionChanged(IStructuredSelection selection) { setEnabled(isEnabled(selection)); }
/** * Creates a new <code>OpenTypeHierarchyAction</code>. The action requires * that the selection provided by the site's selection provider is of type <code> * org.eclipse.jface.viewers.IStructuredSelection</code>. * * @param site the site providing context information for this action */ public OpenTypeHierarchyAction(IWorkbenchSite site) { super(site); setText(ActionMessages.OpenTypeHierarchyAction_label); setToolTipText(ActionMessages.OpenTypeHierarchyAction_tooltip); setDescription(ActionMessages.OpenTypeHierarchyAction_description); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.OPEN_TYPE_HIERARCHY_ACTION); }
private void createSiteActions(IWorkbenchSite site, ISelectionProvider specialProvider) { fOpenSuperImplementation= new OpenSuperImplementationAction(site); fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); fOpenSuperImplementation.setSpecialSelectionProvider(specialProvider); fOpenExternalJavadoc= new OpenExternalJavadocAction(site); fOpenExternalJavadoc.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_EXTERNAL_JAVADOC); fOpenExternalJavadoc.setSpecialSelectionProvider(specialProvider); fOpenTypeHierarchy= new OpenTypeHierarchyAction(site); fOpenTypeHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY); fOpenTypeHierarchy.setSpecialSelectionProvider(specialProvider); fOpenCallHierarchy= new OpenCallHierarchyAction(site); fOpenCallHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_CALL_HIERARCHY); fOpenCallHierarchy.setSpecialSelectionProvider(specialProvider); ISelectionProvider provider= specialProvider != null ? specialProvider : site.getSelectionProvider(); fOpenPropertiesDialog= new PropertyDialogAction(site, provider); fOpenPropertiesDialog.setActionDefinitionId(IWorkbenchActionDefinitionIds.PROPERTIES); initialize(provider); }
@Override public void run(ITextSelection selection) { IJavaElement input= SelectionConverter.getInput(fEditor); if (!ActionUtil.isProcessable(getShell(), input)) return; try { IJavaElement[] elements= SelectionConverter.codeResolveOrInputForked(fEditor); if (elements == null) return; List<IJavaElement> candidates= new ArrayList<>(elements.length); for (int i= 0; i < elements.length; i++) { IJavaElement[] resolvedElements= OpenTypeHierarchyUtil.getCandidates(elements[i]); if (resolvedElements != null) candidates.addAll(Arrays.asList(resolvedElements)); } run(candidates.toArray(new IJavaElement[candidates.size()])); } catch (InvocationTargetException e) { ExceptionHandler.handle(e, getShell(), getDialogTitle(), ActionMessages.SelectionConverter_codeResolve_failed); } catch (InterruptedException e) { // cancelled } }
/** * Note: This constructor is for internal use only. Clients should not call this constructor. * @param part the editor part */ public OpenViewActionGroup(JavaEditor part) { fEditorIsOwner= true; fShowShowInMenu= false; fOpenSuperImplementation= new OpenSuperImplementationAction(part); fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); part.setAction("OpenSuperImplementation", fOpenSuperImplementation); //$NON-NLS-1$ fOpenExternalJavadoc= new OpenExternalJavadocAction(part); fOpenExternalJavadoc.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_EXTERNAL_JAVADOC); part.setAction("OpenExternalJavadoc", fOpenExternalJavadoc); //$NON-NLS-1$ fOpenTypeHierarchy= new OpenTypeHierarchyAction(part); fOpenTypeHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY); part.setAction("OpenTypeHierarchy", fOpenTypeHierarchy); //$NON-NLS-1$ fOpenCallHierarchy= new OpenCallHierarchyAction(part); fOpenCallHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_CALL_HIERARCHY); part.setAction("OpenCallHierarchy", fOpenCallHierarchy); //$NON-NLS-1$ initialize(part.getEditorSite().getSelectionProvider()); }
@SuppressWarnings("boxing") @Override protected CompletableFuture<Void> doResolve(ITextViewer viewer, IProgressMonitor monitor) { return CompletableFuture.runAsync(() -> { try { IJavaElement element= super.getElement(); long implCount= countImplementations((IType) element, monitor); action= implCount > 0 ? e -> new OpenTypeHierarchyAction(editor).run(new StructuredSelection(element)) : null; if (implCount == 0 && showImplementationsAtLeastOne) { super.setLabel(""); //$NON-NLS-1$ } else { super.setLabel(MessageFormat.format(JavaCodeMiningMessages.JavaImplementationCodeMining_label, implCount)); } } catch (JavaModelException e) { // Should never occur } }); }
return ok; return createStatus(ActionMessages.OpenTypeHierarchyAction_messages_no_java_resources); case IJavaElement.PACKAGE_DECLARATION: result.add(elem.getAncestor(IJavaElement.PACKAGE_FRAGMENT)); return ok; return createStatus(ActionMessages.OpenTypeHierarchyAction_messages_unknown_import_decl); case IJavaElement.CLASS_FILE: result.add(((IClassFile)elem).getType()); return ok; return createStatus(ActionMessages.OpenTypeHierarchyAction_messages_no_types); return createStatus(ActionMessages.OpenTypeHierarchyAction_messages_no_valid_java_element);
private void createSiteActions(IWorkbenchSite site, ISelectionProvider specialProvider) { fOpenImplementation= new OpenImplementationAction(site); fOpenImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_IMPLEMENTATION); fOpenImplementation.setSpecialSelectionProvider(specialProvider); fOpenSuperImplementation= new OpenSuperImplementationAction(site); fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); fOpenSuperImplementation.setSpecialSelectionProvider(specialProvider); fOpenAttachedJavadoc= new OpenAttachedJavadocAction(site); fOpenAttachedJavadoc.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_ATTACHED_JAVADOC); fOpenAttachedJavadoc.setSpecialSelectionProvider(specialProvider); fOpenTypeHierarchy= new OpenTypeHierarchyAction(site); fOpenTypeHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY); fOpenTypeHierarchy.setSpecialSelectionProvider(specialProvider); fOpenCallHierarchy= new OpenCallHierarchyAction(site); fOpenCallHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_CALL_HIERARCHY); fOpenCallHierarchy.setSpecialSelectionProvider(specialProvider); ISelectionProvider provider= specialProvider != null ? specialProvider : site.getSelectionProvider(); fOpenPropertiesDialog= new PropertyDialogAction(site, provider); fOpenPropertiesDialog.setActionDefinitionId(IWorkbenchCommandConstants.FILE_PROPERTIES); initialize(provider); }
public void run(ITextSelection selection) { IJavaElement input= SelectionConverter.getInput(fEditor); if (!ActionUtil.isProcessable(getShell(), input)) return; try { IJavaElement[] elements= SelectionConverter.codeResolveOrInputForked(fEditor); if (elements == null) return; List candidates= new ArrayList(elements.length); for (int i= 0; i < elements.length; i++) { IJavaElement[] resolvedElements= OpenTypeHierarchyUtil.getCandidates(elements[i]); if (resolvedElements != null) candidates.addAll(Arrays.asList(resolvedElements)); } run((IJavaElement[])candidates.toArray(new IJavaElement[candidates.size()])); } catch (InvocationTargetException e) { ExceptionHandler.handle(e, getShell(), getDialogTitle(), ActionMessages.SelectionConverter_codeResolve_failed); } catch (InterruptedException e) { // cancelled } }
/** * Creates a new <code>OpenTypeHierarchyAction</code>. The action requires * that the selection provided by the site's selection provider is of type <code> * org.eclipse.jface.viewers.IStructuredSelection</code>. * * @param site the site providing context information for this action */ public OpenTypeHierarchyAction(IWorkbenchSite site) { super(site); setText(ActionMessages.OpenTypeHierarchyAction_label); setToolTipText(ActionMessages.OpenTypeHierarchyAction_tooltip); setDescription(ActionMessages.OpenTypeHierarchyAction_description); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.OPEN_TYPE_HIERARCHY_ACTION); }
/** * Note: This constructor is for internal use only. Clients should not call this constructor. * @param part the editor part * * @noreference This constructor is not intended to be referenced by clients. */ public OpenViewActionGroup(JavaEditor part) { fEditorIsOwner= true; fShowShowInMenu= false; fOpenImplementation= new OpenImplementationAction(part); fOpenImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_IMPLEMENTATION); part.setAction("OpenImplementation", fOpenImplementation); //$NON-NLS-1$ fOpenSuperImplementation= new OpenSuperImplementationAction(part); fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); part.setAction("OpenSuperImplementation", fOpenSuperImplementation); //$NON-NLS-1$ fOpenAttachedJavadoc= new OpenAttachedJavadocAction(part); fOpenAttachedJavadoc.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_ATTACHED_JAVADOC); part.setAction("OpenAttachedJavadoc", fOpenAttachedJavadoc); //$NON-NLS-1$ fOpenTypeHierarchy= new OpenTypeHierarchyAction(part); fOpenTypeHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY); part.setAction("OpenTypeHierarchy", fOpenTypeHierarchy); //$NON-NLS-1$ fOpenCallHierarchy= new OpenCallHierarchyAction(part); fOpenCallHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_CALL_HIERARCHY); part.setAction("OpenCallHierarchy", fOpenCallHierarchy); //$NON-NLS-1$ initialize(part.getEditorSite().getSelectionProvider()); }
@Override public Object execute(ExecutionEvent event) throws ExecutionException { final IStructuredSelection activeSelection = HandlerUtil.getCurrentStructuredSelection(event); if (activeSelection != null && activeSelection != StructuredSelection.EMPTY) { final ElementDescription selectedElement = this.typeSelector.searchAndSelect(false, activeSelection.toArray()); if (selectedElement != null) { IJavaElement realJavaElement = null; if (selectedElement.element instanceof IJavaElement) { realJavaElement = (IJavaElement) selectedElement.element; } else if (selectedElement.element instanceof XtendTypeDeclaration) { final EObject jvmElement = this.sarlAssociations.getPrimaryJvmElement((XtendTypeDeclaration) selectedElement.element); if (jvmElement instanceof JvmIdentifiableElement) { realJavaElement = this.javaElementFinder.findElementFor((JvmIdentifiableElement) jvmElement); } } if (realJavaElement != null) { OpenTypeHierarchyUtil.open(realJavaElement, PlatformUI.getWorkbench().getActiveWorkbenchWindow()); } } else { final OpenTypeHierarchyAction jdtTool = new OpenTypeHierarchyAction(HandlerUtil.getActiveSite(event)); jdtTool.run(activeSelection); } } return null; }
return createStatus(ActionMessages.OpenTypeHierarchyAction_messages_no_valid_java_element); return ok;
if (!(input instanceof IJavaElement) || !ActionUtil.isProcessable(getShell(), (IJavaElement)input)) continue; IJavaElement element= (IJavaElement)input; IStatus status= createStatus(ActionMessages.OpenTypeHierarchyAction_messages_no_java_elements); ErrorDialog.openError(getShell(), getDialogTitle(), ActionMessages.OpenTypeHierarchyAction_messages_title, status); return; IStatus status= compileCandidates(result, validElements); if (status.isOK()) { run(result.toArray(new IJavaElement[result.size()])); } else { ErrorDialog.openError(getShell(), getDialogTitle(), ActionMessages.OpenTypeHierarchyAction_messages_title, status);
private void createSiteActions(IWorkbenchSite site, ISelectionProvider specialProvider) { fOpenImplementation= new OpenImplementationAction(site); fOpenImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_IMPLEMENTATION); fOpenImplementation.setSpecialSelectionProvider(specialProvider); fOpenSuperImplementation= new OpenSuperImplementationAction(site); fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); fOpenSuperImplementation.setSpecialSelectionProvider(specialProvider); fOpenAttachedJavadoc= new OpenAttachedJavadocAction(site); fOpenAttachedJavadoc.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_ATTACHED_JAVADOC); fOpenAttachedJavadoc.setSpecialSelectionProvider(specialProvider); fOpenTypeHierarchy= new OpenTypeHierarchyAction(site); fOpenTypeHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY); fOpenTypeHierarchy.setSpecialSelectionProvider(specialProvider); fOpenCallHierarchy= new OpenCallHierarchyAction(site); fOpenCallHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_CALL_HIERARCHY); fOpenCallHierarchy.setSpecialSelectionProvider(specialProvider); ISelectionProvider provider= specialProvider != null ? specialProvider : site.getSelectionProvider(); fOpenPropertiesDialog= new PropertyDialogAction(site, provider); fOpenPropertiesDialog.setActionDefinitionId(IWorkbenchCommandConstants.FILE_PROPERTIES); initialize(provider); }
@Override public void run(ITextSelection selection) { IJavaElement input= SelectionConverter.getInput(fEditor); if (!ActionUtil.isProcessable(getShell(), input)) return; try { IJavaElement[] elements= SelectionConverter.codeResolveOrInputForked(fEditor); if (elements == null) return; List<IJavaElement> candidates= new ArrayList<>(elements.length); for (int i= 0; i < elements.length; i++) { IJavaElement[] resolvedElements= OpenTypeHierarchyUtil.getCandidates(elements[i]); if (resolvedElements != null) candidates.addAll(Arrays.asList(resolvedElements)); } run(candidates.toArray(new IJavaElement[candidates.size()])); } catch (InvocationTargetException e) { ExceptionHandler.handle(e, getShell(), getDialogTitle(), ActionMessages.SelectionConverter_codeResolve_failed); } catch (InterruptedException e) { // cancelled } }
/** * Creates a new <code>OpenTypeHierarchyAction</code>. The action requires * that the selection provided by the site's selection provider is of type <code> * org.eclipse.jface.viewers.IStructuredSelection</code>. * * @param site the site providing context information for this action */ public OpenTypeHierarchyAction(IWorkbenchSite site) { super(site); setText(ActionMessages.OpenTypeHierarchyAction_label); setToolTipText(ActionMessages.OpenTypeHierarchyAction_tooltip); setDescription(ActionMessages.OpenTypeHierarchyAction_description); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.OPEN_TYPE_HIERARCHY_ACTION); }
/** * Note: This constructor is for internal use only. Clients should not call this constructor. * @param part the editor part * * @noreference This constructor is not intended to be referenced by clients. */ public OpenViewActionGroup(JavaEditor part) { fEditorIsOwner= true; fShowShowInMenu= false; fOpenImplementation= new OpenImplementationAction(part); fOpenImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_IMPLEMENTATION); part.setAction("OpenImplementation", fOpenImplementation); //$NON-NLS-1$ fOpenSuperImplementation= new OpenSuperImplementationAction(part); fOpenSuperImplementation.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_SUPER_IMPLEMENTATION); part.setAction("OpenSuperImplementation", fOpenSuperImplementation); //$NON-NLS-1$ fOpenAttachedJavadoc= new OpenAttachedJavadocAction(part); fOpenAttachedJavadoc.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_ATTACHED_JAVADOC); part.setAction("OpenAttachedJavadoc", fOpenAttachedJavadoc); //$NON-NLS-1$ fOpenTypeHierarchy= new OpenTypeHierarchyAction(part); fOpenTypeHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_TYPE_HIERARCHY); part.setAction("OpenTypeHierarchy", fOpenTypeHierarchy); //$NON-NLS-1$ fOpenCallHierarchy= new OpenCallHierarchyAction(part); fOpenCallHierarchy.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_CALL_HIERARCHY); part.setAction("OpenCallHierarchy", fOpenCallHierarchy); //$NON-NLS-1$ initialize(part.getEditorSite().getSelectionProvider()); }