@Override protected void doRun( ITextSelection selection, Event event, UIInstrumentationBuilder instrumentation) { CompilationUnit input = SelectionConverter.getInputAsCompilationUnit(editor); instrumentation.record(input); if (!ActionUtil.isProcessable(getShell(), input)) { instrumentation.metric("Problem", "input cu is not processable"); return; } try { DartElement[] elements = SelectionConverter.codeResolveOrInputForked(editor); if (elements == null) { instrumentation.metric("Problem", "elements was null"); return; } ActionInstrumentationUtilities.record(elements, "Selections", instrumentation); List<DartElement> candidates = new ArrayList<DartElement>(elements.length); for (int i = 0; i < elements.length; i++) { DartElement element = elements[i]; if (CallHierarchy.isPossibleInputElement(element)) { candidates.add(element); } } if (candidates.isEmpty()) { DartElement enclosingMethod = getEnclosingMethod(input, selection); if (enclosingMethod != null) { candidates.add(enclosingMethod); } } ActionInstrumentationUtilities.record(candidates, "Candidates", instrumentation); CallHierarchyUI.openSelectionDialog( candidates.toArray(new DartElement[candidates.size()]), getSite().getWorkbenchWindow()); } catch (InvocationTargetException e) { ExceptionHandler.handle( e, getShell(), CallHierarchyMessages.OpenCallHierarchyAction_dialog_title, ActionMessages.SelectionConverter_codeResolve_failed); } catch (InterruptedException e) { // cancelled instrumentation.metric("Problem", "User cancelled"); } }
@Override public void doRun( ITextSelection selection, Event event, UIInstrumentationBuilder instrumentation) { if (!ActionUtil.isEditable(fEditor)) { instrumentation.metric("Problem", "Editor not editable"); return; } CompilationUnit cu = SelectionConverter.getInputAsCompilationUnit(fEditor); instrumentation.record(cu); try { DartFunction function = DartModelUtil.findFunction(cu, selection.getOffset()); instrumentation.data("function", function.getSource()); boolean success = RefactoringExecutionStarter_OLD.startConvertGetterToMethodRefactoring( function, getShell()); if (success) { return; } instrumentation.metric( "Problem", "RefactoringExecutionStarter.startConvertGetterToMethodRefactoring False"); } catch (Throwable e) { instrumentation.record(e); } instrumentation.metric("Problem", "No valid selection, showing dialog"); MessageDialog.openInformation( getShell(), RefactoringMessages.ConvertGetterToMethodAction_dialog_title, RefactoringMessages.ConvertGetterToMethodAction_select); }
public ConvertGetterToMethodAction_OLD(DartEditor editor) { super(editor.getEditorSite()); setText(RefactoringMessages.ConvertGetterToMethodAction_title); fEditor = editor; PlatformUI.getWorkbench() .getHelpSystem() .setHelp(this, DartHelpContextIds.CONVERT_GETTER_TO_METHOD_ACTION); setEnabled(SelectionConverter.getInputAsCompilationUnit(fEditor) != null); }
@Override public void run(ITextSelection selection) { CompilationUnit input = SelectionConverter.getInputAsCompilationUnit(editor); if (!ActionUtil.isProcessable(getShell(), input)) { return; } try { DartElement[] elements = SelectionConverter.codeResolveOrInputForked(editor); if (elements == null) { return; } List<DartElement> candidates = new ArrayList<DartElement>(elements.length); for (int i = 0; i < elements.length; i++) { DartElement element = elements[i]; if (CallHierarchy.isPossibleInputElement(element)) { candidates.add(element); } } if (candidates.isEmpty()) { DartElement enclosingMethod = getEnclosingMethod(input, selection); if (enclosingMethod != null) { candidates.add(enclosingMethod); } } CallHierarchyUI.openSelectionDialog( candidates.toArray(new DartElement[candidates.size()]), getSite().getWorkbenchWindow()); } catch (InvocationTargetException e) { ExceptionHandler.handle( e, getShell(), CallHierarchyMessages.OpenCallHierarchyAction_dialog_title, ActionMessages.SelectionConverter_codeResolve_failed); } catch (InterruptedException e) { // cancelled } }
/** * Note: This constructor is for internal use only. Clients should not call this constructor. * * @param editor internal */ public OpenCallHierarchyAction(DartEditor editor) { this(editor.getEditorSite()); this.editor = editor; setEnabled(SelectionConverter.canOperateOn(editor)); }