X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpublish%2FDocumentUiProvider.java;fp=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpublish%2FDocumentUiProvider.java;h=3829583fcc92dc539671b4872bef431fae289333;hb=942fd932e1f6ed3319575c4c1d944912dfca9fa5;hp=0000000000000000000000000000000000000000;hpb=9dad741609777467f58a508e07139be9a086919b;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/publish/DocumentUiProvider.java b/org.argeo.app.ui/src/org/argeo/app/ui/publish/DocumentUiProvider.java new file mode 100644 index 0000000..3829583 --- /dev/null +++ b/org.argeo.app.ui/src/org/argeo/app/ui/publish/DocumentUiProvider.java @@ -0,0 +1,60 @@ +package org.argeo.app.ui.publish; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.nodetype.NodeType; + +import org.argeo.api.cms.CmsEditable; +import org.argeo.api.cms.CmsView; +import org.argeo.app.docbook.DbkType; +import org.argeo.app.ui.docbook.AbstractDbkViewer; +import org.argeo.app.ui.docbook.DocumentTextEditor; +import org.argeo.cms.swt.CmsSwtUtils; +import org.argeo.cms.ui.CmsUiProvider; +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; +import org.eclipse.swt.SWT; +import org.eclipse.swt.browser.Browser; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +public class DocumentUiProvider implements CmsUiProvider { + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + CmsView cmsView = CmsSwtUtils.getCmsView(parent); + CmsEditable cmsEditable = new JcrVersionCmsEditable(context); + if (context.hasNode(DbkType.article.get())) { + Node textNode = context.getNode(DbkType.article.get()); + // Title + parent.setLayout(CmsSwtUtils.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(CmsSwtUtils.fillAll()); + page.setLayout(CmsSwtUtils.noSpaceGridLayout()); + + 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(CmsSwtUtils.fillAll()); + return browser; + } + } + return null; + } + +}