diff options
Diffstat (limited to 'plugins/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java')
-rw-r--r-- | plugins/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/plugins/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java b/plugins/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java deleted file mode 100644 index 7c51fa85af3b..000000000000 --- a/plugins/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.intellij.structuralsearch.plugin.ui; - -import com.intellij.notification.NotificationGroup; -import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.progress.ProgressIndicator; -import com.intellij.openapi.progress.ProgressManager; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.MessageType; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.wm.ToolWindowId; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiFile; -import com.intellij.psi.PsiNameIdentifierOwner; -import com.intellij.structuralsearch.*; -import com.intellij.structuralsearch.impl.matcher.MatchResultImpl; -import com.intellij.structuralsearch.plugin.StructuralSearchPlugin; -import com.intellij.structuralsearch.plugin.ui.actions.DoSearchAction; -import com.intellij.usageView.UsageInfo; -import com.intellij.usages.Usage; -import com.intellij.usages.UsageInfo2UsageAdapter; -import com.intellij.util.Alarm; -import com.intellij.util.ObjectUtils; -import com.intellij.util.Processor; - -/** - * Created by IntelliJ IDEA. - * User: Maxim.Mossienko - * Date: Mar 15, 2004 - * Time: 4:49:07 PM - * To change this template use File | Settings | File Templates. - */ -public class SearchCommand { - protected UsageViewContext context; - private MatchingProcess process; - protected Project project; - - public SearchCommand(Project _project, UsageViewContext _context) { - project = _project; - context = _context; - } - - public void findUsages(final Processor<Usage> processor) { - final ProgressIndicator progress = ProgressManager.getInstance().getProgressIndicator(); - - try { - DoSearchAction.execute( - project, - new MatchResultSink() { - int count; - - public void setMatchingProcess(MatchingProcess _process) { - process = _process; - findStarted(); - } - - public void processFile(PsiFile element) { - final VirtualFile virtualFile = element.getVirtualFile(); - if (virtualFile != null) - progress.setText(SSRBundle.message("looking.in.progress.message", virtualFile.getPresentableName())); - } - - public void matchingFinished() { - findEnded(); - progress.setText(SSRBundle.message("found.progress.message", count)); - } - - public ProgressIndicator getProgressIndicator() { - return progress; - } - - public void newMatch(MatchResult result) { - UsageInfo info; - - if (MatchResult.MULTI_LINE_MATCH.equals(result.getName())) { - int start = -1; - int end = -1; - PsiElement parent = result.getMatchRef().getElement().getParent(); - - for (final MatchResult matchResult : ((MatchResultImpl)result).getMatches()) { - PsiElement el = matchResult.getMatchRef().getElement(); - final int elementStart = el.getTextRange().getStartOffset(); - - if (start == -1 || start > elementStart) { - start = elementStart; - } - final int newend = elementStart + el.getTextLength(); - - if (newend > end) { - end = newend; - } - } - - final int parentStart = parent.getTextRange().getStartOffset(); - int startOffset = start - parentStart; - info = new UsageInfo(parent, startOffset, end - parentStart); - } - else { - PsiElement element = result.getMatch(); - if (element instanceof PsiNameIdentifierOwner) { - element = ObjectUtils.notNull(((PsiNameIdentifierOwner)element).getNameIdentifier(), element); - } - info = new UsageInfo(element, result.getStart(), result.getEnd() == -1 ? element.getTextLength() : result.getEnd()); - } - - Usage usage = new UsageInfo2UsageAdapter(info); - processor.process(usage); - foundUsage(result, usage); - ++count; - } - }, - context.getConfiguration() - ); - } - catch (final StructuralSearchException e) { - final Alarm alarm = new Alarm(); - alarm.addRequest( - new Runnable() { - @Override - public void run() { - NotificationGroup.toolWindowGroup("Structural Search", ToolWindowId.FIND, true) - .createNotification(SSRBundle.message("problem", e.getMessage()), MessageType.ERROR).notify(project); - } - }, - 100, ModalityState.NON_MODAL - ); - } - } - - public void stopAsyncSearch() { - if (process!=null) process.stop(); - } - - protected void findStarted() { - StructuralSearchPlugin.getInstance(project).setSearchInProgress(true); - } - - protected void findEnded() { - if (!project.isDisposed()) { - StructuralSearchPlugin.getInstance(project).setSearchInProgress(false); - } - } - - protected void foundUsage(MatchResult result, Usage usage) { - } -} |