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

ListGrid not honoring single selection on record collapse

$
0
0
sgwt: 5.0p
sc: v10.0p_2014-11-30
ff 26

Multiple records (up to 3) are remaining selected on the list grid.
To reproduce: click the record expansion icon of a record then click the record expansion icon of another record. Repeat as necessary.

Code:

public void onModuleLoad() {
      new ListGrid() {
                private DynamicForm form;
                    @Override
                    protected Canvas getExpansionComponent(final ListGridRecord record) {
                            return new VLayout(4) {{
                                    form = new DynamicForm() {{
                                            setDataSource(new ClientOnlyDataSource(new Record[]{record}, new DataSourceTextField("id"){{
                                                        setPrimaryKey(true);
                                        }}));
                                    }};
                                    form.editRecord(record);
                                    addMember(form);
                            }};
                    }
                    {
                            setWidth100();
                            setHeight100();
                            setCanExpandRecords(true);
                            setCanExpandMultipleRecords(false);
                            addRecordCollapseHandler(new RecordCollapseHandler() {
                                @Override
                                public void onRecordCollapse(RecordCollapseEvent event) {
                                        Record record = event.getRecord();
                                        Record record0 = form.getValuesAsRecord();
                                        List<String> properties = new ArrayList<String>(Arrays.asList(record0.getAttributes()));
                                        Record.copyAttributesInto(record, record0, properties.toArray(new String[properties.size()]));
                                }
                        });
                            setFields(new ListGridField("id"));
                        ListGridRecord[] records = new ListGridRecord[5];
                            for (int i = 0; i < 5; ++i) {
                                    records[i] = new ListGridRecord();
                                    records[i].setAttribute("id", i);
                            };
                            setData(records);
                    }
        }.show();
}


Thank you.

Viewing all articles
Browse latest Browse all 4756

Trending Articles