@Override public void onSuccess(CComponentTypeRegistry[] result) { CComponentTypeNode[] ds = new CComponentTypeNode[result.length]; int index = 0; for (CComponentTypeRegistry registry : result) { ds[index++] = new CComponentTypeNode(registry); if (PROCESSOR_SECTION_ID.equals(sectionID)) WebClientController.componentManager.registerProcessor(registry); else if (DATASOURCE_SECTION_ID.equals(sectionID)) WebClientController.componentManager.registerDataSource(registry); } TreeNode root = new TreeNode("ComponentRoot", ds); Tree dataSourceTree = new Tree(); dataSourceTree.setModelType(TreeModelType.CHILDREN); dataSourceTree.setNameProperty(COMPONENT_NAME); dataSourceTree.setRoot(root); // group tree grid TreeGridField connectorsField = new TreeGridField("ComponentField"); connectorsField.setShowHover(false); connectorsField.setCellFormatter( new CellFormatter() { @Override public String format(Object value, ListGridRecord record, int rowNum, int colNum) { return record.getAttributeAsString(COMPONENT_NAME); } }); treeGrid.setData(dataSourceTree); treeGrid.setFields(connectorsField); }