]> git.argeo.org Git - gpl/argeo-suite.git/blob - swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java
Load maintenance resources relative to class
[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.spi.ProvidedContent;
5 import org.argeo.api.cms.CmsLog;
6 import org.argeo.api.cms.ux.CmsView;
7 import org.argeo.app.api.EntityType;
8 import org.argeo.app.ui.SuiteUxEvent;
9 import org.argeo.cms.swt.CmsSwtUtils;
10 import org.argeo.cms.swt.acr.SwtUiProvider;
11 import org.argeo.cms.swt.widgets.SwtTreeView;
12 import org.argeo.cms.ux.acr.ContentHierarchicalPart;
13 import org.eclipse.swt.layout.GridLayout;
14 import org.eclipse.swt.widgets.Composite;
15 import org.eclipse.swt.widgets.Control;
16 import org.eclipse.swt.widgets.Label;
17
18 public class ContentEntryArea implements SwtUiProvider {
19 private final static CmsLog log = CmsLog.getLog(ContentEntryArea.class);
20
21 @Override
22 public Control createUiPart(Composite parent, Content context) {
23 CmsView cmsView = CmsSwtUtils.getCmsView(parent);
24
25 parent.setLayout(new GridLayout());
26
27 new Label(parent, 0).setText(context.toString());
28
29 Content rootContent = ((ProvidedContent) context).getSession().getRepository().get().get("/srv");
30
31 ContentHierarchicalPart contentPart = new ContentHierarchicalPart() {
32
33 @Override
34 protected boolean isLeaf(Content content) {
35 if (content.hasContentClass(EntityType.document.qName()))
36 return true;
37 return super.isLeaf(content);
38 }
39 };
40 contentPart.setInput(rootContent);
41
42 SwtTreeView<Content> view = new SwtTreeView<>(parent, 0, contentPart);
43 view.setLayoutData(CmsSwtUtils.fillAll());
44
45 contentPart.setInput(rootContent);
46 contentPart.onSelected((o) -> {
47 Content c = (Content) o;
48 log.debug(c.getPath());
49 cmsView.sendEvent(SuiteUxEvent.refreshPart.topic(), SuiteUxEvent.eventProperties(c));
50 });
51 return view;
52 }
53
54 }