summaryrefslogtreecommitdiff
path: root/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralSearchAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralSearchAction.java')
-rw-r--r--platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralSearchAction.java49
1 files changed, 49 insertions, 0 deletions
diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralSearchAction.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralSearchAction.java
new file mode 100644
index 000000000000..fdfccb951361
--- /dev/null
+++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralSearchAction.java
@@ -0,0 +1,49 @@
+package com.intellij.structuralsearch.plugin;
+
+import com.intellij.openapi.actionSystem.*;
+import com.intellij.openapi.project.Project;
+import com.intellij.structuralsearch.plugin.ui.Configuration;
+import com.intellij.structuralsearch.plugin.ui.SearchContext;
+import com.intellij.structuralsearch.plugin.ui.SearchDialog;
+
+public class StructuralSearchAction 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) {
+ //StructuralSearchPlugin.getInstance(searchContext.getProject());
+ final SearchDialog searchDialog = new SearchDialog(searchContext);
+
+ if (config!=null) {
+ searchDialog.setUseLastConfiguration(true);
+ searchDialog.setValuesFromConfig(config);
+ }
+
+ searchDialog.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.isDialogVisible()) {
+ presentation.setEnabled( false );
+ } else {
+ presentation.setEnabled( true );
+ }
+
+ super.update(event);
+ }
+
+}
+