-// final Tree tree = new Tree(parent, SWT.VIRTUAL | SWT.BORDER);
-// tree.addListener(SWT.SetData, event -> {
-// TreeItem item = (TreeItem) event.item;
-// TreeItem parentItem = item.getParentItem();
-// String text = null;
-// if (parentItem == null) {
-// int index = tree.indexOf(item);
-// User org = (User) orgs.get(index);
-// item.setData(org);
-// text = org.getName();
-// } else {
-// text = parentItem.getText() + " - " + parentItem.indexOf(item);
-// }
-// item.setText(text);
-// item.setItemCount(10);
-// });
-// tree.setItemCount(orgs.size());
-// tree.setLayoutData(CmsSwtUtils.fillAll());
- CmsSwtUtils.fill(tree);
+ TabularPart usersView = new SwtTabularPart(sashForm, SWT.NONE) {
+ List<Role> roles = new ArrayList<>();
+
+ @Override
+ protected void refreshItem(TableItem item) {
+ int index = getTable().indexOf(item);
+ User role = (User) roles.get(index);
+ item.setData(role);
+ item.setText(role.getName());
+ Image icon;
+ if (role instanceof Organization) {
+ icon = theme.getSmallIcon(SuiteIcon.organisation);
+ } else if (role instanceof FunctionalGroup) {
+ icon = theme.getSmallIcon(SuiteIcon.group);
+ } else if (role instanceof Person) {
+ icon = theme.getSmallIcon(SuiteIcon.person);
+ } else {
+ icon = null;
+ }
+ item.setImage(icon);
+ }
+
+ @Override
+ protected int getItemCount() {
+ roles.clear();
+ HierarchyUnit hu = (HierarchyUnit) getInput();
+ if (hu == null)
+ return 0;
+ UserDirectory ud = (UserDirectory) hu.getDirectory();
+ for (HierarchyUnit directChild : hu.getDirectHierachyUnits(false)) {
+ if (!directChild.isFunctional()) {
+ for (Role r : ud.getHierarchyUnitRoles(directChild, null, false)) {
+ if (r instanceof Person || r instanceof Organization)
+ roles.add(r);
+ }
+ }
+ }
+ // roles = hu.getHierarchyUnitRoles(null, false);
+ return roles.size();
+ }
+
+ };
+ usersView.addColumn(new Column<User>() {
+
+ @Override
+ public String getText(User model) {
+ return model.toString();
+ }
+ });