]> git.argeo.org Git - gpl/argeo-suite.git/blob - publishing/ui/DocumentUiProvider.java
Prepare next development cycle
[gpl/argeo-suite.git] / publishing / ui / DocumentUiProvider.java
1 package org.argeo.publishing.ui;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5 import javax.jcr.nodetype.NodeType;
6
7 import org.argeo.api.cms.CmsEditable;
8 import org.argeo.api.cms.CmsView;
9 import org.argeo.cms.swt.CmsSwtUtils;
10 import org.argeo.cms.ui.CmsUiProvider;
11 import org.argeo.cms.ui.util.CmsLink;
12 import org.argeo.cms.ui.util.CmsUiUtils;
13 import org.argeo.cms.ui.viewers.JcrVersionCmsEditable;
14 import org.argeo.cms.ui.widgets.ScrolledPage;
15 import org.argeo.docbook.DbkType;
16 import org.argeo.docbook.ui.AbstractDbkViewer;
17 import org.argeo.docbook.ui.DocumentTextEditor;
18 import org.eclipse.swt.SWT;
19 import org.eclipse.swt.browser.Browser;
20 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.swt.widgets.Control;
22
23 public class DocumentUiProvider implements CmsUiProvider {
24
25 @Override
26 public Control createUi(Composite parent, Node context) throws RepositoryException {
27 CmsView cmsView = CmsSwtUtils.getCmsView(parent);
28 CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
29 if (context.hasNode(DbkType.article.get())) {
30 Node textNode = context.getNode(DbkType.article.get());
31 // Title
32 parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
33
34 CmsLink toHtml = new CmsLink("To HTML", "/html/dbk" + context.getPath()+"/index.html");
35 toHtml.createUiPart(parent, context);
36
37 ScrolledPage page = new ScrolledPage(parent, SWT.NONE);
38 page.setLayoutData(CmsSwtUtils.fillAll());
39 page.setLayout(CmsSwtUtils.noSpaceGridLayout());
40
41 cmsView.runAs(() -> {
42 AbstractDbkViewer dbkEditor = new DocumentTextEditor(page, SWT.NONE, textNode, cmsEditable);
43 dbkEditor.refresh();
44 });
45 return page;
46
47 } else if (context.isNodeType(NodeType.NT_FILE)) {
48 String fileName = context.getName();
49 if (fileName.endsWith(".pdf")) {
50 Browser browser = new Browser(parent, SWT.NONE);
51 String dataPath = CmsUiUtils.getDataPath(context);
52 browser.setUrl(dataPath);
53 browser.setLayoutData(CmsSwtUtils.fillAll());
54 return browser;
55 }
56 }
57 return null;
58 }
59
60 }