diff --git a/editor_basics/resources/META-INF/plugin.xml b/editor_basics/resources/META-INF/plugin.xml index c919b7e3d..c2a0976f2 100644 --- a/editor_basics/resources/META-INF/plugin.xml +++ b/editor_basics/resources/META-INF/plugin.xml @@ -29,6 +29,10 @@ description="Illustrates how to plug an action in"> + + + \ No newline at end of file diff --git a/editor_basics/src/org/jetbrains/plugins/editor/basics/EditorHandlerIllustration.java b/editor_basics/src/org/jetbrains/plugins/editor/basics/EditorHandlerIllustration.java new file mode 100644 index 000000000..ae2917bd7 --- /dev/null +++ b/editor_basics/src/org/jetbrains/plugins/editor/basics/EditorHandlerIllustration.java @@ -0,0 +1,31 @@ +package org.jetbrains.plugins.editor.basics; + +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.actionSystem.IdeActions; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.actionSystem.EditorActionHandler; +import com.intellij.openapi.editor.actionSystem.EditorActionManager; +import com.intellij.openapi.project.Project; + +/** + * @author Anna Bulenkova + */ +public class EditorHandlerIllustration extends AnAction { + @Override + public void actionPerformed(AnActionEvent anActionEvent) { + final Editor editor = anActionEvent.getRequiredData(CommonDataKeys.EDITOR); + EditorActionManager actionManager = EditorActionManager.getInstance(); + //Insert one more caret below the active caret + EditorActionHandler actionHandler = actionManager.getActionHandler(IdeActions.ACTION_EDITOR_CLONE_CARET_BELOW); + actionHandler.execute(editor, editor.getCaretModel().getCurrentCaret(), anActionEvent.getDataContext()); + } + @Override + public void update(final AnActionEvent e) { + //Set visible if at least one caret is available + final Project project = e.getData(CommonDataKeys.PROJECT); + final Editor editor = e.getData(CommonDataKeys.EDITOR); + e.getPresentation().setVisible((project != null && editor != null && !editor.getCaretModel().getAllCarets().isEmpty())); + } +}