diff options
Diffstat (limited to 'platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java')
-rw-r--r-- | platform/structuralsearch/source/com/intellij/structuralsearch/plugin/StructuralReplaceAction.java | 50 |
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); + } +} + |