-package org.argeo.cms.swt.acr;
-
-import javax.xml.namespace.QName;
-
-import org.argeo.api.acr.Content;
-import org.argeo.cms.swt.CmsSwtUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-public class AcrContentTreeView extends Composite {
- private static final long serialVersionUID = -3707881216246077323L;
- private SwtContentHierarchicalPart hPart;
-// private Tree tree;
- private Table table;
- private Content rootContent;
-
- private Content selected;
-
- public AcrContentTreeView(Composite parent, int style, Content content) {
- super(parent, style);
- this.rootContent = content;
- this.selected = rootContent;
- setLayout(new GridLayout(2, false));
- initTree();
- GridData treeGd = CmsSwtUtils.fillHeight();
- treeGd.widthHint = 300;
- hPart.getArea().setLayoutData(treeGd);
- initTable();
-
- table.setLayoutData(CmsSwtUtils.fillAll());
- }
-
- protected void initTree() {
- 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 = new Table(this, 0);
- table.setLinesVisible(true);
- table.setHeaderVisible(true);
- TableColumn keyCol = new TableColumn(table, SWT.NONE);
- keyCol.setText("Attribute");
- keyCol.setWidth(200);
- TableColumn valueCol = new TableColumn(table, SWT.NONE);
- valueCol.setText("Value");
- keyCol.setWidth(300);
- refreshTable();
- }
-
- protected void refreshTable() {
- for (TableItem item : table.getItems()) {
- item.dispose();
- }
- for (QName key : selected.keySet()) {
- TableItem item = new TableItem(table, 0);
- item.setText(0, key.toString());
- Object value = selected.get(key);
- item.setText(1, value.toString());
- }
- table.getColumn(0).pack();
- 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();
-// }
-}