Example usage for com.intellij.openapi.command.undo DocumentReferenceManager getInstance

List of usage examples for com.intellij.openapi.command.undo DocumentReferenceManager getInstance

Introduction

In this page you can find the example usage for com.intellij.openapi.command.undo DocumentReferenceManager getInstance.

Prototype

public static DocumentReferenceManager getInstance() 

Source Link

Usage

From source file:com.intellij.codeInsight.template.impl.TemplateState.java

License:Apache License

public void start(@NotNull TemplateImpl template, @Nullable final PairProcessor<String, String> processor,
        @Nullable Map<String, String> predefinedVarValues) {
    LOG.assertTrue(!myStarted, "Already started");
    myStarted = true;//from  w  ww .java 2s.  c o  m
    myTemplate = template;
    PsiDocumentManager.getInstance(myProject).commitAllDocuments();

    myProcessor = processor;

    DocumentReference[] refs = myDocument == null ? null
            : new DocumentReference[] { DocumentReferenceManager.getInstance().create(myDocument) };
    UndoManager.getInstance(myProject).undoableActionPerformed(new BasicUndoableAction(refs) {
        @Override
        public void undo() {
            if (myDocument != null) {
                fireTemplateCancelled();
                LookupManager.getInstance(myProject).hideActiveLookup();
                int oldVar = myCurrentVariableNumber;
                setCurrentVariableNumber(-1);
                currentVariableChanged(oldVar);
            }
        }

        @Override
        public void redo() {
            //TODO:
            // throw new UnexpectedUndoException("Not implemented");
        }
    });
    myTemplateIndented = false;
    myCurrentVariableNumber = -1;
    mySegments = new TemplateSegments(myEditor);
    myPrevTemplate = myTemplate;

    //myArgument = argument;
    myPredefinedVariableValues = predefinedVarValues;

    if (template.isInline()) {
        int caretOffset = myEditor.getCaretModel().getOffset();
        myTemplateRange = myDocument.createRangeMarker(caretOffset,
                caretOffset + template.getTemplateText().length());
    } else {
        PsiFile file = getPsiFile();
        preprocessTemplate(file, myEditor.getCaretModel().getOffset(), myTemplate.getTemplateText());
        int caretOffset = myEditor.getCaretModel().getOffset();
        myTemplateRange = myDocument.createRangeMarker(caretOffset, caretOffset);
    }
    myTemplateRange.setGreedyToLeft(true);
    myTemplateRange.setGreedyToRight(true);

    processAllExpressions(template);
}

From source file:org.exbin.deltahex.intellij.HexUndoIntelliJHandler.java

License:Apache License

@Override
public void clear() {
    documentReference = DocumentReferenceManager.getInstance().create(fileEditor.getVirtualFile());
    ((UndoManagerImpl) undoManager).invalidateActionsFor(documentReference);
    init();/*from ww  w . j  a v  a2 s.  c  om*/
}

From source file:org.jetbrains.android.AndroidResourceRenameResourceProcessor.java

License:Apache License

@Override
public void renameElement(PsiElement element, final String newName, UsageInfo[] usages,
        @Nullable RefactoringElementListener listener) throws IncorrectOperationException {
    if (element instanceof PsiField) {
        new RenameJavaVariableProcessor().renameElement(element, newName, usages, listener);
    } else {/*from  www  .j  a  v a  2 s .  c  o m*/
        if (element instanceof PsiNamedElement) {
            super.renameElement(element, newName, usages, listener);

            if (element instanceof PsiFile) {
                VirtualFile virtualFile = ((PsiFile) element).getVirtualFile();
                if (virtualFile != null && !LocalHistory.getInstance().isUnderControl(virtualFile)) {
                    DocumentReference ref = DocumentReferenceManager.getInstance().create(virtualFile);
                    UndoManager.getInstance(element.getProject()).nonundoableActionPerformed(ref, false);
                }
            }
        } else if (element instanceof XmlAttributeValue) {
            new RenameXmlAttributeProcessor().renameElement(element, newName, usages, listener);
        }
    }
}