modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
| 50 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/searchbar/EnhancedSearchBar.java
| 18 +++
2 files changed, 48 insertions(+), 20 deletions(-)
New commits:
commit 89dfcbe1aa23a4bb9a00a92fd4f681a96ffda196
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 21 16:18:08 2012 -0400
Update the handling of the hidden item when using the search bar. Make
sure to rename the top level filter item, and also to set the hidden value
in the keypress handler.
Also, start ignoring certain keys that are used for navigation but should
not affect/repopulate the picklist. Similarly, only invoke the returnKeyHandler
for "Enter".
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
index bfae537..2eea340 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
@@ -49,6 +49,7 @@ import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.events.DoubleClickEvent;
import com.smartgwt.client.widgets.events.DoubleClickHandler;
+import com.smartgwt.client.widgets.form.fields.ComboBoxItem;
import com.smartgwt.client.widgets.form.fields.FormItem;
import com.smartgwt.client.widgets.form.fields.HiddenItem;
import com.smartgwt.client.widgets.form.fields.SelectItem;
@@ -68,6 +69,7 @@ import com.smartgwt.client.widgets.layout.LayoutSpacer;
import com.smartgwt.client.widgets.menu.IMenuButton;
import com.smartgwt.client.widgets.menu.MenuItem;
import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent;
+
import org.rhq.core.domain.search.SearchSubsystem;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.InitializableView;
@@ -79,8 +81,15 @@ import org.rhq.enterprise.gui.coregui.client.util.CriteriaUtility;
import org.rhq.enterprise.gui.coregui.client.util.Log;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.*;
-
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIButton;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIMenuButton;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableListGrid;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableMenu;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableToolStrip;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
/**
* A tabular view of set of data records from an {@link RPCDataSource}.
@@ -301,8 +310,8 @@ public class Table<DS extends RPCDataSource> extends
LocatableHLayout implements
configureTableFilters();
} else {
if (!this.hideSearchBar) {
- final EnhancedSearchBarItem searchFilter = new
EnhancedSearchBarItem("search",
- getSearchSubsystem(), getInitialSearchBarSearchText());
+ final EnhancedSearchBarItem searchFilter = new
EnhancedSearchBarItem("search", getSearchSubsystem(),
+ getInitialSearchBarSearchText());
setFilterFormItems(searchFilter);
}
}
@@ -762,8 +771,7 @@ public class Table<DS extends RPCDataSource> extends
LocatableHLayout implements
final ListGrid listGrid = getListGrid();
Criteria criteria = getCurrentCriteria();
- Log.debug(getClass().getName() + ".refresh() using criteria [" +
CriteriaUtility.toString(criteria)
- + "]...");
+ Log.debug(getClass().getName() + ".refresh() using criteria [" +
CriteriaUtility.toString(criteria) + "]...");
listGrid.setCriteria(criteria);
if (resetPaging) {
@@ -1165,22 +1173,14 @@ public class Table<DS extends RPCDataSource> extends
LocatableHLayout implements
nextFormItem.addChangedHandler(this);
} else if (nextFormItem instanceof EnhancedSearchBarItem) {
searchBarItem = (EnhancedSearchBarItem) nextFormItem;
- //searchBarItem.getSearchBar().addKeyPressHandler(this);
searchBarItem.getSearchBar().getSearchComboboxItem().addKeyPressHandler(this);
- String name =
searchBarItem.getSearchBar().getSearchComboboxItem().getName();
- //@todo:FIXME!!
- ///////////////////////////////////////////////////////////
- // PROBLEM:
searchBarItem.getSearchBar().getSearchComboboxItem().getValueAsString()
- // is always null
- ///////////////////////////////////////////////////////////
- Log.debug(" ***** Found SearchBar2 with:
"+name+":"+searchBarItem.getSearchBar().getSearchComboboxItem().getValue());
+ String name = searchBarItem.getName();
// postfix the name of the item so it is not processed by the filters
and that the
// hidden item is used instead.
- searchBarItem.getSearchBar().getSearchComboboxItem().setName(name +
"_hidden");
+ searchBarItem.setName(name + "_hidden");
hiddenItem = new HiddenItem(name);
hiddenItem.setValue(searchBarItem.getSearchBar().getSearchComboboxItem().getValueAsString());
}
-
}
if (hiddenItem != null) {
@@ -1206,7 +1206,22 @@ public class Table<DS extends RPCDataSource> extends
LocatableHLayout implements
public void onKeyPress(KeyPressEvent event) {
if (event.getKeyName().equals("Enter")) {
Log.debug("Table.TableFilter Pressed Enter key");
- fetchFilteredTableData();
+
+ if (null != searchBarItem) {
+ ComboBoxItem comboBoxItem =
searchBarItem.getSearchBar().getSearchComboboxItem();
+ String searchBarValue = comboBoxItem.getValueAsString();
+ String hiddenValue = (String) hiddenItem.getValue();
+ Log.debug("Table.TableFilter searchBarValue :" +
searchBarValue + ", hiddenValue" + hiddenValue);
+
+ // Only send a fetch request if the user actually changed the search
expression.
+ if (!equals(searchBarValue, hiddenValue)) {
+ hiddenItem.setValue(searchBarValue);
+ Log.debug("Table.TableFilter fetchFilteredTableData");
+ fetchFilteredTableData();
+ }
+ } else {
+ fetchFilteredTableData();
+ }
}
}
@@ -1219,7 +1234,6 @@ public class Table<DS extends RPCDataSource> extends
LocatableHLayout implements
return super.getFields().length != 0;
}
-
private static boolean equals(String string1, String string2) {
if (string1 == null) {
return (string2 == null);
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 b4852d6..7303857 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
@@ -18,7 +18,9 @@
*/
package org.rhq.enterprise.gui.coregui.client.searchbar;
+import java.util.ArrayList;
import java.util.EnumMap;
+import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.TextMatchStyle;
@@ -69,6 +71,14 @@ public class EnhancedSearchBar extends ToolStrip {
private final SearchGWTServiceAsync searchService =
GWTServiceLookup.getSearchService();
+ private static final List IGNORED_KEYS;
+
+ static {
+ IGNORED_KEYS = new ArrayList(2);
+ IGNORED_KEYS.add("Arrow_Down");
+ IGNORED_KEYS.add("Arrow_Up");
+ }
+
enum SearchMode {
BASIC_SEARCH_MODE, SAVED_SEARCH_MODE
}
@@ -109,7 +119,6 @@ public class EnhancedSearchBar extends ToolStrip {
//we manually fetch each time we update the picklist values
searchComboboxItem.setAutoFetchData(false);
searchComboboxItem.setFetchDelay(300);
- searchComboboxItem.setCompleteOnTab(true);
pickListGrid = new ListGrid();
configureCommonHandlers();
@@ -124,10 +133,15 @@ public class EnhancedSearchBar extends ToolStrip {
public void onKeyUp(KeyUpEvent keyUpEvent) {
Log.debug("onKeyUp search Mode: " + searchMode);
- getSearchStrategy().searchKeyUpHandler(keyUpEvent);
+ if (IGNORED_KEYS.contains(keyUpEvent.getKeyName())) {
+ return;
+ }
+
if (keyUpEvent.getKeyName().equals("Enter")) {
getSearchStrategy().searchReturnKeyHandler(keyUpEvent);
searchComboboxItem.focusInItem();
+ } else {
+ getSearchStrategy().searchKeyUpHandler(keyUpEvent);
}
}
});
Show replies by date