From 520490ce09ac76e20c98c1890d35c9867988c7ef Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 5 Dec 2011 21:43:47 +0100 Subject: [PATCH] plugins: highlight search in change log also; search also by substring in description (roma) (cherry picked from commit e79268cf8c49fac0b0a8bdf2d1c103a5d802bceb) --- .../ide/plugins/PluginManagerMain.java | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java index 3a51ce366750..4e2f4395a292 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java @@ -40,6 +40,7 @@ import com.intellij.util.concurrency.SwingWorker; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.update.UiNotifyConnector; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -310,9 +311,9 @@ public abstract class PluginManagerMain implements Disposable { requireShutdown = false; } - private static void setTextValue(String val, JEditorPane pane) { + private static void setTextValue(@Nullable String val, String filter, JEditorPane pane) { if (val != null) { - pane.setText(TEXT_PREFIX + val.trim() + TEXT_SUFIX); + pane.setText(SearchUtil.markup(TEXT_PREFIX + val + TEXT_SUFIX, filter).trim()); pane.setCaretPosition(0); } else { @@ -324,11 +325,7 @@ public abstract class PluginManagerMain implements Disposable { if (plugin instanceof IdeaPluginDescriptor) { IdeaPluginDescriptor pluginDescriptor = (IdeaPluginDescriptor)plugin; - String description = pluginDescriptor.getDescription(); - if (description != null) { - description = SearchUtil.markup(description, filter); - } String changeNotes = pluginDescriptor.getChangeNotes(); if (!StringUtil.isEmpty(changeNotes)) { description += "

Change Notes

"; @@ -370,11 +367,10 @@ public abstract class PluginManagerMain implements Disposable { } } - - setTextValue(description, descriptionTextArea); + setTextValue(description, filter, descriptionTextArea); } else { - setTextValue(null, descriptionTextArea); + setTextValue(null, filter, descriptionTextArea); } } @@ -459,23 +455,20 @@ public abstract class PluginManagerMain implements Disposable { Set search, IdeaPluginDescriptor descriptor) { if (StringUtil.isEmpty(filter)) return true; - if (descriptor.getName().toLowerCase().contains(filter)) { - return true; - } - if (isAccepted(search, descriptor.getName())) { + if (isAccepted(search, filter, descriptor.getName())) { return true; } else { final String description = descriptor.getDescription(); - if (description != null && isAccepted(search, description)) { + if (description != null && isAccepted(search, filter, description)) { return true; } final String category = descriptor.getCategory(); - if (category != null && isAccepted(search, category)) { + if (category != null && isAccepted(search, filter, category)) { return true; } final String changeNotes = descriptor.getChangeNotes(); - if (changeNotes != null && isAccepted(search, changeNotes)) { + if (changeNotes != null && isAccepted(search, filter, changeNotes)) { return true; } } @@ -483,7 +476,9 @@ public abstract class PluginManagerMain implements Disposable { } private static boolean isAccepted(final Set search, - final String description) { + @NotNull final String filter, + @NotNull final String description) { + if (StringUtil.containsIgnoreCase(description, filter)) return true; final SearchableOptionsRegistrar optionsRegistrar = SearchableOptionsRegistrar.getInstance(); final HashSet descriptionSet = new HashSet(search); descriptionSet.removeAll(optionsRegistrar.getProcessedWords(description));