summaryrefslogtreecommitdiff
path: root/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java')
-rw-r--r--platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java
new file mode 100644
index 000000000000..974d04a2b621
--- /dev/null
+++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java
@@ -0,0 +1,50 @@
+package com.intellij.structuralsearch.plugin;
+
+import com.intellij.openapi.actionSystem.*;
+import com.intellij.openapi.project.Project;
+import com.intellij.structuralsearch.plugin.replace.ui.ReplaceDialog;
+import com.intellij.structuralsearch.plugin.ui.Configuration;
+import com.intellij.structuralsearch.plugin.ui.SearchContext;
+
+/**
+ * Search and replace structural java code patterns action.
+ */
+public class StructuralReplaceAction extends AnAction {
+
+ /** Handles IDEA action event
+ * @param event the event of action
+ */
+ public void actionPerformed(AnActionEvent event) {
+ triggerAction(null, SearchContext.buildFromDataContext(event.getDataContext()));
+ }
+
+ public static void triggerAction(Configuration config, SearchContext searchContext) {
+ ReplaceDialog replaceDialog = new ReplaceDialog(searchContext);
+
+ if (config!=null) {
+ replaceDialog.setUseLastConfiguration(true);
+ replaceDialog.setValuesFromConfig(config);
+ }
+
+ replaceDialog.show();
+ }
+
+ /** Updates the state of the action
+ * @param event the action event
+ */
+ public void update(AnActionEvent event) {
+ final Presentation presentation = event.getPresentation();
+ final DataContext context = event.getDataContext();
+ final Project project = CommonDataKeys.PROJECT.getData(context);
+ final StructuralSearchPlugin plugin = (project == null)? null:StructuralSearchPlugin.getInstance( project );
+
+ if (plugin== null || plugin.isSearchInProgress() || plugin.isReplaceInProgress() || plugin.isDialogVisible()) {
+ presentation.setEnabled( false );
+ } else {
+ presentation.setEnabled( true );
+ }
+
+ super.update(event);
+ }
+}
+