diff options
Diffstat (limited to 'platform/structuralsearch/source/com/intellij')
9 files changed, 50 insertions, 225 deletions
diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/DataProvider.java b/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/DataProvider.java deleted file mode 100644 index e7327fad7e5e..000000000000 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/DataProvider.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.intellij.structuralsearch.impl.matcher; - -import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.project.Project; - -/** - * Created by IntelliJ IDEA. - * User: maxim - * Date: 07.01.2004 - * Time: 1:06:51 - * To change this template use Options | File Templates. - */ -public interface DataProvider { - Editor getEditor(); - Project getProject(); -} diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/ui/ReplaceUsageViewContext.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/ui/ReplaceUsageViewContext.java index 6a0d352d3284..f5279e15026e 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/ui/ReplaceUsageViewContext.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/ui/ReplaceUsageViewContext.java @@ -44,13 +44,6 @@ class ReplaceUsageViewContext extends UsageViewContext { return command; } - protected String _getPresentableText() { - return SSRBundle.message("replaceusageview.text", - getConfiguration().getMatchOptions().getSearchPattern(), - ((ReplaceConfiguration)getConfiguration()).getOptions().getReplacement() - ); - } - public Replacer getReplacer() { return replacer; } diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/DialogBase.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/DialogBase.java deleted file mode 100644 index 83d93ba0d05c..000000000000 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/DialogBase.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.intellij.structuralsearch.plugin.ui; - -import com.intellij.openapi.MnemonicHelper; -import com.intellij.CommonBundle; - -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.awt.event.InputEvent; -import java.awt.*; - -import org.jetbrains.annotations.NonNls; - -/** - * Base dialog class - */ -public abstract class DialogBase extends JDialog { - private JButton ok; - private JButton cancel; - - private Action okAction; - private Action cancelAction; - private static Rectangle virtualBounds; - - class OkAction extends AbstractAction { - OkAction() { - putValue(NAME, CommonBundle.getOkButtonText()); - } - public void actionPerformed(ActionEvent e) { - doOKAction(); - } - } - - class CancelAction extends AbstractAction { - CancelAction() { - putValue(NAME,CommonBundle.getCancelButtonText()); - } - - public void actionPerformed(ActionEvent e) { - doCancelAction(); - } - } - - protected DialogBase() { - this(null); - } - - protected DialogBase(Frame frame) { - this(frame,true); - } - - protected DialogBase(Frame frame,boolean modal) { - super(frame,modal); - - new MnemonicHelper().register(getContentPane()); - - okAction = new OkAction(); - cancelAction = new CancelAction(); - - ok = createJButtonForAction(okAction); - cancel = createJButtonForAction(cancelAction); - - if (virtualBounds == null) { - GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); - GraphicsDevice[] gs = ge.getScreenDevices(); - virtualBounds = new Rectangle(); - - for (int j = 0; j < gs.length; j++) { - GraphicsDevice gd = gs[j]; - GraphicsConfiguration[] gc = gd.getConfigurations(); - - for (int i=0; i < gc.length; i++) { - virtualBounds = virtualBounds.union(gc[i].getBounds()); - } - } - } - - @NonNls String cancelCommandName = "close"; - KeyStroke escKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0); - ok.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(escKeyStroke, cancelCommandName); - ok.getActionMap().put(cancelCommandName, cancelAction); - - @NonNls String startCommandName = "start"; - KeyStroke enterKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,InputEvent.CTRL_MASK); - ok.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(enterKeyStroke, startCommandName); - ok.getActionMap().put(startCommandName, okAction); - } - - protected JButton getCancelButton() { - return cancel; - } - - protected JButton getOkButton() { - return ok; - } - - protected abstract JComponent createCenterPanel(); - - protected JComponent createSouthPanel() { - JPanel p = new JPanel( null ); - p.setLayout( new BoxLayout(p,BoxLayout.X_AXIS) ); - p.add(Box.createHorizontalGlue()); - p.add(getOkButton()); - p.add(getCancelButton()); - return p; - } - - public void init() { - getContentPane().setLayout(new BorderLayout()); - getContentPane().add(BorderLayout.CENTER,createCenterPanel()); - getContentPane().add(BorderLayout.SOUTH,createSouthPanel()); - pack(); - - Dimension dim = getPreferredSize(); - setLocation( - (int)(virtualBounds.getWidth()/2 - dim.getWidth()/2), - (int)(virtualBounds.getHeight()/2 - dim.getHeight()/2) - ); - } - - public void show() { - pack(); - super.show(); - } - - protected void doCancelAction() { - setVisible(false); - } - - protected void doOKAction() { - setVisible(false); - } - - protected void setOKActionEnabled(boolean b) { - okAction.setEnabled(b); - } - - protected void setOKButtonText(String text) { - okAction.putValue(Action.NAME,text); - } - - protected void setCancelButtonText(String text) { - cancelAction.putValue(Action.NAME,text); - } - - protected JButton createJButtonForAction(Action _action) { - JButton jb = new JButton( (String)_action.getValue(Action.NAME) ); - jb.setAction(_action); - - return jb; - } -} diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/EditVarConstraintsDialog.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/EditVarConstraintsDialog.java index f82ad12e5f4f..258aaf6b8ccc 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/EditVarConstraintsDialog.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/EditVarConstraintsDialog.java @@ -30,11 +30,13 @@ import com.intellij.structuralsearch.MatchVariableConstraint; import com.intellij.structuralsearch.NamedScriptableDefinition; import com.intellij.structuralsearch.ReplacementVariableDefinition; import com.intellij.structuralsearch.SSRBundle; +import com.intellij.structuralsearch.impl.matcher.CompiledPattern; import com.intellij.structuralsearch.impl.matcher.predicates.ScriptSupport; import com.intellij.structuralsearch.plugin.replace.ReplaceOptions; import com.intellij.structuralsearch.plugin.replace.ui.ReplaceConfiguration; import com.intellij.ui.ComboboxWithBrowseButton; import com.intellij.ui.EditorTextField; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -47,6 +49,7 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; +import java.util.Set; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; @@ -223,7 +226,10 @@ class EditVarConstraintsDialog extends DialogWrapper { customScriptCode.getButton().addActionListener(new ActionListener() { public void actionPerformed(@NotNull final ActionEvent e) { - final EditScriptDialog dialog = new EditScriptDialog(project, customScriptCode.getChildComponent().getText()); + Set<String> strings = ContainerUtil.collectSet(model.getConfig().getMatchOptions().getVariableConstraintNames()); + strings.remove(current.getName()); + strings.remove(CompiledPattern.ALL_CLASS_UNMATCHED_CONTENT_VAR_ARTIFICIAL_NAME); + EditScriptDialog dialog = new EditScriptDialog(project, customScriptCode.getChildComponent().getText(), strings); dialog.show(); if (dialog.getExitCode() == OK_EXIT_CODE) { customScriptCode.getChildComponent().setText(dialog.getScriptText()); @@ -585,11 +591,13 @@ class EditVarConstraintsDialog extends DialogWrapper { private static class EditScriptDialog extends DialogWrapper { private final Editor editor; + private final String title; - public EditScriptDialog(final Project project, String text) { + public EditScriptDialog(Project project, String text, Set<String> names) { super(project, true); setTitle(SSRBundle.message("edit.groovy.script.constraint.title")); editor = createEditor(project, text, "1.groovy"); + title = names.size() > 0 ? "Available variables: " + StringUtil.join(names, ", ") : ""; init(); } @@ -604,7 +612,15 @@ class EditVarConstraintsDialog extends DialogWrapper { } protected JComponent createCenterPanel() { - return editor.getComponent(); + JPanel panel = new JPanel(new BorderLayout()); + panel.add(editor.getComponent(), BorderLayout.CENTER); + if (!title.isEmpty()) { + JTextField f=new JTextField(title); + f.setEditable(false); + f.setBorder(null); + panel.add(f, BorderLayout.SOUTH); + } + return panel; } String getScriptText() { diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java index 8cb7e55ea290..80f0c7b8ce0d 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchCommand.java @@ -56,6 +56,7 @@ public class SearchCommand { } public void matchingFinished() { + if (project.isDisposed()) return; findEnded(); progress.setText(SSRBundle.message("found.progress.message", count)); } @@ -114,7 +115,7 @@ public class SearchCommand { new Runnable() { @Override public void run() { - NotificationGroup.toolWindowGroup("Structural Search", ToolWindowId.FIND, true) + NotificationGroup.toolWindowGroup("Structural Search", ToolWindowId.FIND) .createNotification(SSRBundle.message("problem", e.getMessage()), MessageType.ERROR).notify(project); } }, @@ -132,9 +133,7 @@ public class SearchCommand { } protected void findEnded() { - if (!project.isDisposed()) { - StructuralSearchPlugin.getInstance(project).setSearchInProgress(false); - } + StructuralSearchPlugin.getInstance(project).setSearchInProgress(false); } protected void foundUsage(MatchResult result, Usage usage) { diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchContext.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchContext.java index 62371e7e29d1..045c2749871c 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchContext.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchContext.java @@ -9,12 +9,11 @@ import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; -import com.intellij.structuralsearch.impl.matcher.DataProvider; /** * Context of the search to be done */ -public final class SearchContext implements DataProvider, Cloneable { +public final class SearchContext implements Cloneable { private final PsiFile file; private final Project project; diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java index a3bee702563e..3f89f11b9e6d 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/SearchDialog.java @@ -12,6 +12,7 @@ import com.intellij.lang.LanguageUtil; import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.command.WriteCommandAction; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.EditorFactory; @@ -90,8 +91,6 @@ public class SearchDialog extends DialogWrapper implements ConfigurationCreator private boolean useLastConfiguration; - private static boolean ourOpenInNewTab; - @NonNls private FileType ourFtSearchVariant = StructuralSearchUtil.getDefaultFileType(); private static Language ourDialect = null; private static String ourContext = null; @@ -184,7 +183,7 @@ public class SearchDialog extends DialogWrapper implements ConfigurationCreator try { new WriteAction(){ @Override - protected void run(Result result) throws Throwable { + protected void run(Result result) { if (!isValid()) { getOKAction().setEnabled(false); } @@ -195,8 +194,8 @@ public class SearchDialog extends DialogWrapper implements ConfigurationCreator } }.execute(); } - catch (Exception e) { - e.printStackTrace(); + catch (RuntimeException e) { + Logger.getInstance(SearchDialog.class).error(e); } } }, 500); @@ -498,7 +497,7 @@ public class SearchDialog extends DialogWrapper implements ConfigurationCreator final UsageViewContext context = createUsageViewContext(config); final UsageViewPresentation presentation = new UsageViewPresentation(); - presentation.setOpenInNewTab(openInNewTab.isSelected()); + presentation.setOpenInNewTab(FindSettings.getInstance().isShowResultsInSeparateView()); presentation.setScopeText(config.getMatchOptions().getScope().getDisplayName()); context.configure(presentation); @@ -635,7 +634,7 @@ public class SearchDialog extends DialogWrapper implements ConfigurationCreator JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); openInNewTab = new JCheckBox(FindBundle.message("find.open.in.new.tab.checkbox")); - openInNewTab.setSelected(ourOpenInNewTab); + openInNewTab.setSelected(FindSettings.getInstance().isShowResultsInSeparateView()); ToolWindow findWindow = ToolWindowManager.getInstance(searchContext.getProject()).getToolWindow(ToolWindowId.FIND); openInNewTab.setEnabled(findWindow != null && findWindow.isAvailable()); panel.add(openInNewTab, BorderLayout.EAST); @@ -868,8 +867,9 @@ public class SearchDialog extends DialogWrapper implements ConfigurationCreator super.doOKAction(); if (!myRunFindActionOnClose) return; - FindSettings.getInstance().setDefaultScopeName(selectedScope.getDisplayName()); - ourOpenInNewTab = openInNewTab.isSelected(); + final FindSettings findSettings = FindSettings.getInstance(); + findSettings.setDefaultScopeName(selectedScope.getDisplayName()); + findSettings.setShowResultsInSeparateView(openInNewTab.isSelected()); try { if (model.getShadowConfig() != null) { diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UIUtil.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UIUtil.java index e2c16bfbc355..7521b9bbc014 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UIUtil.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UIUtil.java @@ -3,7 +3,6 @@ package com.intellij.structuralsearch.plugin.ui; import com.intellij.codeInsight.hint.TooltipController; import com.intellij.codeInsight.hint.TooltipGroup; import com.intellij.codeInsight.template.TemplateContextType; -import com.intellij.codeInsight.template.impl.TemplateContext; import com.intellij.codeInsight.template.impl.TemplateEditorUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; @@ -77,12 +76,8 @@ public class UIUtil { else { ((EditorEx)editor).setEmbeddedIntoDialogWrapper(true); } - - if (contextType != null) { - TemplateContext context = new TemplateContext(); - context.setEnabled(contextType, true); - TemplateEditorUtil.setHighlighter(editor, context); - } + + TemplateEditorUtil.setHighlighter(editor, contextType); if (addToolTipForVariableHandler) { SubstitutionShortInfoHandler handler = new SubstitutionShortInfoHandler(editor); @@ -222,11 +217,6 @@ public class UIUtil { } public static void updateHighlighter(Editor editor, StructuralSearchProfile profile) { - final TemplateContextType contextType = profile.getTemplateContextType(); - if (contextType != null) { - TemplateContext context = new TemplateContext(); - context.setEnabled(contextType, true); - TemplateEditorUtil.setHighlighter(editor, context); - } + TemplateEditorUtil.setHighlighter(editor, profile.getTemplateContextType()); } } diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UsageViewContext.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UsageViewContext.java index a55a16d4c379..e492906f0d4f 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UsageViewContext.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/ui/UsageViewContext.java @@ -8,9 +8,13 @@ import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; +import com.intellij.structuralsearch.MatchOptions; import com.intellij.structuralsearch.SSRBundle; import com.intellij.structuralsearch.plugin.replace.ui.ReplaceCommand; -import com.intellij.usages.*; +import com.intellij.usages.ConfigurableUsageTarget; +import com.intellij.usages.Usage; +import com.intellij.usages.UsageView; +import com.intellij.usages.UsageViewPresentation; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -61,20 +65,15 @@ public class UsageViewContext { return new SearchCommand(mySearchContext.getProject(), this); } - protected String _getPresentableText() { - return myConfiguration.getMatchOptions().getSearchPattern(); - } - - public UsageTarget getTarget() { - return new MyUsageTarget(_getPresentableText()); + public ConfigurableUsageTarget getTarget() { + return new MyUsageTarget(); } public void configure(@NotNull UsageViewPresentation presentation) { - String s = _getPresentableText(); - if (s.length() > 15) s = s.substring(0,15) + "..."; - final String usagesString = SSRBundle.message("occurrences.of", s); - presentation.setUsagesString(usagesString); - presentation.setTabText(StringUtil.capitalize(usagesString)); + final String pattern = myConfiguration.getMatchOptions().getSearchPattern(); + final String usagesString = SSRBundle.message("occurrences.of", StringUtil.shortenTextWithEllipsis(pattern, 50, 0, true)); + presentation.setUsagesString(SSRBundle.message("occurrences.of", pattern)); + presentation.setTabText(usagesString); presentation.setUsagesWord(SSRBundle.message("occurrence")); presentation.setCodeUsagesString(SSRBundle.message("found.occurrences")); } @@ -82,15 +81,12 @@ public class UsageViewContext { protected void configureActions() {} private class MyUsageTarget implements ConfigurableUsageTarget,ItemPresentation { - private final String myPresentableText; - - MyUsageTarget(String str) { - myPresentableText = str; - } + @NotNull @Override public String getPresentableText() { - return myPresentableText; + final MatchOptions matchOptions = myConfiguration.getMatchOptions(); + return SSRBundle.message("occurrences.of.0.in.1", matchOptions.getSearchPattern(), matchOptions.getScope().getDisplayName()); } @Override @@ -177,7 +173,7 @@ public class UsageViewContext { @NotNull @Override public String getLongDescriptiveName() { - return _getPresentableText(); + return getPresentableText(); } } } |