]> git.argeo.org Git - gpl/argeo-suite.git/blob - swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java
Prepare refactoring suite UX
[gpl/argeo-suite.git] / swt / org.argeo.app.ui / src / org / argeo / app / ui / library / ContentEntryArea.java
1 package org.argeo.app.ui.library;
2
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.ux.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;
18
19 public class ContentEntryArea implements SwtUiProvider {
20 private final static CmsLog log = CmsLog.getLog(ContentEntryArea.class);
21
22 @Override
23 public Control createUiPart(Composite parent, Content context) {
24 CmsView cmsView = CmsSwtUtils.getCmsView(parent);
25
26 parent.setLayout(new GridLayout());
27
28 new Label(parent, 0).setText(context.toString());
29
30 Content rootContent = ((ProvidedContent) context).getSession().getRepository().get().get("/sys");
31
32 ContentHierarchicalPart contentPart = new ContentHierarchicalPart() {
33
34 @Override
35 protected boolean isLeaf(Content content) {
36 if (content.hasContentClass(EntityType.document.qName()))
37 return true;
38 return super.isLeaf(content);
39 }
40
41 };
42 contentPart.addColumn((c) -> NamespaceUtils.toPrefixedName(c.getName()));
43 contentPart.setInput(rootContent);
44
45 SwtTreeView<Content> view = new SwtTreeView<>(parent, 0, contentPart);
46 view.setLayoutData(CmsSwtUtils.fillAll());
47
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));
53 });
54 return view;
55 }
56
57 }