Hi all,
I created a grouped Multi SelectItem which worked and looked fine. However, I want a user to be able to select all /deselect all also in collapsed groups once he/she clicks on the SelectItem grid's header checkbox.
My idea is to expand all the groups once the user clicks on the header checkbox and depending the records' selection state I fire either a deselectAll or selectAllRecords on all groups' records.
However I can’t access the select Item’s groups. In the code below I experimented with the picklistProperties ListGrid (since it's the same ListGrid I used to set the SelectItem's groups) in the HeaderClickHandler with getGroupTree().openAll () but it is always null.
Am I missing out something? Please look at my code and provide me with clues on how I can achieve “select all/deselect all" on all records (including collapsed groups) of a grouped multi SelectItem
Thanks
I created a grouped Multi SelectItem which worked and looked fine. However, I want a user to be able to select all /deselect all also in collapsed groups once he/she clicks on the SelectItem grid's header checkbox.
My idea is to expand all the groups once the user clicks on the header checkbox and depending the records' selection state I fire either a deselectAll or selectAllRecords on all groups' records.
However I can’t access the select Item’s groups. In the code below I experimented with the picklistProperties ListGrid (since it's the same ListGrid I used to set the SelectItem's groups) in the HeaderClickHandler with getGroupTree().openAll () but it is always null.
Am I missing out something? Please look at my code and provide me with clues on how I can achieve “select all/deselect all" on all records (including collapsed groups) of a grouped multi SelectItem
Thanks
Code:
private static FormItem createGroupedSelectItem() { final SelectItem item = new SelectItem(); // field left out item.setPickListFields(new ListGridField("name"), new ListGridField("type")); item.setPickListWidth(400); item.setAllowEmptyValue(false); item.setMultiple(true); item.setDisplayField("name"); final ListGrid picklistProperties = new ListGrid() { { setGroupByField("type"); setShowFilterEditor(true); setBackgroundColor("white"); setSort(new SortSpecifier[] { new SortSpecifier("type", SortDirection.ASCENDING), new SortSpecifier("name", SortDirection.ASCENDING) }); } }; picklistProperties.addHeaderClickHandler(new HeaderClickHandler() { @Override public void onHeaderClick(HeaderClickEvent event) { if (event.getFieldNum() == 0) { item.getClientPickListData(); if (picklistProperties.getSelectedRecord() != null) { picklistProperties.getGroupTree().openAll(); picklistProperties.deselectAllRecords(); } } } }); item.setPickListProperties(picklistProperties); return item; }
Comment