You have to use KeyUp as mentioned before, because if you use KeyPress, the textbox still has its old value, in you case
filterText.getText().trim() = old value = "AAA" String matchThis = filterText.getText().trim() + event.getCharCode() = "AAAB" If you use KeyUp, you use the new value in the textbox. in this case String matchThis = filterText.getText().trim() = "B" On Sep 30, 12:56 pm, ThomasWrobel <[email protected]> wrote: > I'm a bit confused why you dont just search for the whole text from > the filterText every time a key is pressed. > Surely thats what your effectively doing anyway by getting the current > text and adding the new characters? > > Because the problem at the moment, if I'm understanding correctly, is > simply the filterText isnt being erased/reset when you want it to be. > > Remember you can also use onKeyUp to get the state after the key is > pressed and released. > > On Sep 30, 3:50 am, ojay <[email protected]> wrote: > > > Hi, > > > I have a textbox and a list of values in a listbox. Regarding of the > > input of the typed in value of the textbox the list will be filtered. > > I've managed this so far, but it's not working as expected. For > > example you typed in AAA then every value in the list which does not > > contain AAA will be removed. But when you mark all the AAA and type > > instead a B then my function will search for the string AAAB instead > > of only B. This happens because I am building this string on the > > keypresshandler, but if i do not build it like this I do not get > > actual textfield value and the new typed in character... > > > Does anybody understand my problem and have a suggestion ? > > > thanks > > > public void onKeyPress(KeyPressEvent event) { > > > filterFormList(filterText.getText().trim() + > > event.getCharCode()) > > > } > > > public void filterFormList(String matchThis){ > > > ArrayList<Integer> toDeleteList = new ArrayList<Integer>(); > > > for (int i = 0; i < formList.getItemCount(); i++){ > > System.out.println("checking if " + matchThis > > + " is found in " + > > formList.getItemText(i)); > > > formList.getItemText(i).contains(matchThis); > > > if (formList.getItemText(i).contains(matchThis)){ > > System.out.println("found it---adding index > > " + i + " to delete > > list"); > > toDeleteList.add(new Integer(i)); > > } > > else{ > > System.out.println("no match"); > > } > > } > > > for (Integer integer: toDeleteList){ > > System.out.println("removing item " + > > formList.getItemText > > (integer.intValue())); > > formList.removeItem(integer.intValue()); > > } > > > } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
