- 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.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();