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;
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() {
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();
+// }
}