X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDocumentPage.java;fp=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDocumentPage.java;h=6cb0e291c8978a64836414ee3c4edcf1eed61573;hp=0000000000000000000000000000000000000000;hb=147ada7da5bf6292569f17a53a77fca04c97f707;hpb=5431f941fd6161e89f495a330c2ecddaf4f6bfb1 diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java new file mode 100644 index 0000000..6cb0e29 --- /dev/null +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java @@ -0,0 +1,62 @@ +package org.argeo.docbook.ui; + +import javax.jcr.Node; +import javax.jcr.NodeIterator; +import javax.jcr.RepositoryException; +import javax.jcr.Session; +import javax.jcr.nodetype.NodeType; + +import org.argeo.cms.text.TextEditorHeader; +import org.argeo.cms.ui.CmsEditable; +import org.argeo.cms.ui.CmsUiProvider; +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.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +/** + * Display the text of the context, and provide an editor if the user can edit. + */ +public class DocumentPage implements CmsUiProvider { + public final static String WWW = "www"; + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + + ScrolledPage page = new ScrolledPage(parent, SWT.NONE); + page.setLayout(CmsUiUtils.noSpaceGridLayout()); + GridData textGd = CmsUiUtils.fillAll(); + page.setLayoutData(textGd); + + if (context.isNodeType(DocBookTypes.ARTICLE)) { + CmsEditable cmsEditable = new JcrVersionCmsEditable(context); + if (cmsEditable.canEdit()) + new TextEditorHeader(cmsEditable, parent, SWT.NONE).setLayoutData(CmsUiUtils.fillWidth()); + if (!cmsEditable.isEditing()) + cmsEditable.startEditing(); + new DocumentTextEditor(page, SWT.FLAT, context, cmsEditable); + } else { + parent.setBackgroundMode(SWT.INHERIT_NONE); + if (context.getSession().hasPermission(context.getPath(), Session.ACTION_ADD_NODE)) { +// new DocumentTextEditor(page, SWT.FLAT, indexNode, cmsEditable); +// textGd.heightHint = 400; + + for (NodeIterator ni = context.getNodes(); ni.hasNext();) { + Node textNode = ni.nextNode(); + if (textNode.isNodeType(NodeType.NT_FOLDER)) + new CmsLink(textNode.getName() + "/", textNode.getPath()).createUi(parent, textNode); + } + for (NodeIterator ni = context.getNodes(); ni.hasNext();) { + Node textNode = ni.nextNode(); + if (textNode.isNodeType(DocBookTypes.ARTICLE) && !textNode.getName().equals(WWW)) + new CmsLink(textNode.getName(), textNode.getPath()).createUi(parent, textNode); + } + } + } + return page; + } +}