Browse Source

ComboBox fixes: select newitem, entered item exists, etc issues

svn changeset:3218/svn branch:trunk
tags/6.7.0.beta1
Marc Englund 16 years ago
parent
commit
41cd4c7456

+ 21
- 17
src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java View File

@@ -354,27 +354,31 @@ public class IFilterSelect extends Composite implements Paintable,

public void doSelectedItemAction() {
final MenuItem item = getSelectedItem();
if (item != null
&& item.getText().toLowerCase().startsWith(
lastFilter.toLowerCase())) {
doItemAction(item, true);
} else if (allowNewItem) {
if (allowNewItem) {
final String newItemValue = tb.getText();
// check for exact match in menu
if (getItems().size() == 1) {
final MenuItem potentialExactMatch = (MenuItem) getItems()
.get(0);
if (potentialExactMatch.getText().equals(newItemValue)) {
selectItem(potentialExactMatch);
doSelectedItemAction();
return;
}
} else {
if (!newItemValue.equals("")) {
client.updateVariable(paintableId, "newitem",
newItemValue, true);
int p = getItems().size();
if (p > 0) {
for (int i = 0; i < p; i++) {
final MenuItem potentialExactMatch = (MenuItem) getItems()
.get(i);
if (potentialExactMatch.getText().equals(newItemValue)) {
selectItem(potentialExactMatch);
doItemAction(potentialExactMatch, true);
suggestionPopup.hide();
return;
}
}
}

if (!newItemValue.equals("")) {
client.updateVariable(paintableId, "newitem", newItemValue,
true);
}
} else if (item != null
&& item.getText().toLowerCase().startsWith(
lastFilter.toLowerCase())) {
doItemAction(item, true);
}
suggestionPopup.hide();
}

+ 1
- 1
src/com/itmill/toolkit/ui/Select.java View File

@@ -310,7 +310,7 @@ public class Select extends AbstractSelect implements AbstractSelect.Filtering {
}
setValue(newitem);
// rebuild list
filterstring = newitem;
filterstring = null;
prevfilterstring = null;
}
}

Loading…
Cancel
Save