modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/BasicSearchStrategy.java
| 18 +++++++++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/EnhancedSearchBar.java
| 4 +-
2 files changed, 19 insertions(+), 3 deletions(-)
New commits:
commit cd526ab09455a06b8b17c46fbd8597f42f3206e2
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 21 17:36:49 2012 -0400
- Add protection against duplicate search
- Add protecttion against obsolete search results
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/BasicSearchStrategy.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/BasicSearchStrategy.java
index 1e61737..cf40099 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/BasicSearchStrategy.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/BasicSearchStrategy.java
@@ -48,6 +48,8 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
*/
public class BasicSearchStrategy extends AbstractSearchStrategy {
+ private String lastExpression;
+
public BasicSearchStrategy(EnhancedSearchBar searchBar) {
super(searchBar);
}
@@ -169,7 +171,14 @@ public class BasicSearchStrategy extends AbstractSearchStrategy {
return 25;
}
- private void getTabAwareSearchSuggestions(SearchSubsystem searchSubsystem, String
expression, int caretPosition) {
+ private void getTabAwareSearchSuggestions(SearchSubsystem searchSubsystem, final
String expression,
+ int caretPosition) {
+
+ if (expression.equals(lastExpression)) {
+ Log.debug("search tab aware Suggestions: ignoring duplicate search for:
" + expression);
+ return;
+ }
+ lastExpression = expression;
final long suggestStart = System.currentTimeMillis();
@@ -178,6 +187,13 @@ public class BasicSearchStrategy extends AbstractSearchStrategy {
public void onSuccess(List<SearchSuggestion> results) {
ComboBoxItem comboBox = searchBar.getSearchComboboxItem();
+
+ // If the value has already changed assume a subsequent search is
what they want
+ if (!expression.equals(comboBox.getValueAsString())) {
+ Log.debug("search tab aware Suggestions: ignoring obsolete
results for: " + expression);
+ return;
+ }
+
DataSource ds = comboBox.getOptionDataSource();
if (null == ds) {
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/EnhancedSearchBar.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/EnhancedSearchBar.java
index 7303857..e793f9f 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/EnhancedSearchBar.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/EnhancedSearchBar.java
@@ -116,9 +116,9 @@ public class EnhancedSearchBar extends ToolStrip {
searchComboboxItem.setWidth(670);
searchComboboxItem.setBrowserSpellCheck(false);
- //we manually fetch each time we update the picklist values
+ //we manually fetch each time we update the picklist values. That makes the delay
setting meaningless.
searchComboboxItem.setAutoFetchData(false);
- searchComboboxItem.setFetchDelay(300);
+ searchComboboxItem.setFetchDelay(300); // I'm not sure if this has an affect
with no autoFetch
pickListGrid = new ListGrid();
configureCommonHandlers();
Show replies by date