Use released Argeo Maven plugin
[gpl/argeo-suite.git] / publishing / org.argeo.publishing.ui / src / org / argeo / publishing / ui / DocumentUiProvider.java
index 17292d81ad317f53094fe94b02dea781f29335b7..9830d7c7a5a054913de7e756347a5813e7a30943 100644 (file)
@@ -2,9 +2,12 @@ package org.argeo.publishing.ui;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
+import javax.jcr.nodetype.NodeType;
 
 import org.argeo.cms.ui.CmsEditable;
 import org.argeo.cms.ui.CmsUiProvider;
+import org.argeo.cms.ui.CmsView;
+import org.argeo.cms.ui.util.CmsLink;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.JcrVersionCmsEditable;
 import org.argeo.cms.ui.widgets.ScrolledPage;
@@ -12,6 +15,7 @@ import org.argeo.docbook.DbkType;
 import org.argeo.docbook.ui.AbstractDbkViewer;
 import org.argeo.docbook.ui.DocumentTextEditor;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -19,18 +23,35 @@ public class DocumentUiProvider implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
+               CmsView cmsView = CmsView.getCmsView(parent);
                CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
                if (context.hasNode(DbkType.article.get())) {
                        Node textNode = context.getNode(DbkType.article.get());
                        // Title
                        parent.setLayout(CmsUiUtils.noSpaceGridLayout());
 
+                       CmsLink toHtml = new CmsLink("To HTML", "/html/dbk" + context.getPath()+"/index.html");
+                       toHtml.createUiPart(parent, context);
+
                        ScrolledPage page = new ScrolledPage(parent, SWT.NONE);
                        page.setLayoutData(CmsUiUtils.fillAll());
                        page.setLayout(CmsUiUtils.noSpaceGridLayout());
 
-                       AbstractDbkViewer dbkEditor = new DocumentTextEditor(page, SWT.NONE, textNode, cmsEditable);
-
+                       cmsView.runAs(() -> {
+                               AbstractDbkViewer dbkEditor = new DocumentTextEditor(page, SWT.NONE, textNode, cmsEditable);
+                               dbkEditor.refresh();
+                       });
+                       return page;
+
+               } else if (context.isNodeType(NodeType.NT_FILE)) {
+                       String fileName = context.getName();
+                       if (fileName.endsWith(".pdf")) {
+                               Browser browser = new Browser(parent, SWT.NONE);
+                               String dataPath = CmsUiUtils.getDataPath(context);
+                               browser.setUrl(dataPath);
+                               browser.setLayoutData(CmsUiUtils.fillAll());
+                               return browser;
+                       }
                }
                return null;
        }