Hello,
I am trying to add a multiple selectItem in a listgrid where the user can edit and select multiple values from a valueMap: 2 values Europe and Asia (see pix attached: test_case0).
If the user selects both values in the selectItem picklist and if she edits again the selectItem,, she has now the choice between Europe and Asia and Europe,Asia (see pix attached: test_case)
I would have expected to have both values Europe and Asia selected but not this new third option...
Test case:
I derived the showcase code "edit by row" to provide you with a test case:
OnModuleLoad:
and the local datasource CountryXmlDS to run the test case:
and finally a test record country.data.xml
Any ideas?
smartGWT 2.4
Browser: Chrome
I am trying to add a multiple selectItem in a listgrid where the user can edit and select multiple values from a valueMap: 2 values Europe and Asia (see pix attached: test_case0).
If the user selects both values in the selectItem picklist and if she edits again the selectItem,, she has now the choice between Europe and Asia and Europe,Asia (see pix attached: test_case)
I would have expected to have both values Europe and Asia selected but not this new third option...
Test case:
I derived the showcase code "edit by row" to provide you with a test case:
OnModuleLoad:
Code:
public static enum Result {EUROPE, ASIA}; public void onModuleLoad() { DataSource worldDS = CountryXmlDS.getInstance(); final FilterBuilder filterBuilder = new FilterBuilder(); filterBuilder.setDataSource(worldDS); final ListGrid countryGrid = new ListGrid(); countryGrid.setWidth(550); countryGrid.setHeight(224); countryGrid.setDataSource(worldDS); countryGrid.setAutoFetchData(true); ListGridField continentField = new ListGridField("continent", "Continent"); continentField.setCanFilter(true); continentField.setMultiple(true); countryGrid.setFields(continentField); IButton filterButton = new IButton("Filter"); filterButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { countryGrid.filterData(filterBuilder.getCriteria()); } }); VStack vStack = new VStack(10); vStack.addMember(filterBuilder); vStack.addMember(filterButton); vStack.addMember(countryGrid); vStack.draw(); }
Code:
public class CountryXmlDS extends DataSource { private static CountryXmlDS instance = null; public static CountryXmlDS getInstance() { if (instance == null) { instance = new CountryXmlDS("countryDS"); } return instance; } public CountryXmlDS(String id) { setID(id); setRecordXPath("/List/country"); DataSourceIntegerField pkField = new DataSourceIntegerField("pk"); pkField.setHidden(true); pkField.setPrimaryKey(true); DataSourceTextField continentField = new DataSourceTextField("continent", "Continent"); HashMap<String, String> reportFormatMap = new HashMap<String, String>(); for (Result reportFormatEnumVal: Result.values()) reportFormatMap.put(reportFormatEnumVal.name(), reportFormatEnumVal.name()); continentField.setValueMap(reportFormatMap); continentField.setMultiple(true); continentField.setCanEdit(true); setFields(pkField, continentField); setDataURL("ds/test_data/country.data.xml"); setClientOnly(true); } }
Code:
<List> <country> <continent>Europe</continent> </country> </List>
smartGWT 2.4
Browser: Chrome