Hello, first of all I've been searching in the web for some time now and found no real helping results, other than a similar situation in GXT 2.
I'm using GXT 3.1.1, and here's the situation:
On a window, I have 3 comboboxes, their stores are populated when the window is created and two of the comboboxes are filtered according to the value selected on the first one.
So, on the first I add:

Code:
// this listener handles selection
        this.getCmbServicios().addSelectionHandler(new SelectionHandler<M_Data>() 
        {
            @Override
            public void onSelection(SelectionEvent<M_Data> event) 
            {
                getCmbServicios().setValue(event.getSelectedItem());
                cmbServiciosChange(event.getSelectedItem());
            }
        });


        // this listener handles the value change
        this.getCmbServicios().addComboValueChangeHandler(new ValueChangeHandler<M_Data>() 
        {
            @Override
            public void onValueChange(ValueChangeEvent<M_Data> event) 
            {
                cmbServiciosChange(event.getValue());
            }
        });
This allows me to call this method on any of the events, where I clear the filters and create new ones based on the value that has the first combobox:

Code:
public void cmbServiciosChange(final M_Data valor)
    {
        this.getCmbItems().clear();


        this.getCmbItems().getStore().addFilter(new Store.StoreFilter<M_Data>() 
        {
            @Override
            public boolean select(Store<M_Data> store, M_Data parent, M_Data item) 
            {
                if(item.getValueInteger(3) == valor.getValueInteger(1))
                {
                    return true;
                }
                return false;
            }
        });
        
        // filtro de exenciones
        this.getCmbExenciones().clear();
        
        this.getCmbExenciones().getStore().addFilter(new Store.StoreFilter<M_Data>() 
        {
            @Override
            public boolean select(Store<M_Data> store, M_Data parent, M_Data item) 
            {
                // coserdest - coser
                if(item.getValueInteger(3) == valor.getValueInteger(1))
                {
                    return true;
                }
                return false;
            }
        });
}
So far, this works just fine. I populate the comboboxes and the filter applies on the other comboboxes when I select the options. This way, I avoid to make a request and access DB every time the first combo changes value.
But, since this is a CRUD window, some times I need to give values to all the fields from an existing object. Is in this case that the problem arises: on opening the window the combos populate correctly, I have a Timer that waits until the comboboxes are loaded and then sets the values retrieved from the DB to the field. In this case, the first combobox value is set and displayed correctly, but the other comboboxes are not.

I added a listener to the second combobox so the value is not set until the filter is applied:

Code:
getCmbItems().getStore().addStoreFilterHandler(new StoreFilterHandler<M_Data>() 
        {
            @Override
            public void onFilter(StoreFilterEvent<M_Data> event) 
            {
                filtrado = true;                
            }
        });
And have a timer that waits to variable "filtrado" to be true:

Code:
Timer t = new Timer() 
        {
            @Override
            public void run() 
            {
                if(filtrado)
                {
                    getCmbItems()        .setValue(aux.getValueInteger(4));
                    getCantidad()        .setValue(aux.getValueDouble(5));
                    getfIniServ()        .setValue(aux.getValueDate(8));
                    getfFinServ()        .setValue(aux.getValueDate(9));
                    // si hay exencin
                    if(aux.getValueInteger(10) > 0)
                    {
                        getCmbExenciones().setValue(aux.getValueInteger(10));
                        getfIniExenc()    .setValue(aux.getValueDate(12));
                        getfFinExenc()    .setValue(aux.getValueDate(13));
                    }


                    this.cancel();
                }
            }
        };
        t.scheduleRepeating(100);
This works but in a strange way: the values are set if I expand the dropdown list of the combo, via mouse or focus + down key. Is this the correct behaviour? I mean, I read in a post referring to GXT 2 (sorry, I dont have the link) that it could happen, but I do not know or couldn't find anywhere if this is intended to be like this nowadays.

FIY: M_Data is a custom class with the data, working correctly.

I would really appreciate any help, correction, tip or whatever you could help me with.
Thanks in advance

Esteban.