X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Forg.argeo.cms.swt%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Fwidgets%2FSwtHierarchicalPart.java;fp=eclipse%2Forg.argeo.cms.swt%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Fwidgets%2FSwtHierarchicalPart.java;h=0000000000000000000000000000000000000000;hb=7b242851c0094d13cbaca5b68261ad92c873a59f;hp=07c9bac2e1cb3266028a90cbe139008c591d42b4;hpb=dbb84b4ec2d313ec0724d035c32f482ac57974c5;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtHierarchicalPart.java b/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtHierarchicalPart.java deleted file mode 100644 index 07c9bac2e..000000000 --- a/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/widgets/SwtHierarchicalPart.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.argeo.cms.swt.widgets; - -import java.util.List; - -import org.argeo.api.cms.ux.CmsIcon; -import org.argeo.cms.swt.CmsSwtUtils; -import org.argeo.cms.ux.widgets.HierarchicalPart; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeItem; - -/** {@link HierarchicalPart} implementation based on a {@link Tree}. */ -public class SwtHierarchicalPart extends AbstractSwtPart { - private static final long serialVersionUID = -6247710601465713047L; - - private final Tree tree; - - private HierarchicalPart hierarchicalPart; - - public SwtHierarchicalPart(Composite parent, int style, HierarchicalPart hierarchicalPart) { - super(parent, style, hierarchicalPart); - tree = new Tree(this, SWT.BORDER); - tree.setLayoutData(CmsSwtUtils.fillAll()); - this.hierarchicalPart = hierarchicalPart; - - tree.addSelectionListener(selectionListener); - } - - @Override - public void refresh() { - // TODO optimise - // tree.clearAll(true); - - for (TreeItem rootItem : tree.getItems()) { - rootItem.dispose(); - } - - List rootItems = hierarchicalPart.getChildren(hierarchicalPart.getInput()); - for (T child : rootItems) { - TreeItem childItem = addTreeItem(null, child); -// List 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 grandChildren = hierarchicalPart.getChildren((T) item.getData()); -// for (T grandChild : grandChildren) { -// addTreeItem(item, grandChild); -// } - return; - } - item.dispose(); - } - - List children = hierarchicalPart.getChildren((T) root.getData()); - for (T child : children) { - TreeItem childItem = addTreeItem(root, child); -// List grandChildren = hierarchicalPart.getChildren(child); -// for (T grandChild : grandChildren) { -// addTreeItem(childItem, grandChild); -// } - } - }); - - CmsSwtUtils.fill(tree); - - } - - protected TreeItem addTreeItem(TreeItem parent, T data) { - TreeItem item = parent == null ? new TreeItem(tree, SWT.NONE) : new TreeItem(parent, SWT.NONE); - item.setData(data); - String txt = hierarchicalPart.getText(data); - if (txt != null) - item.setText(hierarchicalPart.getText(data)); - CmsIcon icon = hierarchicalPart.getIcon(data); - // TODO optimize - List grandChildren = hierarchicalPart.getChildren(data); - if (grandChildren.size() != 0) - new TreeItem(item, SWT.NONE); - return item; -//if(icon!=null) -// item.setImage(null); - } - - protected Tree getTree() { - return tree; - } - -}