Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

ListGrid autofit problem in 5.0p and GWT 2.7

$
0
0
I have problem after updating Smartgwt from 4.1p to 5.0p_2015_02_25 in last versions of FF, IE and Chrome

If I load ListGrid data from datasource, the autofit not succeed in first load.
On the second load the autofit works OK.

Here is small example:
If you click first time to "Set data" button, the autofit does not work. On second click it is OK.

Code:

package x.y.z;

import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.AutoFitWidthApproach;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.VLayout;


public class LGTest implements EntryPoint{

        @Override
        public void onModuleLoad() {
                final ListGrid lg = new ListGrid();
                lg.setDataSource(new TestDS());
                lg.setAutoFitFieldWidths(true);
                lg.setAutoFitExpandField("f3");
                lg.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
                lg.setWidth100();
                lg.setHeight100();
                lg.setData(new ListGridRecord[]{});

                IButton btSetData = new IButton("Set data", new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                                lg.invalidateCache();
                                lg.fetchData();
                        }
                });

                VLayout vl = new VLayout();
                vl.addMember(lg);
                vl.addMember(btSetData);
                vl.setWidth100();
                vl.setHeight100();
                vl.draw();
        }

        public class TestDS extends DataSource {

                public TestDS() {
                        setFields(new DataSourceTextField[]{
                                        new DataSourceTextField("f1", "field 123"),
                                        new DataSourceTextField("f2", "field xyz"),
                                        new DataSourceTextField("f3", " ")
                        });

                        setTestData(getData());
                        setClientOnly(true);
                }
        }

        protected ListGridRecord[] getData() {
                ListGridRecord[] recs = new ListGridRecord[10];
                for (int i = 0; i< recs.length; i++) {
                        recs[i] = new ListGridRecord();
                        recs[i].setAttribute("f1", "ListGridField_1_ListGridRow_" + i);
                        recs[i].setAttribute("f2", "ListGridField_2_ListGridRow_" + i);
                }
                return recs;
        }
}

Thanks Pavel

Viewing all articles
Browse latest Browse all 4756

Trending Articles