ComboBox: TestEditor to ListView binding
Kirill Kirichenko
kirill.kirichenko at oracle.com
Fri Jul 4 21:48:08 UTC 2014
I'm implementing a searchbox.
In the textfield of the combobox I'm typing a search string.
textProperty of the editor has an onChange listener which forms a list
of strings that contain the text as a substring. Then I set this list of
strings as a content of the drop down list of the combobox.
The problem is when I start selecting items in the drop down list the
editor field gets updated making new substring search and updating the
list again.
I want to break this dependency. I don't want to update the text
property when I select an item in the drop down list OR I want to
distinguish in the textProperty listener what caused that event - real
editing the field or setting the field trough binding from the list view.
I hope I could make myself clear.
K
On 05.07.2014 01:21, Stephen F Northover wrote:
> Hi Kirill,
>
> What exactly are you trying to do? The following (crap) listens for the
> value to change and then sets it back:
>
> ChangeListener<String> l = new ChangeListener<String> () {
> public void changed(ObservableValue observable, String
> oldValue,
> String newValue) {
> System.out.println("attempt to set new value: " +
> newValue);
> Platform.runLater(() -> {
> comboBox3.valueProperty().removeListener(this);
> System.out.println("restoring old value: " +
> newValue);
> comboBox3.setValue(oldValue);
> comboBox3.valueProperty().addListener(this);
> });
> };
> };
> comboBox3.valueProperty().addListener(l);
>
> This is not good code because it adds and removes a listener to avoid
> notification when the value is reset. It uses runLater() in order to
> stop the combo box from getting confused when the value is changed from
> within a changed listener.
>
> Steve
>
>
> On 2014-07-04, 3:09 PM, Kirill Kirichenko wrote:
>> JavaFX ComboBox has binding between TextEdit field and the ListView
>> selection such that edit field gets updated when we change the
>> selected item in the drop down list.
>> Is there a way to break this binding - when we select an item in the
>> list the editor field remains untouched. Where should I look at ?
>>
>>
>> Thanks.
>> K
>
More information about the openjfx-dev
mailing list