- tree.clearAll(true);
- tree.addListener(SWT.SetData, event -> {
- TreeItem item = (TreeItem) event.item;
- TreeItem parentItem = item.getParentItem();
- if (parentItem == null) {
- refreshRootItem(item);
- } else {
- refreshItem(parentItem, item);
- }
- });
- tree.setItemCount(getRootItemCount());
- CmsSwtUtils.fill(tree);
-
- tree.addSelectionListener(new SelectionListener() {
-
- private static final long serialVersionUID = 4334785560035009330L;
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (onSelected != null)
- onSelected.accept(e.item.getData());
+ // tree.clearAll(true);
+
+ for (TreeItem rootItem : tree.getItems()) {
+ rootItem.dispose();
+ }
+
+ List<T> rootItems = hierarchicalPart.getChildren(hierarchicalPart.getInput());
+ for (T child : rootItems) {
+ TreeItem childItem = addTreeItem(null, child);
+// List<T> grandChildren = hierarchicalPart.getChildren(child);
+// for (T grandChild : grandChildren) {
+// addTreeItem(childItem, grandChild);
+// }
+ }
+// tree.addListener(SWT.SetData, event -> {
+// TreeItem item = (TreeItem) event.item;
+// TreeItem parentItem = item.getParentItem();
+// if (parentItem == null) {
+// refreshRootItem(item);
+// } else {
+// refreshItem(parentItem, item);
+// }
+// });
+// tree.setItemCount(getRootItemCount());
+
+ tree.addListener(SWT.Expand, event -> {
+ final TreeItem root = (TreeItem) event.item;
+ TreeItem[] items = root.getItems();
+ for (TreeItem item : items) {
+ if (item.getData() != null) {
+// List<T> grandChildren = hierarchicalPart.getChildren((T) item.getData());
+// for (T grandChild : grandChildren) {
+// addTreeItem(item, grandChild);
+// }
+ return;
+ }
+ item.dispose();