1 package org
.argeo
.app
.swt
.space
;
6 import org
.argeo
.api
.acr
.Content
;
7 import org
.argeo
.api
.acr
.NamespaceUtils
;
8 import org
.argeo
.api
.acr
.spi
.ProvidedContent
;
9 import org
.argeo
.api
.app
.EntityType
;
10 import org
.argeo
.api
.cms
.ux
.CmsView
;
11 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
12 import org
.argeo
.cms
.swt
.acr
.SwtUiProvider
;
13 import org
.argeo
.cms
.swt
.widgets
.SwtTreeView
;
14 import org
.argeo
.cms
.ux
.acr
.ContentHierarchicalPart
;
15 import org
.eclipse
.swt
.layout
.GridLayout
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.swt
.widgets
.Control
;
19 /** Entry area for managing the typologies. */
20 public class SpaceEntryArea
implements SwtUiProvider
{
22 public Control
createUiPart(Composite parent
, Content content
) {
23 CmsView cmsView
= CmsSwtUtils
.getCmsView(parent
);
25 parent
.setLayout(new GridLayout());
27 ContentHierarchicalPart contentPart
= new ContentHierarchicalPart() {
30 public List
<Content
> getChildren(Content parent
) {
32 return super.getChildren(parent
);
33 List
<Content
> res
= ((ProvidedContent
) content
).getSession().search((bs
) -> {
34 bs
.from(URI
.create("/sys")).where((f
) -> f
.isContentClass(EntityType
.space
));
35 }).filter((c
) -> noSpaceParent((ProvidedContent
) c
)).toList();
40 contentPart
.addColumn((c
) -> NamespaceUtils
.toPrefixedName(c
.getName()));
41 // contentPart.setInput(content);
43 SwtTreeView
<Content
> view
= new SwtTreeView
<>(parent
, 0, contentPart
);
44 view
.setLayoutData(CmsSwtUtils
.fillAll());
46 contentPart
.setInput(null);
51 private static boolean noSpaceParent(ProvidedContent content
) {
52 if (content
.isRoot() || !content
.isParentAccessible())// end condition
54 ProvidedContent parent
= (ProvidedContent
) content
.getParent();
55 if (parent
.hasContentClass(EntityType
.space
))
57 return noSpaceParent(parent
);