Example usage for com.intellij.openapi.editor.actionSystem EditorActionHandler isEnabled

List of usage examples for com.intellij.openapi.editor.actionSystem EditorActionHandler isEnabled

Introduction

In this page you can find the example usage for com.intellij.openapi.editor.actionSystem EditorActionHandler isEnabled.

Prototype

@Deprecated
public boolean isEnabled(Editor editor, final DataContext dataContext) 

Source Link

Usage

From source file:com.intellij.codeInsight.intention.impl.QuickEditHandler.java

License:Apache License

QuickEditHandler(Project project, PsiFile injectedFile, final PsiFile origFile, Editor editor,
        QuickEditAction action) {//from w  w  w  . j  ava2  s. com
    myProject = project;
    myEditor = editor;
    myAction = action;
    myOrigDocument = editor.getDocument();
    final Place shreds = InjectedLanguageUtil.getShreds(injectedFile);
    final FileType fileType = injectedFile.getFileType();
    final Language language = injectedFile.getLanguage();

    final PsiFileFactory factory = PsiFileFactory.getInstance(project);
    final String text = InjectedLanguageManager.getInstance(project).getUnescapedText(injectedFile);
    final String newFileName = StringUtil.notNullize(language.getDisplayName(), "Injected") + " Fragment " + "("
            + origFile.getName() + ":" + shreds.get(0).getHost().getTextRange().getStartOffset() + ")" + "."
            + fileType.getDefaultExtension();
    myNewFile = factory.createFileFromText(newFileName, language, text, true, true);
    myNewVirtualFile = (LightVirtualFile) myNewFile.getVirtualFile();
    assert myNewVirtualFile != null;
    // suppress possible errors as in injected mode
    myNewFile.putUserData(InjectedLanguageUtil.FRANKENSTEIN_INJECTION,
            injectedFile.getUserData(InjectedLanguageUtil.FRANKENSTEIN_INJECTION));
    final SmartPointerManager smartPointerManager = SmartPointerManager.getInstance(project);
    myNewFile.putUserData(FileContextUtil.INJECTED_IN_ELEMENT,
            smartPointerManager.createSmartPsiElementPointer(origFile));
    myNewDocument = PsiDocumentManager.getInstance(project).getDocument(myNewFile);
    assert myNewDocument != null;
    EditorActionManager.getInstance().setReadonlyFragmentModificationHandler(myNewDocument,
            new MyQuietHandler());
    myOrigCreationStamp = myOrigDocument.getModificationStamp(); // store creation stamp for UNDO tracking
    myOrigDocument.addDocumentListener(this, this);
    myNewDocument.addDocumentListener(this, this);
    EditorFactory editorFactory = ObjectUtils.assertNotNull(EditorFactory.getInstance());
    // not FileEditorManager listener because of RegExp checker and alike
    editorFactory.addEditorFactoryListener(new EditorFactoryAdapter() {

        int myEditorCount;

        @Override
        public void editorCreated(@NotNull EditorFactoryEvent event) {
            if (event.getEditor().getDocument() != myNewDocument)
                return;
            myEditorCount++;
            final EditorActionHandler editorEscape = EditorActionManager.getInstance()
                    .getActionHandler(IdeActions.ACTION_EDITOR_ESCAPE);
            new AnAction() {
                @Override
                public void update(AnActionEvent e) {
                    Editor editor = PlatformDataKeys.EDITOR.getData(e.getDataContext());
                    e.getPresentation().setEnabled(editor != null
                            && LookupManager.getActiveLookup(editor) == null
                            && TemplateManager.getInstance(myProject).getActiveTemplate(editor) == null
                            && (editorEscape == null || !editorEscape.isEnabled(editor, e.getDataContext())));
                }

                @Override
                public void actionPerformed(AnActionEvent e) {
                    closeEditor();
                }
            }.registerCustomShortcutSet(CommonShortcuts.ESCAPE, event.getEditor().getContentComponent());
        }

        @Override
        public void editorReleased(@NotNull EditorFactoryEvent event) {
            if (event.getEditor().getDocument() != myNewDocument)
                return;
            if (--myEditorCount > 0)
                return;
            Disposer.dispose(QuickEditHandler.this);
        }
    }, this);

    if ("JAVA".equals(shreds.get(0).getHost().getLanguage().getID())) {
        myAltFullRange = myOrigDocument.createRangeMarker(shreds.get(0).getHostRangeMarker().getStartOffset(),
                shreds.get(shreds.size() - 1).getHostRangeMarker().getEndOffset());
        myAltFullRange.setGreedyToLeft(true);
        myAltFullRange.setGreedyToRight(true);

        initGuardedBlocks(shreds);
        myInjectedFile = null;
    } else {
        initMarkers(shreds);
        myAltFullRange = null;
        myInjectedFile = injectedFile;
    }
}

From source file:org.jetbrains.plugins.groovy.editor.HandlerUtils.java

License:Apache License

public static boolean isEnabled(@NotNull final Editor editor, @NotNull final DataContext dataContext,
        @Nullable final EditorActionHandler originalHandler) {
    final Project project = getProject(dataContext);
    if (project != null) {
        final Language language = PsiUtilBase.getLanguageInEditor(editor, project);
        if (language == GroovyFileType.GROOVY_LANGUAGE) {
            return true;
        }//from   w ww.  ja va  2 s  .co  m
    }

    return originalHandler == null || originalHandler.isEnabled(editor, dataContext);
}

From source file:org.jetbrains.plugins.ruby.ruby.actions.DataContextUtil.java

License:Apache License

/**
 * Returns true, if current editting File is Ruby type or if original handler is enabled
 *
 * @param editor          Current Editor object
 * @param dataContext     Current DataContext object
 * @param originalHandler Original handler for some action
 * @return true if enabled, false otherwise
 *///from w  ww.j  a  v a2  s  .com
public static boolean isEnabled(@NotNull final Editor editor, @NotNull final DataContext dataContext,
        @NotNull final EditorActionHandler originalHandler) {
    //noinspection SimplifiableIfStatement
    if (getLanguage(dataContext) == RubyFileType.INSTANCE.getLanguage()) {
        return true;
    }
    return originalHandler.isEnabled(editor, dataContext);
}

From source file:org.jetbrains.plugins.ruby.ruby.actions.editor.EditorActionTestCase.java

License:Apache License

protected void performAction() {
    final EditorActionHandler handler = createHandler();
    final DataContext dataContext = new RubyDataContext();
    Assert.assertTrue(handler.isEnabled(myEditor, dataContext));

    performAction(new Runnable() {
        public void run() {
            handler.execute(myEditor, dataContext);
        }/*w w  w  .  j a va 2 s  .  c o  m*/
    });
}