blob: 406885aeb7560c5c69f75c4f30da087469e75842 [file] [log] [blame]
package com.intellij.find.editorHeaderActions;
import com.intellij.find.EditorSearchComponent;
import com.intellij.find.FindManager;
import com.intellij.find.FindModel;
import com.intellij.find.FindUtil;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.IdeActions;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiDocumentManager;
/**
* Created by IntelliJ IDEA.
* User: zajac
* Date: 05.03.11
* Time: 10:53
* To change this template use File | Settings | File Templates.
*/
public class FindAllAction extends EditorHeaderAction implements DumbAware {
public FindAllAction(EditorSearchComponent editorSearchComponent) {
super(editorSearchComponent);
getTemplatePresentation().setIcon(AllIcons.Actions.Export);
getTemplatePresentation().setDescription("Export matches to Find tool window");
getTemplatePresentation().setText("Find All");
final AnAction findUsages = ActionManager.getInstance().getAction(IdeActions.ACTION_FIND_USAGES);
if (findUsages != null) {
registerCustomShortcutSet(findUsages.getShortcutSet(),
editorSearchComponent.getSearchField());
}
}
@Override
public void update(final AnActionEvent e) {
super.update(e);
Editor editor = getEditorSearchComponent().getEditor();
Project project = editor.getProject();
if (project != null) {
e.getPresentation().setEnabled(getEditorSearchComponent().hasMatches() &&
PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()) != null);
}
}
@Override
public void actionPerformed(final AnActionEvent e) {
Editor editor = getEditorSearchComponent().getEditor();
Project project = editor.getProject();
if (project != null && !project.isDisposed()) {
final FindModel model = FindManager.getInstance(project).getFindInFileModel();
final FindModel realModel = (FindModel)model.clone();
String text = getEditorSearchComponent().getTextInField();
if (StringUtil.isEmpty(text)) return;
realModel.setStringToFind(text);
FindUtil.findAllAndShow(project, editor, realModel);
}
}
}