1 package org
.argeo
.cms
.swt
.acr
;
3 import javax
.xml
.namespace
.QName
;
5 import org
.argeo
.api
.acr
.Content
;
6 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
7 import org
.eclipse
.swt
.SWT
;
8 import org
.eclipse
.swt
.layout
.GridData
;
9 import org
.eclipse
.swt
.layout
.GridLayout
;
10 import org
.eclipse
.swt
.widgets
.Composite
;
11 import org
.eclipse
.swt
.widgets
.Table
;
12 import org
.eclipse
.swt
.widgets
.TableColumn
;
13 import org
.eclipse
.swt
.widgets
.TableItem
;
15 public class AcrContentTreeView
extends Composite
{
16 private static final long serialVersionUID
= -3707881216246077323L;
17 private SwtContentHierarchicalPart hPart
;
20 private Content rootContent
;
22 private Content selected
;
24 public AcrContentTreeView(Composite parent
, int style
, Content content
) {
26 this.rootContent
= content
;
27 this.selected
= rootContent
;
28 setLayout(new GridLayout(2, false));
30 GridData treeGd
= CmsSwtUtils
.fillHeight();
31 treeGd
.widthHint
= 300;
32 hPart
.getArea().setLayoutData(treeGd
);
35 table
.setLayoutData(CmsSwtUtils
.fillAll());
38 protected void initTree() {
39 hPart
= new SwtContentHierarchicalPart(this, getStyle());
40 hPart
.setInput(rootContent
);
41 hPart
.onSelected((o
) -> {
42 Content content
= (Content
) o
;
47 // tree = new Tree(this, 0);
48 // for (Content c : rootContent) {
49 // TreeItem root = new TreeItem(tree, 0);
50 // root.setText(c.getName().toString());
52 // new TreeItem(root, 0);
54 // tree.addListener(SWT.Expand, event -> {
55 // final TreeItem root = (TreeItem) event.item;
56 // TreeItem[] items = root.getItems();
57 // for (TreeItem item : items) {
58 // if (item.getData() != null)
62 // Content content = (Content) root.getData();
63 // for (Content c : content) {
64 // TreeItem item = new TreeItem(root, 0);
65 // item.setText(c.getName().toString());
67 // boolean hasChildren = true;
69 // new TreeItem(item, 0);
73 // tree.addListener(SWT.Selection, event -> {
74 // TreeItem item = (TreeItem) event.item;
75 // selected = (Content) item.getData();
80 protected void initTable() {
81 table
= new Table(this, 0);
82 table
.setLinesVisible(true);
83 table
.setHeaderVisible(true);
84 TableColumn keyCol
= new TableColumn(table
, SWT
.NONE
);
85 keyCol
.setText("Attribute");
87 TableColumn valueCol
= new TableColumn(table
, SWT
.NONE
);
88 valueCol
.setText("Value");
93 protected void refreshTable() {
94 for (TableItem item
: table
.getItems()) {
97 for (QName key
: selected
.keySet()) {
98 TableItem item
= new TableItem(table
, 0);
99 item
.setText(0, key
.toString());
100 Object value
= selected
.get(key
);
101 item
.setText(1, value
.toString());
103 table
.getColumn(0).pack();
104 table
.getColumn(1).pack();
107 // public static void main(String[] args) {
109 // if (args.length > 0) {
110 // basePath = Paths.get(args[0]);
112 // basePath = Paths.get(System.getProperty("user.home"));
115 // final Display display = new Display();
116 // final Shell shell = new Shell(display);
117 // shell.setText(basePath.toString());
118 // shell.setLayout(new FillLayout());
120 // FsContentProvider contentSession = new FsContentProvider("/", basePath);
121 //// GcrContentTreeView treeView = new GcrContentTreeView(shell, 0, contentSession.get("/"));
123 // shell.setSize(shell.computeSize(800, 600));
125 // while (!shell.isDisposed()) {
126 // if (!display.readAndDispatch())
129 // display.dispose();