Move SWT components to their subdirectory
[gpl/argeo-suite.git] / swt / org.argeo.app.ui / src / org / argeo / app / ui / library / ContentEntryArea.java
diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java
new file mode 100644 (file)
index 0000000..e5b474b
--- /dev/null
@@ -0,0 +1,54 @@
+package org.argeo.app.ui.library;
+
+import org.argeo.api.acr.Content;
+import org.argeo.api.acr.spi.ProvidedContent;
+import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.ux.CmsView;
+import org.argeo.app.api.EntityType;
+import org.argeo.app.ui.SuiteEvent;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.acr.SwtUiProvider;
+import org.argeo.cms.swt.widgets.SwtTreeView;
+import org.argeo.cms.ux.acr.ContentHierarchicalPart;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+public class ContentEntryArea implements SwtUiProvider {
+       private final static CmsLog log = CmsLog.getLog(ContentEntryArea.class);
+
+       @Override
+       public Control createUiPart(Composite parent, Content context) {
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
+
+               parent.setLayout(new GridLayout());
+
+               new Label(parent, 0).setText(context.toString());
+
+               Content rootContent = ((ProvidedContent) context).getSession().getRepository().get().get("/srv");
+
+               ContentHierarchicalPart contentPart = new ContentHierarchicalPart() {
+
+                       @Override
+                       protected boolean isLeaf(Content content) {
+                               if (content.hasContentClass(EntityType.document.qName()))
+                                       return true;
+                               return super.isLeaf(content);
+                       }
+               };
+               contentPart.setInput(rootContent);
+
+               SwtTreeView<Content> view = new SwtTreeView<>(parent, 0, contentPart);
+               view.setLayoutData(CmsSwtUtils.fillAll());
+
+               contentPart.setInput(rootContent);
+               contentPart.onSelected((o) -> {
+                       Content c = (Content) o;
+                       log.debug(c.getPath());
+                       cmsView.sendEvent(SuiteEvent.refreshPart.topic(), SuiteEvent.eventProperties(c));
+               });
+               return view;
+       }
+
+}