1 package org
.argeo
.app
.ui
.publish
;
4 import javax
.jcr
.RepositoryException
;
5 import javax
.jcr
.nodetype
.NodeType
;
7 import org
.argeo
.api
.cms
.ux
.CmsEditable
;
8 import org
.argeo
.api
.cms
.ux
.CmsView
;
9 import org
.argeo
.app
.docbook
.DbkType
;
10 import org
.argeo
.app
.ui
.docbook
.AbstractDbkViewer
;
11 import org
.argeo
.app
.ui
.docbook
.DocumentTextEditor
;
12 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
13 import org
.argeo
.cms
.swt
.widgets
.ScrolledPage
;
14 import org
.argeo
.cms
.ui
.CmsUiProvider
;
15 import org
.argeo
.cms
.ui
.util
.CmsLink
;
16 import org
.argeo
.cms
.ui
.util
.CmsUiUtils
;
17 import org
.argeo
.cms
.ui
.viewers
.JcrVersionCmsEditable
;
18 import org
.eclipse
.swt
.SWT
;
19 import org
.eclipse
.swt
.browser
.Browser
;
20 import org
.eclipse
.swt
.layout
.FillLayout
;
21 import org
.eclipse
.swt
.widgets
.Composite
;
22 import org
.eclipse
.swt
.widgets
.Control
;
24 public class DocumentUiProvider
implements CmsUiProvider
{
27 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
28 CmsView cmsView
= CmsSwtUtils
.getCmsView(parent
);
29 CmsEditable cmsEditable
= new JcrVersionCmsEditable(context
);
30 if (context
.hasNode(DbkType
.article
.get())) {
31 Node textNode
= context
.getNode(DbkType
.article
.get());
33 parent
.setLayout(CmsSwtUtils
.noSpaceGridLayout());
35 Composite links
= new Composite(parent
, SWT
.NONE
);
36 FillLayout linksLayout
= new FillLayout();
37 linksLayout
.spacing
= 2;
38 links
.setLayout(linksLayout
);
39 CmsLink toHtml
= new CmsLink("to HTML", "/html/dbk" + context
.getPath() + "/index.html");
40 toHtml
.createUiPart(links
, context
);
41 CmsLink toPdf
= new CmsLink("to PDF", "/html/dbk" + context
.getPath() + "/index.pdf");
42 toPdf
.createUiPart(links
, context
);
44 ScrolledPage page
= new ScrolledPage(parent
, SWT
.NONE
);
45 page
.setLayoutData(CmsSwtUtils
.fillAll());
46 page
.setLayout(CmsSwtUtils
.noSpaceGridLayout());
49 AbstractDbkViewer dbkEditor
= new DocumentTextEditor(page
, SWT
.NONE
, textNode
, cmsEditable
);
54 } else if (context
.isNodeType(NodeType
.NT_FILE
)) {
55 String fileName
= context
.getName();
56 if (fileName
.endsWith(".pdf")) {
57 Browser browser
= new Browser(parent
, SWT
.NONE
);
58 String dataPath
= CmsUiUtils
.getDataPath(context
);
59 browser
.setUrl(dataPath
);
60 browser
.setLayoutData(CmsSwtUtils
.fillAll());