1 package org
.argeo
.app
.ui
.library
;
3 import org
.argeo
.api
.acr
.Content
;
4 import org
.argeo
.api
.acr
.NamespaceUtils
;
5 import org
.argeo
.api
.acr
.spi
.ProvidedContent
;
6 import org
.argeo
.api
.cms
.CmsLog
;
7 import org
.argeo
.api
.cms
.ux
.CmsView
;
8 import org
.argeo
.app
.api
.EntityType
;
9 import org
.argeo
.app
.ui
.SuiteUxEvent
;
10 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
11 import org
.argeo
.cms
.swt
.acr
.SwtUiProvider
;
12 import org
.argeo
.cms
.swt
.widgets
.SwtTreeView
;
13 import org
.argeo
.cms
.ux
.acr
.ContentHierarchicalPart
;
14 import org
.eclipse
.swt
.layout
.GridLayout
;
15 import org
.eclipse
.swt
.widgets
.Composite
;
16 import org
.eclipse
.swt
.widgets
.Control
;
17 import org
.eclipse
.swt
.widgets
.Label
;
19 public class ContentEntryArea
implements SwtUiProvider
{
20 private final static CmsLog log
= CmsLog
.getLog(ContentEntryArea
.class);
23 public Control
createUiPart(Composite parent
, Content context
) {
24 CmsView cmsView
= CmsSwtUtils
.getCmsView(parent
);
26 parent
.setLayout(new GridLayout());
28 new Label(parent
, 0).setText(context
.toString());
30 Content rootContent
= ((ProvidedContent
) context
).getSession().getRepository().get().get("/sys");
32 ContentHierarchicalPart contentPart
= new ContentHierarchicalPart() {
35 protected boolean isLeaf(Content content
) {
36 if (content
.hasContentClass(EntityType
.document
.qName()))
38 return super.isLeaf(content
);
42 contentPart
.addColumn((c
) -> NamespaceUtils
.toPrefixedName(c
.getName()));
43 contentPart
.setInput(rootContent
);
45 SwtTreeView
<Content
> view
= new SwtTreeView
<>(parent
, 0, contentPart
);
46 view
.setLayoutData(CmsSwtUtils
.fillAll());
48 contentPart
.setInput(rootContent
);
49 contentPart
.onSelected((o
) -> {
50 Content c
= (Content
) o
;
51 log
.debug(c
.getPath());
52 cmsView
.sendEvent(SuiteUxEvent
.refreshPart
.topic(), SuiteUxEvent
.eventProperties(c
));