List of usage examples for com.intellij.openapi.editor.actionSystem EditorActionHandler isEnabled
@Deprecated public boolean isEnabled(Editor editor, final DataContext dataContext)
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*/ }); }