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