X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Forg.argeo.cms.swt%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Facr%2FAcrContentTreeView.java;h=98fabf0600089ee8d369f3e90e71156b4f8e2540;hb=4c7e1885b8bf3c93fa0919ace122e3f289a925ea;hp=4deef49c1bd0e813651bc91def456d6248d93a25;hpb=da9d144b6b241e1526a3bd255dff905a7969a5bc;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AcrContentTreeView.java b/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AcrContentTreeView.java index 4deef49c1..98fabf060 100644 --- a/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AcrContentTreeView.java +++ b/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AcrContentTreeView.java @@ -1,28 +1,21 @@ package org.argeo.cms.swt.acr; -import java.nio.file.Path; -import java.nio.file.Paths; - import javax.xml.namespace.QName; import org.argeo.api.acr.Content; -import org.argeo.cms.acr.fs.FsContentProvider; import org.argeo.cms.swt.CmsSwtUtils; import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeItem; public class AcrContentTreeView extends Composite { - private Tree tree; + private static final long serialVersionUID = -3707881216246077323L; + private SwtContentHierarchicalPart hPart; +// private Tree tree; private Table table; private Content rootContent; @@ -36,44 +29,52 @@ public class AcrContentTreeView extends Composite { initTree(); GridData treeGd = CmsSwtUtils.fillHeight(); treeGd.widthHint = 300; - tree.setLayoutData(treeGd); + hPart.getArea().setLayoutData(treeGd); initTable(); table.setLayoutData(CmsSwtUtils.fillAll()); } protected void initTree() { - tree = new Tree(this, 0); - for (Content c : rootContent) { - TreeItem root = new TreeItem(tree, 0); - root.setText(c.getName().toString()); - root.setData(c); - new TreeItem(root, 0); - } - tree.addListener(SWT.Expand, event -> { - final TreeItem root = (TreeItem) event.item; - TreeItem[] items = root.getItems(); - for (TreeItem item : items) { - if (item.getData() != null) - return; - item.dispose(); - } - Content content = (Content) root.getData(); - for (Content c : content) { - TreeItem item = new TreeItem(root, 0); - item.setText(c.getName().toString()); - item.setData(c); - boolean hasChildren = true; - if (hasChildren) { - new TreeItem(item, 0); - } - } - }); - tree.addListener(SWT.Selection, event -> { - TreeItem item = (TreeItem) event.item; - selected = (Content) item.getData(); + hPart = new SwtContentHierarchicalPart(this, getStyle()); + hPart.setInput(rootContent); + hPart.onSelected((o) -> { + Content content = (Content) o; + selected = content; refreshTable(); + }); +// tree = new Tree(this, 0); +// for (Content c : rootContent) { +// TreeItem root = new TreeItem(tree, 0); +// root.setText(c.getName().toString()); +// root.setData(c); +// new TreeItem(root, 0); +// } +// tree.addListener(SWT.Expand, event -> { +// final TreeItem root = (TreeItem) event.item; +// TreeItem[] items = root.getItems(); +// for (TreeItem item : items) { +// if (item.getData() != null) +// return; +// item.dispose(); +// } +// Content content = (Content) root.getData(); +// for (Content c : content) { +// TreeItem item = new TreeItem(root, 0); +// item.setText(c.getName().toString()); +// item.setData(c); +// boolean hasChildren = true; +// if (hasChildren) { +// new TreeItem(item, 0); +// } +// } +// }); +// tree.addListener(SWT.Selection, event -> { +// TreeItem item = (TreeItem) event.item; +// selected = (Content) item.getData(); +// refreshTable(); +// }); } protected void initTable() { @@ -103,28 +104,28 @@ public class AcrContentTreeView extends Composite { table.getColumn(1).pack(); } - public static void main(String[] args) { - Path basePath; - if (args.length > 0) { - basePath = Paths.get(args[0]); - } else { - basePath = Paths.get(System.getProperty("user.home")); - } - - final Display display = new Display(); - final Shell shell = new Shell(display); - shell.setText(basePath.toString()); - shell.setLayout(new FillLayout()); - - FsContentProvider contentSession = new FsContentProvider("/", basePath); -// GcrContentTreeView treeView = new GcrContentTreeView(shell, 0, contentSession.get("/")); - - shell.setSize(shell.computeSize(800, 600)); - shell.open(); - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) - display.sleep(); - } - display.dispose(); - } +// public static void main(String[] args) { +// Path basePath; +// if (args.length > 0) { +// basePath = Paths.get(args[0]); +// } else { +// basePath = Paths.get(System.getProperty("user.home")); +// } +// +// final Display display = new Display(); +// final Shell shell = new Shell(display); +// shell.setText(basePath.toString()); +// shell.setLayout(new FillLayout()); +// +// FsContentProvider contentSession = new FsContentProvider("/", basePath); +//// GcrContentTreeView treeView = new GcrContentTreeView(shell, 0, contentSession.get("/")); +// +// shell.setSize(shell.computeSize(800, 600)); +// shell.open(); +// while (!shell.isDisposed()) { +// if (!display.readAndDispatch()) +// display.sleep(); +// } +// display.dispose(); +// } }