X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fpublishing%2Fui%2FDocumentUiProvider.java;fp=org.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fpublishing%2Fui%2FDocumentUiProvider.java;h=9830d7c7a5a054913de7e756347a5813e7a30943;hb=3440f51df3e4c015972c7b6a0efb3ce16188b89b;hp=0000000000000000000000000000000000000000;hpb=752a7b2614895002a3d184be166ef4162caf0d05;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java new file mode 100644 index 0000000..9830d7c --- /dev/null +++ b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java @@ -0,0 +1,59 @@ +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; +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; + +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()); + + 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; + } + +}