]>
git.argeo.org Git - gpl/argeo-suite.git/blob - swt/org.argeo.app.ui/src/org/argeo/app/ui/docbook/DocumentPage.java
1 package org
.argeo
.app
.ui
.docbook
;
4 import javax
.jcr
.NodeIterator
;
5 import javax
.jcr
.RepositoryException
;
6 import javax
.jcr
.Session
;
7 import javax
.jcr
.nodetype
.NodeType
;
9 import org
.argeo
.api
.cms
.ux
.CmsEditable
;
10 import org
.argeo
.app
.docbook
.DbkType
;
11 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
12 import org
.argeo
.cms
.swt
.widgets
.ScrolledPage
;
13 import org
.argeo
.cms
.ui
.CmsUiProvider
;
14 import org
.argeo
.cms
.ui
.util
.CmsLink
;
15 import org
.argeo
.cms
.ui
.viewers
.JcrVersionCmsEditable
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.layout
.GridData
;
18 import org
.eclipse
.swt
.widgets
.Composite
;
19 import org
.eclipse
.swt
.widgets
.Control
;
22 * Display the text of the context, and provide an editor if the user can edit.
24 public class DocumentPage
implements CmsUiProvider
{
25 public final static String WWW
= "www";
28 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
30 ScrolledPage page
= new ScrolledPage(parent
, SWT
.NONE
);
31 page
.setLayout(CmsSwtUtils
.noSpaceGridLayout());
32 GridData textGd
= CmsSwtUtils
.fillAll();
33 page
.setLayoutData(textGd
);
35 if (context
.isNodeType(DbkType
.article
.get())) {
36 CmsEditable cmsEditable
= new JcrVersionCmsEditable(context
);
37 if (cmsEditable
.canEdit())
38 new TextEditorHeader(cmsEditable
, parent
, SWT
.NONE
).setLayoutData(CmsSwtUtils
.fillWidth());
39 if (!cmsEditable
.isEditing())
40 cmsEditable
.startEditing();
41 new DocumentTextEditor(page
, SWT
.FLAT
, context
, cmsEditable
);
43 parent
.setBackgroundMode(SWT
.INHERIT_NONE
);
44 if (context
.getSession().hasPermission(context
.getPath(), Session
.ACTION_ADD_NODE
)) {
45 // new DocumentTextEditor(page, SWT.FLAT, indexNode, cmsEditable);
46 // textGd.heightHint = 400;
48 for (NodeIterator ni
= context
.getNodes(); ni
.hasNext();) {
49 Node textNode
= ni
.nextNode();
50 if (textNode
.isNodeType(NodeType
.NT_FOLDER
))
51 new CmsLink(textNode
.getName() + "/", textNode
.getPath()).createUi(parent
, textNode
);
53 for (NodeIterator ni
= context
.getNodes(); ni
.hasNext();) {
54 Node textNode
= ni
.nextNode();
55 if (textNode
.isNodeType(DbkType
.article
.get()) && !textNode
.getName().equals(WWW
))
56 new CmsLink(textNode
.getName(), textNode
.getPath()).createUi(parent
, textNode
);