aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2007-11-29 07:21:03 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2007-11-29 07:21:03 +0000
commitf28318c002dc4ad62457c960a0b42620dcc0fd87 (patch)
tree66eb67b8854279d879fe1d2201a70dc9c85ab867 /src
parent38b6fa91ebcb6ba5fde4ef34a7d9bdfe539973b3 (diff)
downloadvaadin-framework-f28318c002dc4ad62457c960a0b42620dcc0fd87.tar.gz
vaadin-framework-f28318c002dc4ad62457c960a0b42620dcc0fd87.zip
fixes #1133
svn changeset:3029/svn branch:trunk
Diffstat (limited to 'src')
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java105
1 files changed, 60 insertions, 45 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java
index e208e91846..48991eec3b 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java
@@ -419,6 +419,7 @@ public class IFilterSelect extends Composite implements Paintable,
private int totalMatches;
private boolean allowNewItem;
private boolean nullSelectionAllowed;
+ private boolean enabled;
public IFilterSelect() {
selectedItemIcon.setVisible(false);
@@ -484,6 +485,14 @@ public class IFilterSelect extends Composite implements Paintable,
paintableId = uidl.getId();
this.client = client;
+ if (uidl.hasAttribute("disabled") || uidl.hasAttribute("readonly")) {
+ tb.setEnabled(false);
+ enabled = false;
+ } else {
+ tb.setEnabled(true);
+ enabled = true;
+ }
+
if (client.updateComponent(this, uidl, true)) {
return;
}
@@ -585,7 +594,7 @@ public class IFilterSelect extends Composite implements Paintable,
}
public void onKeyDown(Widget sender, char keyCode, int modifiers) {
- if (suggestionPopup.isAttached()) {
+ if (enabled && suggestionPopup.isAttached()) {
switch (keyCode) {
case KeyboardListener.KEY_DOWN:
suggestionPopup.selectNextItem();
@@ -618,26 +627,28 @@ public class IFilterSelect extends Composite implements Paintable,
}
public void onKeyUp(Widget sender, char keyCode, int modifiers) {
- switch (keyCode) {
- case KeyboardListener.KEY_ENTER:
- case KeyboardListener.KEY_TAB:
- ; // NOP
- break;
- case KeyboardListener.KEY_DOWN:
- case KeyboardListener.KEY_UP:
- case KeyboardListener.KEY_PAGEDOWN:
- case KeyboardListener.KEY_PAGEUP:
- if (suggestionPopup.isAttached()) {
+ if (enabled) {
+ switch (keyCode) {
+ case KeyboardListener.KEY_ENTER:
+ case KeyboardListener.KEY_TAB:
+ ; // NOP
break;
- } else {
- // open popup as from gadget
- filterOptions(0, "");
- tb.selectAll();
+ case KeyboardListener.KEY_DOWN:
+ case KeyboardListener.KEY_UP:
+ case KeyboardListener.KEY_PAGEDOWN:
+ case KeyboardListener.KEY_PAGEUP:
+ if (suggestionPopup.isAttached()) {
+ break;
+ } else {
+ // open popup as from gadget
+ filterOptions(0, "");
+ tb.selectAll();
+ break;
+ }
+ default:
+ filterOptions(currentPage);
break;
}
- default:
- filterOptions(currentPage);
- break;
}
}
@@ -645,39 +656,43 @@ public class IFilterSelect extends Composite implements Paintable,
* Listener for popupopener
*/
public void onClick(Widget sender) {
- // ask suggestionPopup if it was just closed, we are using GWT Popup's
- // auto close feature
- if (!suggestionPopup.isJustClosed()) {
- filterOptions(0, "");
- }
- DOM.eventPreventDefault(DOM.eventGetCurrentEvent());
- tb.selectAll();
- tb.setFocus(true);
+ if (enabled) {
+ // ask suggestionPopup if it was just closed, we are using GWT
+ // Popup's
+ // auto close feature
+ if (!suggestionPopup.isJustClosed()) {
+ filterOptions(0, "");
+ }
+ DOM.eventPreventDefault(DOM.eventGetCurrentEvent());
+ tb.selectAll();
+ tb.setFocus(true);
+
+ }
}
/*
* Calculate minumum width for FilterSelect textarea
*/
private native int minWidth(String captions) /*-{
- if(!captions || captions.length <= 0)
- return 0;
- captions = captions.split("|");
- var d = $wnd.document.createElement("div");
- var html = "";
- for(var i=0; i < captions.length; i++) {
- html += "<div>" + captions[i] + "</div>";
- // TODO apply same CSS classname as in suggestionmenu
- }
- d.style.position = "absolute";
- d.style.top = "0";
- d.style.left = "0";
- d.style.visibility = "hidden";
- d.innerHTML = html;
- $wnd.document.body.appendChild(d);
- var w = d.offsetWidth;
- $wnd.document.body.removeChild(d);
- return w;
- }-*/;
+ if(!captions || captions.length <= 0)
+ return 0;
+ captions = captions.split("|");
+ var d = $wnd.document.createElement("div");
+ var html = "";
+ for(var i=0; i < captions.length; i++) {
+ html += "<div>" + captions[i] + "</div>";
+ // TODO apply same CSS classname as in suggestionmenu
+ }
+ d.style.position = "absolute";
+ d.style.top = "0";
+ d.style.left = "0";
+ d.style.visibility = "hidden";
+ d.innerHTML = html;
+ $wnd.document.body.appendChild(d);
+ var w = d.offsetWidth;
+ $wnd.document.body.removeChild(d);
+ return w;
+ }-*/;
public void onFocus(Widget sender) {
// NOP