Hello Isomorphic,
I have a question regarding Value icons in listgrid field.
When a field 'bool 'of type BOOLEAN has value icons defined as such:
and the grid has records with the field 'bool' being populated with "true"/"false" or left empty, the value icons do not show for the empty cells.
Now I do realise, that there is no actual "null" within these cells, so it would make sense that no value icon is displayed for empty cells but when I try to retrieve the corresponding valueIcon from a record's field via ListGrid.getValueIcon(ListGridField, Object, ListGridRecord) it does recognise that for an empty cell, the value icon should be "KiIconBooleanNull" (but doesn't display it).
I suppose this could be achieved by overriding ListGrid.getValueIcon() as specified in the docs but I just find it curious, that the value icon is determined to a valid value but not displayed.
SmartGWT: v12.0p_2018-08-25/Pro Deployment (built 2018-08-25)
Chrome 68.0.3440.106
Test case for completeness sake:
I have a question regarding Value icons in listgrid field.
When a field 'bool 'of type BOOLEAN has value icons defined as such:
Code:
valueIcons.put("true", "IconBooleanTrue"); valueIcons.put("false", "IconBooleanFalse"); valueIcons.put("null", "IconBooleanNull");
Now I do realise, that there is no actual "null" within these cells, so it would make sense that no value icon is displayed for empty cells but when I try to retrieve the corresponding valueIcon from a record's field via ListGrid.getValueIcon(ListGridField, Object, ListGridRecord) it does recognise that for an empty cell, the value icon should be "KiIconBooleanNull" (but doesn't display it).
I suppose this could be achieved by overriding ListGrid.getValueIcon() as specified in the docs but I just find it curious, that the value icon is determined to a valid value but not displayed.
SmartGWT: v12.0p_2018-08-25/Pro Deployment (built 2018-08-25)
Chrome 68.0.3440.106
Test case for completeness sake:
Code:
@Override public void onModuleLoad() { ListGrid grid = new ListGrid(); grid.setWidth(800); grid.setHeight(600); grid.addRecordClickHandler(new RecordClickHandler() { @Override public void onRecordClick(RecordClickEvent event) { String fieldN = event.getField().getName(); GWT.log("record value: " + event.getRecord().getAttribute(fieldN)); GWT.log(grid.getValueIcon(event.getField(), event.getRecord().getAttribute(fieldN), event.getRecord())); } }); ListGridField lgf = new ListGridField("bool", 150); lgf.setType(ListGridFieldType.BOOLEAN); Map<String, String> valueIcons = new HashMap<String, String>(); valueIcons.put("true", "IconBooleanTrue"); valueIcons.put("false", "IconBooleanFalse"); valueIcons.put("null", "IconBooleanNull"); lgf.setValueIcons(valueIcons); lgf.setImageURLSuffix(".svg"); ListGridField lgfID = new ListGridField("id", 50); lgfID.setType(ListGridFieldType.INTEGER); grid.setFields(lgfID, lgf); ListGridRecord r1 = new ListGridRecord(); r1.setAttribute("bool", true); r1.setAttribute("id", 1); ListGridRecord r2 = new ListGridRecord(); r2.setAttribute("bool", false); r2.setAttribute("id", 2); ListGridRecord r3 = new ListGridRecord(); r3.setAttribute("id", 3); grid.setData(r1, r2, r3); grid.draw(); }
Comment