// -------------------------------------------------------------------------------- private void drawItem(String parentFieldName, TreeItem parentItem, List data, boolean expand) { for (int i = 0; i < data.size(); ++i) { TreeItem newItem = new TreeItem(parentItem, SWT.NONE); Object value = data.get(i); newItem.setText(1, getClassName(value)); String fieldName = parentFieldName + "." + i; if (fieldName.startsWith(".")) { fieldName = fieldName.substring(1); } newItem.setData("fieldName", fieldName); newItem.setData("value", value); fieldNameTreeItemMap.put(fieldName, newItem); if (value instanceof Map) { newItem.setText("[" + i + "]"); newItem.setImage(mapImage); drawItem(fieldName, newItem, (Map) value, expand); } else if (value instanceof List) { newItem.setText("[" + i + "]"); newItem.setImage(listImage); drawItem(fieldName, newItem, (List) value, expand); } else { setItemInfo(newItem, "[" + i + "]", value); } if (expand) { parentItem.setExpanded(expand); newItem.setExpanded(expand); } } }