Java 类org.eclipse.jface.text.IUndoManagerExtension 实例源码

项目:bts    文件:LinkedEditingUndoSupport.java   
public void undoDocumentChanges() {
    final ISourceViewer viewer = editor.getInternalSourceViewer();
    try {
        editor.getSite().getWorkbenchWindow().run(false, true, new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                if (viewer instanceof ITextViewerExtension6) {
                    IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
                    if (undoManager instanceof IUndoManagerExtension) {
                        IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager;
                        IUndoContext undoContext = undoManagerExtension.getUndoContext();
                        IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
                        while (undoManager.undoable()) {
                            if (startingUndoOperation != null
                                    && startingUndoOperation.equals(operationHistory.getUndoOperation(undoContext)))
                                return;
                            undoManager.undo();
                        }
                    }
                }
            }
        });
        syncUtil.waitForReconciler(editor);
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    }
}
项目:tlaplus    文件:TLAEditor.java   
private IUndoContext getUndoContext() {
    if (getSourceViewer() instanceof ITextViewerExtension6) {
        IUndoManager undoManager = ((ITextViewerExtension6) getSourceViewer()).getUndoManager();
        if (undoManager instanceof IUndoManagerExtension)
            return ((IUndoManagerExtension) undoManager).getUndoContext();
    }
    return null;
}
项目:bts    文件:LinkedEditingUndoSupport.java   
public void startRecording(XtextEditor editor) {
    this.editor = editor;
    ISourceViewer viewer = editor.getInternalSourceViewer();
    if (viewer instanceof ITextViewerExtension6) {
        IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
        if (undoManager instanceof IUndoManagerExtension) {
            IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager;
            IUndoContext undoContext = undoManagerExtension.getUndoContext();
            IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
            startingUndoOperation = operationHistory.getUndoOperation(undoContext);
        }
    }
}
项目:optiq-mat-plugin    文件:OptiqPane.java   
private void installUndoRedoSupport() {
    IUndoContext undoContext = ((IUndoManagerExtension) queryViewer.getUndoManager()).getUndoContext();

    UndoActionHandler undoAction = new UndoActionHandler(getSite(), undoContext);
    RedoActionHandler redoAction = new RedoActionHandler(getSite(), undoContext);

    undoAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_UNDO);
    redoAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_REDO);

    IActionBars actionBars = getEditor().getEditorSite().getActionBars();
    actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), undoAction);
    actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), redoAction);

    actionBars.updateActionBars();
}
项目:mat-calcite-plugin    文件:CalcitePane.java   
private void installUndoRedoSupport() {
    IUndoContext undoContext = ((IUndoManagerExtension) queryViewer.getUndoManager()).getUndoContext();

    UndoActionHandler undoAction = new UndoActionHandler(getSite(), undoContext);
    RedoActionHandler redoAction = new RedoActionHandler(getSite(), undoContext);

    undoAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_UNDO);
    redoAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_REDO);

    IActionBars actionBars = getEditor().getEditorSite().getActionBars();
    actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), undoAction);
    actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), redoAction);

    actionBars.updateActionBars();
}
项目:typescript.java    文件:RenameLinkedMode.java   
public void start() {
    if (getActiveLinkedMode() != null) {
        // for safety; should already be handled in RenameJavaElementAction
        fgActiveLinkedMode.startFullDialog();
        return;
    }

    ISourceViewer viewer = fEditor.getViewer();
    IDocument document = viewer.getDocument();

    ITypeScriptFile tsFile = fEditor.getTypeScriptFile();
    tsFile.setDisableChanged(true);
    fOriginalSelection = viewer.getSelectedRange();
    int offset = fOriginalSelection.x;

    try {
        fLinkedPositionGroup = new LinkedPositionGroup();
        if (viewer instanceof ITextViewerExtension6) {
            IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
            if (undoManager instanceof IUndoManagerExtension) {
                IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager;
                IUndoContext undoContext = undoManagerExtension.getUndoContext();
                IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory();
                fStartingUndoOperation = operationHistory.getUndoOperation(undoContext);
            }
        }

        // Find occurrences
        List<OccurrencesResponseItem> occurrences = tsFile.occurrences(offset).get(1000, TimeUnit.MILLISECONDS);

        // Create Eclipse linked position from the occurrences list.
        int start, length;
        for (int i = 0; i < occurrences.size(); i++) {
            OccurrencesResponseItem item = occurrences.get(i);
            start = tsFile.getPosition(item.getStart());
            length = tsFile.getPosition(item.getEnd()) - start;
            LinkedPosition linkedPosition = new LinkedPosition(document, start, length, i);
            if (i == 0) {
                fOriginalName = document.get(start, length);
                fNamePosition = linkedPosition;
            }
            fLinkedPositionGroup.addPosition(linkedPosition);
        }

        fLinkedModeModel = new LinkedModeModel();
        fLinkedModeModel.addGroup(fLinkedPositionGroup);
        fLinkedModeModel.forceInstall();
        fLinkedModeModel.addLinkingListener(new EditorHighlightingSynchronizer(fEditor));
        fLinkedModeModel.addLinkingListener(new EditorSynchronizer());

        LinkedModeUI ui = new EditorLinkedModeUI(fLinkedModeModel, viewer);
        ui.setExitPosition(viewer, offset, 0, Integer.MAX_VALUE);
        ui.setExitPolicy(new ExitPolicy(document));
        ui.enter();

        viewer.setSelectedRange(fOriginalSelection.x, fOriginalSelection.y); // by
                                                                                // default,
                                                                                // full
                                                                                // word
                                                                                // is
                                                                                // selected;
                                                                                // restore
                                                                                // original
                                                                                // selection

        if (viewer instanceof IEditingSupportRegistry) {
            IEditingSupportRegistry registry = (IEditingSupportRegistry) viewer;
            registry.register(fFocusEditingSupport);
        }

        openSecondaryPopup();
        // startAnimation();
        fgActiveLinkedMode = this;

    } catch (Exception e) {
        JSDTTypeScriptUIPlugin.log(e);
    }
}