From: Mathieu Baudier Date: Mon, 25 Jan 2021 08:36:59 +0000 (+0100) Subject: Refactor DocBook names. X-Git-Tag: argeo-suite-2.1.18~25 X-Git-Url: http://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=4bd6cf0556f597ee73c8f13df45019ccf9e418a6 Refactor DocBook names. --- diff --git a/publishing/org.argeo.publishing.ui/bnd.bnd b/publishing/org.argeo.publishing.ui/bnd.bnd index 03c44b6..60d985c 100644 --- a/publishing/org.argeo.publishing.ui/bnd.bnd +++ b/publishing/org.argeo.publishing.ui/bnd.bnd @@ -9,7 +9,7 @@ org.osgi.framework,\ * Provide-Capability:\ -cms.datamodel; name=docbook; cnd=/org/argeo/docbook/ui/docbook.cnd; abstract=true +cms.datamodel; name=docbook; cnd=/org/argeo/docbook/docbook.cnd; abstract=true Service-Component:\ OSGI-INF/fontsServlet.xml diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DbkUtils.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DbkUtils.java index e153e86..8426a80 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DbkUtils.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DbkUtils.java @@ -1,39 +1,60 @@ package org.argeo.docbook; +import static org.argeo.docbook.DocBookType.para; + import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; -import javax.jcr.nodetype.NodeType; -import org.argeo.docbook.ui.DocBookNames; -import org.argeo.docbook.ui.DocBookTypes; -import org.argeo.entity.EntityNames; import org.argeo.entity.EntityType; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrException; -import org.argeo.jcr.JcrUtils; import org.argeo.jcr.JcrxApi; /** Utilities around DocBook. */ public class DbkUtils { - public static String getTitle(Node node) { - return JcrxApi.getXmlValue(node, DocBookTypes.TITLE); + /** Get or add a DocBook element. */ + public static Node getOrAddDbk(Node parent, DocBookType child) { + try { + if (!parent.hasNode(child.get())) { + return addDbk(parent, child); + } else { + return parent.getNode(child.get()); + } + } catch (RepositoryException e) { + throw new JcrException("Cannot get or add element " + child.get() + " to " + parent, e); + } } - public static void setTitle(Node node, String txt) { + /** Add a DocBook element to this node. */ + public static Node addDbk(Node parent, DocBookType child) { try { - Node titleNode = JcrUtils.getOrAdd(node, DocBookTypes.TITLE, DocBookTypes.TITLE); - JcrxApi.setXmlValue(node, titleNode, txt); + Node node = parent.addNode(child.get(), child.get()); + return node; } catch (RepositoryException e) { - throw new JcrException("Cannot add empty paragraph to " + node, e); + throw new JcrException("Cannot add element " + child.get() + " to " + parent, e); } } + /** Whether this DocBook element is of this type. */ + public static boolean isDbk(Node node, DocBookType type) { + return Jcr.getName(node).equals(type.get()); + } + + public static String getTitle(Node node) { + return JcrxApi.getXmlValue(node, DocBookType.title.get()); + } + + public static void setTitle(Node node, String txt) { + Node titleNode = getOrAddDbk(node, DocBookType.title); + JcrxApi.setXmlValue(node, titleNode, txt); + } + public static Node getMetadata(Node infoContainer) { try { - if (!infoContainer.hasNode(DocBookTypes.INFO)) + if (!infoContainer.hasNode(DocBookType.info.get())) return null; - Node info = infoContainer.getNode(DocBookTypes.INFO); + Node info = infoContainer.getNode(DocBookType.info.get()); if (!info.hasNode(EntityType.local.get())) return null; return info.getNode(EntityType.local.get()); @@ -58,33 +79,29 @@ public class DbkUtils { } public static Node addParagraph(Node node, String txt) { - try { - Node para = node.addNode(DocBookTypes.PARA, DocBookTypes.PARA); - JcrxApi.setXmlValue(node, para, txt); - return para; - } catch (RepositoryException e) { - throw new JcrException("Cannot add empty paragraph to " + node, e); - } + Node p = addDbk(node, para); + JcrxApi.setXmlValue(node, p, txt); + return p; } public static Node insertImageAfter(Node sibling) { try { // FIXME make it more robust - if (DocBookTypes.IMAGEDATA.equals(sibling.getName())) { + if (DocBookType.imagedata.get().equals(sibling.getName())) { sibling = sibling.getParent().getParent(); } Node parent = sibling.getParent(); - Node mediaNode = parent.addNode(DocBookTypes.MEDIAOBJECT, DocBookTypes.MEDIAOBJECT); + Node mediaNode = addDbk(parent, DocBookType.mediaobject); // TODO optimise? parent.orderBefore(mediaNode.getName() + "[" + mediaNode.getIndex() + "]", sibling.getName() + "[" + sibling.getIndex() + "]"); parent.orderBefore(sibling.getName() + "[" + sibling.getIndex() + "]", mediaNode.getName() + "[" + mediaNode.getIndex() + "]"); - Node imageNode = mediaNode.addNode(DocBookTypes.IMAGEOBJECT, DocBookTypes.IMAGEOBJECT); - Node imageDataNode = imageNode.addNode(DocBookTypes.IMAGEDATA, DocBookTypes.IMAGEDATA); + Node imageNode = addDbk(mediaNode, DocBookType.imageobject); + Node imageDataNode = addDbk(imageNode, DocBookType.imagedata); // Node infoNode = imageNode.addNode(DocBookTypes.INFO, DocBookTypes.INFO); // Node fileNode = JcrUtils.copyBytesAsFile(mediaFolder, EntityType.box.get(), new byte[0]); // fileNode.addMixin(EntityType.box.get()); diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookNames.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookNames.java new file mode 100644 index 0000000..febae9f --- /dev/null +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookNames.java @@ -0,0 +1,20 @@ +package org.argeo.docbook; + +public interface DocBookNames { + // ELEMENTS +// public final static String DBK_ARTICLE = "dbk:article"; +// public final static String DBK_PARA = "dbk:para"; +// public final static String DBK_TITLE = "dbk:title"; +// public final static String DBK_SECTION = "dbk:section"; +// public final static String DBK_MEDIAOBJECT = "dbk:mediaobject"; + + // ATTRIBUTES +// public final static String JCR_XMLTEXT = "jcr:xmltext"; +// public final static String JCR_XMLCHARACTERS = "jcr:xmlcharacters"; + + public final static String DBK_ROLE = "dbk:role"; + public final static String DBK_FILEREF = "dbk:fileref"; + public final static String DBK_CONTENTWIDTH = "dbk:contentwidth"; + public final static String DBK_CONTENTDEPTH = "dbk:contentdepth"; + +} diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookType.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookType.java new file mode 100644 index 0000000..bb1db63 --- /dev/null +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookType.java @@ -0,0 +1,33 @@ +package org.argeo.docbook; + +import org.argeo.entity.JcrName; + +/** Types related to DocBook. */ +public enum DocBookType implements JcrName { + book, article, section, + // + info, title, para, + // + mediaobject, imageobject, imagedata, + // + ; + + @Override + public String getPrefix() { + return prefix(); + } + + public static String prefix() { + return "dbk"; + } + + @Override + public String getNamespace() { + return namespace(); + } + + public static String namespace() { + return "http://docbook.org/ns/docbook"; + } + +} diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/docbook.cnd b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/docbook.cnd new file mode 100644 index 0000000..3c44533 --- /dev/null +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/docbook.cnd @@ -0,0 +1,527 @@ + + + + +[argeodbk:titled] +mixin + + dbk:info (dbk:info) = dbk:info * + + dbk:title (dbk:title) = dbk:title * + +[argeodbk:linkingAttributes] +mixin + - dbk:linkend (String) + - xlink:actuate (String) + - xlink:arcrole (String) + - xlink:href (String) + - xlink:role (String) + - xlink:show (String) + - xlink:title (String) + - xlink:type (String) + +[argeodbk:freeText] +mixin + + dbk:phrase (dbk:phrase) = dbk:phrase * + + dbk:replaceable (dbk:replaceable) = dbk:replaceable * + + jcr:xmltext (jcrx:xmltext) = jcrx:xmltext * + +[argeodbk:markupInlines] +mixin + +[argeodbk:listElements] +mixin + + dbk:itemizedlist (dbk:itemizedlist) = dbk:itemizedlist * + + dbk:orderedlist (dbk:orderedlist) = dbk:orderedlist * + + dbk:simplelist (dbk:simplelist) = dbk:simplelist * + +[argeodbk:paragraphElements] +mixin + + dbk:para (dbk:para) = dbk:para * + +[argeodbk:indexingInlines] +mixin + +[argeodbk:techDocElements] +mixin + + dbk:table (dbk:table) = dbk:table * + +[argeodbk:techDocInlines] +mixin + +[argeodbk:publishingElements] +mixin + +[argeodbk:ubiquitousInlines] +mixin + + dbk:alt (dbk:alt) = dbk:alt * + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:biblioref (dbk:biblioref) = dbk:biblioref * + + dbk:inlinemediaobject (dbk:inlinemediaobject) = dbk:inlinemediaobject * + + dbk:link (dbk:link) = dbk:link * + + dbk:olink (dbk:olink) = dbk:olink * + + dbk:remark (dbk:remark) = dbk:remark * + + dbk:subscript (dbk:subscript) = dbk:subscript * + + dbk:superscript (dbk:superscript) = dbk:superscript * + + dbk:xref (dbk:xref) = dbk:xref * + +[argeodbk:abstractSection] +mixin + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:remark (dbk:remark) = dbk:remark * + + dbk:subtitle (dbk:subtitle) = dbk:subtitle * + - dbk:label (String) + - dbk:status (String) + +[argeodbk:bibliographyInlines] +mixin + + dbk:author (dbk:author) = dbk:author * + + dbk:editor (dbk:editor) = dbk:editor * + + dbk:orgname (dbk:orgname) = dbk:orgname * + + dbk:personname (dbk:personname) = dbk:personname * + +[argeodbk:publishingInlines] +mixin + + dbk:emphasis (dbk:emphasis) = dbk:emphasis * + +[argeodbk:base] +abstract +orderable + - dbk:annotations (String) + - dbk:arch (String) + - dbk:audience (String) + - dbk:condition (String) + - dbk:conformance (String) + - dbk:dir (String) + - dbk:os (String) + - dbk:remap (String) + - dbk:revision (String) + - dbk:revisionflag (String) + - dbk:role (String) + - dbk:security (String) + - dbk:userlevel (String) + - dbk:vendor (String) + - dbk:version (String) + - dbk:wordsize (String) + - dbk:xreflabel (String) + +[dbk:alt] > argeodbk:base + + dbk:inlinemediaobject (dbk:inlinemediaobject) = dbk:inlinemediaobject * + + jcr:xmltext (jcrx:xmltext) = jcrx:xmltext * + +[dbk:anchor] > argeodbk:base + +[dbk:annotation] > argeodbk:base, argeodbk:indexingInlines, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:remark (dbk:remark) = dbk:remark * + - dbk:annotates (String) + +[dbk:article] > argeodbk:abstractSection, argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:section (dbk:section) = dbk:section * + - dbk:class (String) + +[dbk:audiodata] > argeodbk:base + + dbk:info (dbk:info) = dbk:info + - dbk:entityref (String) + - dbk:fileref (String) + - dbk:format (String) + +[dbk:audioobject] > argeodbk:base, argeodbk:linkingAttributes + + dbk:audiodata (dbk:audiodata) = dbk:audiodata + + dbk:info (dbk:info) = dbk:info + +[dbk:author] > argeodbk:base, argeodbk:linkingAttributes + + dbk:orgdiv (dbk:orgdiv) = dbk:orgdiv * + + dbk:orgname (dbk:orgname) = dbk:orgname + + dbk:personblurb (dbk:personblurb) = dbk:personblurb * + + dbk:personname (dbk:personname) = dbk:personname + +[dbk:biblioref] > argeodbk:base, argeodbk:linkingAttributes + - dbk:begin (String) + - dbk:end (String) + - dbk:endterm (Reference) + - dbk:units (String) + - dbk:xrefstyle (String) + +[dbk:book] > argeodbk:base, argeodbk:linkingAttributes, argeodbk:titled + + dbk:article (dbk:article) = dbk:article * + + dbk:chapter (dbk:chapter) = dbk:chapter * + + dbk:subtitle (dbk:subtitle) = dbk:subtitle * + - dbk:label (String) + - dbk:status (String) + +[dbk:caption] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:remark (dbk:remark) = dbk:remark * + + jcr:xmltext (jcrx:xmltext) = jcrx:xmltext * + - dbk:class (String) + - dbk:lang (String) + - dbk:onclick (String) + - dbk:ondblclick (String) + - dbk:onkeydown (String) + - dbk:onkeypress (String) + - dbk:onkeyup (String) + - dbk:onmousedown (String) + - dbk:onmousemove (String) + - dbk:onmouseout (String) + - dbk:onmouseover (String) + - dbk:onmouseup (String) + - dbk:style (String) + - dbk:title (String) + +[dbk:chapter] > argeodbk:abstractSection, argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:section (dbk:section) = dbk:section * + +[dbk:colspec] > argeodbk:base, argeodbk:linkingAttributes + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:colname (String) + - dbk:colnum (String) + - dbk:colsep (String) + - dbk:colwidth (String) + - dbk:rowsep (String) + +[dbk:editor] > argeodbk:base, argeodbk:linkingAttributes + + dbk:orgdiv (dbk:orgdiv) = dbk:orgdiv * + + dbk:orgname (dbk:orgname) = dbk:orgname + + dbk:personblurb (dbk:personblurb) = dbk:personblurb * + + dbk:personname (dbk:personname) = dbk:personname + +[dbk:emphasis] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + +[dbk:entry] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:markupInlines, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:publishingInlines, argeodbk:techDocElements, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:colname (String) + - dbk:colsep (String) + - dbk:morerows (String) + - dbk:nameend (String) + - dbk:namest (String) + - dbk:rotate (String) + - dbk:rowsep (String) + - dbk:spanname (String) + - dbk:valign (String) + +[dbk:entrytbl] > argeodbk:base, argeodbk:linkingAttributes + + dbk:colspec (dbk:colspec) = dbk:colspec * + + dbk:spanspec (dbk:spanspec) = dbk:spanspec * + + dbk:tbody (dbk:tbody) = dbk:tbody + + dbk:thead (dbk:thead) = dbk:thead + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:colname (String) + - dbk:cols (String) + - dbk:colsep (String) + - dbk:nameend (String) + - dbk:namest (String) + - dbk:rowsep (String) + - dbk:spanname (String) + - dbk:tgroupstyle (String) + +[dbk:imagedata] > argeodbk:base + + dbk:info (dbk:info) = dbk:info + - dbk:align (String) + - dbk:contentdepth (String) + - dbk:contentwidth (String) + - dbk:depth (String) + - dbk:entityref (String) + - dbk:fileref (String) + - dbk:format (String) + - dbk:scale (String) + - dbk:scalefit (String) + - dbk:valign (String) + - dbk:width (String) + +[dbk:imageobject] > argeodbk:base, argeodbk:linkingAttributes + + dbk:imagedata (dbk:imagedata) = dbk:imagedata + + dbk:info (dbk:info) = dbk:info + +[dbk:info] > argeodbk:base + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:author (dbk:author) = dbk:author * + + dbk:editor (dbk:editor) = dbk:editor * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:orgname (dbk:orgname) = dbk:orgname * + + dbk:subtitle (dbk:subtitle) = dbk:subtitle * + + dbk:title (dbk:title) = dbk:title * + + * (nt:base) = nt:unstructured * + +[dbk:inlinemediaobject] > argeodbk:base, argeodbk:linkingAttributes + + dbk:alt (dbk:alt) = dbk:alt + + dbk:audioobject (dbk:audioobject) = dbk:audioobject * + + dbk:imageobject (dbk:imageobject) = dbk:imageobject * + + dbk:info (dbk:info) = dbk:info + + dbk:textobject (dbk:textobject) = dbk:textobject * + + dbk:videoobject (dbk:videoobject) = dbk:videoobject * + +[dbk:itemizedlist] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:listitem (dbk:listitem) = dbk:listitem * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:remark (dbk:remark) = dbk:remark * + - dbk:mark (String) + - dbk:spacing (String) + +[dbk:link] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + - dbk:endterm (Reference) + - dbk:xrefstyle (String) + +[dbk:listitem] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:remark (dbk:remark) = dbk:remark * + - dbk:override (String) + +[dbk:mediaobject] > argeodbk:base, argeodbk:linkingAttributes + + dbk:alt (dbk:alt) = dbk:alt + + dbk:audioobject (dbk:audioobject) = dbk:audioobject * + + dbk:caption (dbk:caption) = dbk:caption + + dbk:imageobject (dbk:imageobject) = dbk:imageobject * + + dbk:info (dbk:info) = dbk:info + + dbk:textobject (dbk:textobject) = dbk:textobject * + + dbk:videoobject (dbk:videoobject) = dbk:videoobject * + +[dbk:olink] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + - dbk:localinfo (String) + - dbk:targetdoc (String) + - dbk:targetptr (String) + - dbk:type (String) + - dbk:xrefstyle (String) + +[dbk:orderedlist] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:listitem (dbk:listitem) = dbk:listitem * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:remark (dbk:remark) = dbk:remark * + - dbk:continuation (String) + - dbk:inheritnum (String) + - dbk:numeration (String) + - dbk:spacing (String) + - dbk:startingnumber (String) + +[dbk:orgdiv] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + +[dbk:orgname] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines + - dbk:class (String) + - dbk:otherclass (String) + +[dbk:para] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:markupInlines, argeodbk:publishingElements, argeodbk:publishingInlines, argeodbk:techDocElements, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + + dbk:info (dbk:info) = dbk:info * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + +[dbk:personblurb] > argeodbk:base, argeodbk:linkingAttributes, argeodbk:paragraphElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + +[dbk:personname] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines + +[dbk:phrase] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + +[dbk:remark] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines + +[dbk:replaceable] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines + - dbk:class (String) + +[dbk:row] > argeodbk:base, argeodbk:linkingAttributes + + dbk:entry (dbk:entry) = dbk:entry * + + dbk:entrytbl (dbk:entrytbl) = dbk:entrytbl * + - dbk:rowsep (String) + - dbk:valign (String) + +[dbk:section] > argeodbk:abstractSection, argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:section (dbk:section) = dbk:section * + +[dbk:set] > argeodbk:base, argeodbk:linkingAttributes, argeodbk:titled + + dbk:book (dbk:book) = dbk:book * + + dbk:set (dbk:set) = dbk:set * + + dbk:subtitle (dbk:subtitle) = dbk:subtitle * + - dbk:label (String) + - dbk:status (String) + +[dbk:simplelist] > argeodbk:base, argeodbk:linkingAttributes + - dbk:columns (String) + - dbk:type (String) + +[dbk:spanspec] > argeodbk:base, argeodbk:linkingAttributes + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:colsep (String) + - dbk:nameend (String) + - dbk:namest (String) + - dbk:rowsep (String) + - dbk:spanname (String) + +[dbk:subscript] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines + +[dbk:subtitle] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + +[dbk:superscript] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines + +[dbk:table] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:titled + + dbk:caption (dbk:caption) = dbk:caption + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:tbody (dbk:tbody) = dbk:tbody * + + dbk:textobject (dbk:textobject) = dbk:textobject * + + dbk:tfoot (dbk:tfoot) = dbk:tfoot + + dbk:tgroup (dbk:tgroup) = dbk:tgroup * + + dbk:thead (dbk:thead) = dbk:thead + - dbk:border (String) + - dbk:cellpadding (String) + - dbk:cellspacing (String) + - dbk:class (String) + - dbk:colsep (String) + - dbk:floatstyle (String) + - dbk:frame (String) + - dbk:label (String) + - dbk:lang (String) + - dbk:onclick (String) + - dbk:ondblclick (String) + - dbk:onkeydown (String) + - dbk:onkeypress (String) + - dbk:onkeyup (String) + - dbk:onmousedown (String) + - dbk:onmousemove (String) + - dbk:onmouseout (String) + - dbk:onmouseover (String) + - dbk:onmouseup (String) + - dbk:orient (String) + - dbk:pgwide (String) + - dbk:rowheader (String) + - dbk:rowsep (String) + - dbk:rules (String) + - dbk:shortentry (String) + - dbk:style (String) + - dbk:summary (String) + - dbk:tabstyle (String) + - dbk:title (String) + - dbk:tocentry (String) + - dbk:width (String) + +[dbk:tbody] > argeodbk:base, argeodbk:linkingAttributes + + dbk:row (dbk:row) = dbk:row * + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:class (String) + - dbk:lang (String) + - dbk:onclick (String) + - dbk:ondblclick (String) + - dbk:onkeydown (String) + - dbk:onkeypress (String) + - dbk:onkeyup (String) + - dbk:onmousedown (String) + - dbk:onmousemove (String) + - dbk:onmouseout (String) + - dbk:onmouseover (String) + - dbk:onmouseup (String) + - dbk:style (String) + - dbk:title (String) + - dbk:valign (String) + +[dbk:textobject] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements + + dbk:anchor (dbk:anchor) = dbk:anchor * + + dbk:annotation (dbk:annotation) = dbk:annotation * + + dbk:info (dbk:info) = dbk:info + + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * + + dbk:phrase (dbk:phrase) = dbk:phrase + + dbk:remark (dbk:remark) = dbk:remark * + +[dbk:tfoot] > argeodbk:base, argeodbk:linkingAttributes + + dbk:colspec (dbk:colspec) = dbk:colspec * + + dbk:row (dbk:row) = dbk:row * + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:class (String) + - dbk:lang (String) + - dbk:onclick (String) + - dbk:ondblclick (String) + - dbk:onkeydown (String) + - dbk:onkeypress (String) + - dbk:onkeyup (String) + - dbk:onmousedown (String) + - dbk:onmousemove (String) + - dbk:onmouseout (String) + - dbk:onmouseover (String) + - dbk:onmouseup (String) + - dbk:style (String) + - dbk:title (String) + - dbk:valign (String) + +[dbk:tgroup] > argeodbk:base, argeodbk:linkingAttributes + + dbk:colspec (dbk:colspec) = dbk:colspec * + + dbk:spanspec (dbk:spanspec) = dbk:spanspec * + + dbk:tbody (dbk:tbody) = dbk:tbody + + dbk:tfoot (dbk:tfoot) = dbk:tfoot + + dbk:thead (dbk:thead) = dbk:thead + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:cols (String) + - dbk:colsep (String) + - dbk:rowsep (String) + - dbk:tgroupstyle (String) + +[dbk:thead] > argeodbk:base, argeodbk:linkingAttributes + + dbk:colspec (dbk:colspec) = dbk:colspec * + + dbk:row (dbk:row) = dbk:row * + - dbk:align (String) + - dbk:char (String) + - dbk:charoff (String) + - dbk:class (String) + - dbk:lang (String) + - dbk:onclick (String) + - dbk:ondblclick (String) + - dbk:onkeydown (String) + - dbk:onkeypress (String) + - dbk:onkeyup (String) + - dbk:onmousedown (String) + - dbk:onmousemove (String) + - dbk:onmouseout (String) + - dbk:onmouseover (String) + - dbk:onmouseup (String) + - dbk:style (String) + - dbk:title (String) + - dbk:valign (String) + +[dbk:title] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines + +[dbk:videodata] > argeodbk:base + + dbk:info (dbk:info) = dbk:info + - dbk:align (String) + - dbk:contentdepth (String) + - dbk:contentwidth (String) + - dbk:depth (String) + - dbk:entityref (String) + - dbk:fileref (String) + - dbk:format (String) + - dbk:scale (String) + - dbk:scalefit (String) + - dbk:valign (String) + - dbk:width (String) + +[dbk:videoobject] > argeodbk:base, argeodbk:linkingAttributes + + dbk:info (dbk:info) = dbk:info + + dbk:videodata (dbk:videodata) = dbk:videodata + +[dbk:xref] > argeodbk:base, argeodbk:linkingAttributes + - dbk:endterm (Reference) + - dbk:xrefstyle (String) + + diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java index c324756..5896d18 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java @@ -1,7 +1,14 @@ package org.argeo.docbook.ui; import static org.argeo.cms.ui.util.CmsUiUtils.fillWidth; - +import static org.argeo.docbook.DbkUtils.addDbk; +import static org.argeo.docbook.DbkUtils.isDbk; +import static org.argeo.docbook.DocBookType.para; + +import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -13,7 +20,6 @@ import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; import javax.jcr.Session; -import javax.jcr.nodetype.NodeType; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -30,6 +36,9 @@ import org.argeo.cms.ui.viewers.Section; import org.argeo.cms.ui.viewers.SectionPart; import org.argeo.cms.ui.widgets.EditableText; import org.argeo.cms.ui.widgets.StyledControl; +import org.argeo.docbook.DbkUtils; +import org.argeo.docbook.DocBookNames; +import org.argeo.docbook.DocBookType; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrException; import org.argeo.jcr.JcrUtils; @@ -94,10 +103,10 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke CmsUiUtils.clear(section); Node node = section.getNode(); TextSection textSection = (TextSection) section; - if (node.hasNode(DocBookTypes.TITLE)) { + if (node.hasNode(DocBookType.title.get())) { if (section.getHeader() == null) section.createHeader(); - Node titleNode = node.getNode(DocBookTypes.TITLE); + Node titleNode = node.getNode(DocBookType.title.get()); DocBookSectionTitle title = newSectionTitle(textSection, titleNode); title.setLayoutData(CmsUiUtils.fillWidth()); updateContent(title); @@ -106,12 +115,13 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke for (NodeIterator ni = node.getNodes(); ni.hasNext();) { Node child = ni.nextNode(); SectionPart sectionPart = null; - if (child.isNodeType(DocBookTypes.MEDIAOBJECT)) { - if (child.hasNode(DocBookTypes.IMAGEOBJECT)) { - Node imageDataNode = child.getNode(DocBookTypes.IMAGEOBJECT).getNode(DocBookTypes.IMAGEDATA); + if (isDbk(child, DocBookType.mediaobject)) { + if (child.hasNode(DocBookType.imageobject.get())) { + Node imageDataNode = child.getNode(DocBookType.imageobject.get()) + .getNode(DocBookType.imagedata.get()); sectionPart = newImg(textSection, imageDataNode); } - } else if (child.isNodeType(DocBookTypes.PARA)) { + } else if (isDbk(child, para)) { sectionPart = newParagraph(textSection, child); } else { sectionPart = newSectionPart(textSection, child); @@ -124,9 +134,9 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke } // if (!flat) - for (NodeIterator ni = section.getNode().getNodes(DocBookNames.DBK_SECTION); ni.hasNext();) { + for (NodeIterator ni = section.getNode().getNodes(DocBookType.section.get()); ni.hasNext();) { Node child = ni.nextNode(); - if (child.isNodeType(DocBookTypes.SECTION)) { + if (isDbk(child, DocBookType.section)) { TextSection newSection = new TextSection(section, SWT.NONE, child); newSection.setLayoutData(CmsUiUtils.fillWidth()); refresh(newSection); @@ -189,12 +199,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke protected DocBookSectionTitle prepareSectionTitle(Section newSection, String titleText) throws RepositoryException { Node sectionNode = newSection.getNode(); - Node titleNode; - if (!sectionNode.hasNode(DocBookTypes.TITLE)) { - titleNode = sectionNode.addNode(DocBookTypes.TITLE, DocBookTypes.TITLE); - } else { - titleNode = sectionNode.getNode(DocBookTypes.TITLE); - } + Node titleNode = DbkUtils.getOrAddDbk(sectionNode, DocBookType.title); getTextInterpreter().write(titleNode, titleText); if (newSection.getHeader() == null) newSection.createHeader(); @@ -210,7 +215,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke if (part instanceof StyledControl && (sectionPart.getSection() instanceof TextSection)) { TextSection section = (TextSection) sectionPart.getSection(); StyledControl styledControl = (StyledControl) part; - if (partNode.isNodeType(DocBookTypes.PARA)) { + if (isDbk(partNode, para)) { String style = partNode.hasProperty(DocBookNames.DBK_ROLE) ? partNode.getProperty(DocBookNames.DBK_ROLE).getString() : section.getDefaultTextStyle(); @@ -261,7 +266,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke Node sectionNode = section.getNode(); Node currentParagraphN = currentParagraph.getNode(); for (int i = 1; i < lines.length; i++) { - Node newNode = sectionNode.addNode(DocBookNames.DBK_PARA, DocBookTypes.PARA); + Node newNode = addDbk(sectionNode, para); // newNode.addMixin(CmsTypes.CMS_STYLED); saveLine(newNode, lines[i]); // second node was create as last, if it is not the next @@ -356,7 +361,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke if (sectionPart instanceof DbkImg) { // FIXME make it more robust node = node.getParent().getParent(); - if (!DocBookNames.DBK_MEDIAOBJECT.equals(node.getName())) + if (!isDbk(node, DocBookType.mediaobject)) throw new IllegalArgumentException("Node " + node + " is not a media object."); } node.remove(); @@ -402,7 +407,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke // FIXME set content the DocBook way // firstNode.setProperty(CMS_CONTENT, first); - Node secondNode = sectionNode.addNode(DocBookNames.DBK_PARA, DocBookTypes.PARA); + Node secondNode = addDbk(sectionNode, para); // secondNode.addMixin(CmsTypes.CMS_STYLED); // second node was create as last, if it is not the next one, it @@ -434,11 +439,11 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke int caretPosition = text.getCaretPosition(); Section section = sectionTitle.getSection(); Node sectionNode = section.getNode(); - Node paragraphNode = sectionNode.addNode(DocBookNames.DBK_PARA, DocBookTypes.PARA); + Node paragraphNode = addDbk(sectionNode, para); // paragraphNode.addMixin(CmsTypes.CMS_STYLED); textInterpreter.write(paragraphNode, txt.substring(caretPosition)); - textInterpreter.write(sectionNode.getNode(DocBookTypes.TITLE), txt.substring(0, caretPosition)); + textInterpreter.write(sectionNode.getNode(DocBookType.title.get()), txt.substring(0, caretPosition)); sectionNode.orderBefore(p(paragraphNode.getIndex()), p(1)); persistChanges(sectionNode); @@ -482,7 +487,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke String txt = text.getText(); Node paragraphNode = paragraph.getNode(); Node sectionNode = paragraphNode.getParent(); - NodeIterator paragraphNodes = sectionNode.getNodes(DocBookNames.DBK_PARA); + NodeIterator paragraphNodes = sectionNode.getNodes(DocBookType.para.get()); long size = paragraphNodes.getSize(); if (paragraphNode.getIndex() == size) return;// do nothing @@ -514,19 +519,19 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke if (part instanceof Paragraph) { // FIXME adapt to DocBook - Node newNode = sectionNode.addNode(DocBookNames.DBK_MEDIAOBJECT, NodeType.NT_FILE); - newNode.addNode(Node.JCR_CONTENT, NodeType.NT_RESOURCE); - JcrUtils.copyBytesAsFile(sectionNode, p(newNode.getIndex()), new byte[0]); - if (partIndex < newNode.getIndex() - 1) { - // was not last - sectionNode.orderBefore(p(newNode.getIndex()), p(partIndex - 1)); - } - // sectionNode.orderBefore(p(partNode.getIndex()), - // p(newNode.getIndex())); - persistChanges(sectionNode); - DbkImg img = newImg((TextSection) section, newNode); - edit(img, null); - layout(img.getControl()); +// Node newNode = sectionNode.addNode(DocBookNames.DBK_MEDIAOBJECT, NodeType.NT_FILE); +// newNode.addNode(Node.JCR_CONTENT, NodeType.NT_RESOURCE); +// JcrUtils.copyBytesAsFile(sectionNode, p(newNode.getIndex()), new byte[0]); +// if (partIndex < newNode.getIndex() - 1) { +// // was not last +// sectionNode.orderBefore(p(newNode.getIndex()), p(partIndex - 1)); +// } +// // sectionNode.orderBefore(p(partNode.getIndex()), +// // p(newNode.getIndex())); +// persistChanges(sectionNode); +// DbkImg img = newImg((TextSection) section, newNode); +// edit(img, null); +// layout(img.getControl()); } else if (part instanceof DbkImg) { if (getEdited() == part) return; @@ -553,12 +558,12 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke Node sectionNode = section.getNode(); // main title if (section == mainSection && section instanceof TextSection && paragraphNode.getIndex() == 1 - && !sectionNode.hasNode(DocBookTypes.TITLE)) { + && !sectionNode.hasNode(DocBookType.title.get())) { DocBookSectionTitle sectionTitle = prepareSectionTitle(section, txt); edit(sectionTitle, 0); return; } - Node newSectionNode = sectionNode.addNode(DocBookNames.DBK_SECTION, DocBookTypes.SECTION); + Node newSectionNode = addDbk(sectionNode, DocBookType.section); // newSectionNode.addMixin(NodeType.MIX_TITLE); sectionNode.orderBefore(h(newSectionNode.getIndex()), h(1)); @@ -568,13 +573,14 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke while (sectionNode.hasNode(p(paragraphIndex + 1))) { Node parag = sectionNode.getNode(p(paragraphIndex + 1)); sectionNode.getSession().move(sectionPath + '/' + p(paragraphIndex + 1), - newSectionPath + '/' + DocBookNames.DBK_PARA); + newSectionPath + '/' + DocBookType.para.get()); SectionPart sp = section.getSectionPart(parag.getIdentifier()); if (sp instanceof Control) ((Control) sp).dispose(); } // create title - Node titleNode = newSectionNode.addNode(DocBookTypes.TITLE, DocBookTypes.TITLE); + Node titleNode = DbkUtils.addDbk(newSectionNode, DocBookType.title); + // newSectionNode.addNode(DocBookType.TITLE, DocBookType.TITLE); getTextInterpreter().write(titleNode, txt); TextSection newSection = new TextSection(section, section.getStyle(), newSectionNode); @@ -600,7 +606,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke if (sectionN.getIndex() == 1) return;// cannot deepen first section Node previousSectionN = parentSectionN.getNode(h(sectionN.getIndex() - 1)); - NodeIterator subSections = previousSectionN.getNodes(DocBookNames.DBK_SECTION); + NodeIterator subSections = previousSectionN.getNodes(DocBookType.section.get()); int subsectionsCount = (int) subSections.getSize(); previousSectionN.getSession().move(sectionN.getPath(), previousSectionN.getPath() + "/" + h(subsectionsCount + 1)); @@ -639,23 +645,23 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke mergedSection = lst.get(sectionNode.getIndex() - 1); } Node mergedNode = mergedSection.getNode(); - boolean mergedHasSubSections = mergedNode.hasNode(DocBookNames.DBK_SECTION); + boolean mergedHasSubSections = mergedNode.hasNode(DocBookType.section.get()); // title as paragraph - Node newParagrapheNode = mergedNode.addNode(DocBookNames.DBK_PARA, DocBookTypes.PARA); + Node newParagrapheNode = addDbk(mergedNode, para); // newParagrapheNode.addMixin(CmsTypes.CMS_STYLED); if (mergedHasSubSections) mergedNode.orderBefore(p(newParagrapheNode.getIndex()), h(1)); - String txt = getTextInterpreter().read(sectionNode.getNode(DocBookTypes.TITLE)); + String txt = getTextInterpreter().read(sectionNode.getNode(DocBookType.title.get())); getTextInterpreter().write(newParagrapheNode, txt); // move - NodeIterator paragraphs = sectionNode.getNodes(DocBookNames.DBK_PARA); + NodeIterator paragraphs = sectionNode.getNodes(para.get()); while (paragraphs.hasNext()) { Node p = paragraphs.nextNode(); SectionPart sp = section.getSectionPart(p.getIdentifier()); if (sp instanceof Control) ((Control) sp).dispose(); - mergedNode.getSession().move(p.getPath(), mergedNode.getPath() + '/' + DocBookNames.DBK_PARA); + mergedNode.getSession().move(p.getPath(), mergedNode.getPath() + '/' + para.get()); if (mergedHasSubSections) mergedNode.orderBefore(p(p.getIndex()), h(1)); } @@ -665,7 +671,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke while (subsections.hasNext()) { Section subsection = subsections.next(); Node s = subsection.getNode(); - mergedNode.getSession().move(s.getPath(), mergedNode.getPath() + '/' + DocBookNames.DBK_SECTION); + mergedNode.getSession().move(s.getPath(), mergedNode.getPath() + '/' + DocBookType.section.get()); subsection.dispose(); } @@ -723,13 +729,13 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke // UTILITIES protected String p(Integer index) { StringBuilder sb = new StringBuilder(6); - sb.append(DocBookNames.DBK_PARA).append('[').append(index).append(']'); + sb.append(para.get()).append('[').append(index).append(']'); return sb.toString(); } protected String h(Integer index) { StringBuilder sb = new StringBuilder(5); - sb.append(DocBookNames.DBK_SECTION).append('[').append(index).append(']'); + sb.append(DocBookType.section.get()).append('[').append(index).append(']'); return sb.toString(); } @@ -865,6 +871,29 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke return new ArrayList<>(); } + public void export(Path directory, String fileName) { + Path filePath = directory.resolve(fileName); + try { + Files.createDirectories(directory); + try (OutputStream out = Files.newOutputStream(filePath)) { + exportXml(out); + } + if (log.isDebugEnabled()) + log.debug("DocBook " + getMainSection().getNode() + " exported to " + filePath.toAbsolutePath()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public void exportXml(OutputStream out) throws IOException { + Node node = getMainSection().getNode(); + try { + node.getSession().exportDocumentView(node.getPath(), out, false, false); + } catch (RepositoryException e) { + throw new JcrException("Cannot export " + node + " to XML", e); + } + } + // FILE UPLOAD LISTENER private class FUL implements FileUploadListener { public void uploadProgress(FileUploadEvent event) { diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java index 2b57b4b..1e3b070 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java @@ -20,6 +20,9 @@ import javax.jcr.nodetype.NodeType; import org.argeo.cms.ui.CmsImageManager; import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.cms.ui.util.DefaultImageManager; +import org.argeo.docbook.DbkUtils; +import org.argeo.docbook.DocBookNames; +import org.argeo.docbook.DocBookType; import org.argeo.entity.EntityNames; import org.argeo.entity.EntityType; import org.argeo.jcr.JcrException; @@ -38,7 +41,7 @@ public class DbkImageManager extends DefaultImageManager { @Override public Binary getImageBinary(Node node) throws RepositoryException { Node fileNode = null; - if (node.getName().equals(DocBookTypes.IMAGEDATA)) { + if (DbkUtils.isDbk(node, DocBookType.imagedata)) { fileNode = getFileNode(node); } if (node.isNodeType(NT_FILE)) { diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java index 25056ef..f5ab997 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java @@ -1,5 +1,9 @@ package org.argeo.docbook.ui; +import static org.argeo.docbook.DbkUtils.isDbk; +import static org.argeo.docbook.DocBookType.para; +import static org.argeo.docbook.DocBookType.title; + import java.io.IOException; import java.io.StringReader; import java.util.List; @@ -23,7 +27,7 @@ public class DbkTextInterpreter implements TextInterpreter { try { if (item instanceof Node) { Node node = (Node) item; - if (node.isNodeType(DocBookTypes.PARA) || node.isNodeType(DocBookTypes.TITLE)) { + if (isDbk(node, para) || isDbk(node, title)) { String raw = convertToStorage(node, content); validateBeforeStoring(raw); Node jcrText; @@ -61,7 +65,7 @@ public class DbkTextInterpreter implements TextInterpreter { item.getSession().refresh(true); if (item instanceof Node) { Node node = (Node) item; - if (node.isNodeType(DocBookTypes.PARA) || node.isNodeType(DocBookTypes.TITLE)) { + if (isDbk(node, para) || isDbk(node, title)) { Node jcrText = node.getNode(Jcr.JCR_XMLTEXT); String txt = jcrText.getProperty(Jcr.JCR_XMLCHARACTERS).getString(); // TODO make it more robust diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookNames.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookNames.java deleted file mode 100644 index 10fa7a4..0000000 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookNames.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.argeo.docbook.ui; - -public interface DocBookNames { - // ELEMENTS - public final static String DBK_ARTICLE = "dbk:article"; - public final static String DBK_PARA = "dbk:para"; - public final static String DBK_TITLE = "dbk:title"; - public final static String DBK_SECTION = "dbk:section"; - public final static String DBK_MEDIAOBJECT = "dbk:mediaobject"; - - // ATTRIBUTES -// public final static String JCR_XMLTEXT = "jcr:xmltext"; -// public final static String JCR_XMLCHARACTERS = "jcr:xmlcharacters"; - - public final static String DBK_ROLE = "dbk:role"; - public final static String DBK_FILEREF = "dbk:fileref"; - public final static String DBK_CONTENTWIDTH = "dbk:contentwidth"; - public final static String DBK_CONTENTDEPTH = "dbk:contentdepth"; - -} diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookTypes.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookTypes.java deleted file mode 100644 index aa37c16..0000000 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookTypes.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.argeo.docbook.ui; - -public interface DocBookTypes { - public final static String BOOK = "dbk:book"; - public final static String ARTICLE = "dbk:article"; - public final static String TITLE = "dbk:title"; - public final static String INFO = "dbk:info"; - public final static String SECTION = "dbk:section"; - public final static String PARA = "dbk:para"; -// public final static String XMLTEXT = "dbk:xmltext"; - - public final static String MEDIAOBJECT = "dbk:mediaobject"; - public final static String IMAGEOBJECT = "dbk:imageobject"; - public final static String IMAGEDATA = "dbk:imagedata"; -} 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 index 6cb0e29..ab491fb 100644 --- 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 @@ -13,6 +13,7 @@ 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.argeo.docbook.DocBookType; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; @@ -32,7 +33,7 @@ public class DocumentPage implements CmsUiProvider { GridData textGd = CmsUiUtils.fillAll(); page.setLayoutData(textGd); - if (context.isNodeType(DocBookTypes.ARTICLE)) { + if (context.isNodeType(DocBookType.article.get())) { CmsEditable cmsEditable = new JcrVersionCmsEditable(context); if (cmsEditable.canEdit()) new TextEditorHeader(cmsEditable, parent, SWT.NONE).setLayoutData(CmsUiUtils.fillWidth()); @@ -52,7 +53,7 @@ public class DocumentPage implements CmsUiProvider { } for (NodeIterator ni = context.getNodes(); ni.hasNext();) { Node textNode = ni.nextNode(); - if (textNode.isNodeType(DocBookTypes.ARTICLE) && !textNode.getName().equals(WWW)) + if (textNode.isNodeType(DocBookType.article.get()) && !textNode.getName().equals(WWW)) new CmsLink(textNode.getName(), textNode.getPath()).createUi(parent, textNode); } } diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java index bdd72d5..6bb8d43 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java @@ -6,6 +6,9 @@ import javax.jcr.RepositoryException; import org.argeo.cms.text.TextSection; import org.argeo.cms.ui.CmsEditable; import org.argeo.cms.ui.util.CmsUiUtils; +import org.argeo.docbook.DbkUtils; +import org.argeo.docbook.DocBookNames; +import org.argeo.docbook.DocBookType; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrxType; import org.eclipse.swt.widgets.Composite; @@ -23,8 +26,7 @@ public class DocumentTextEditor extends AbstractDbkViewer { @Override protected void initModel(Node textNode) throws RepositoryException { if (isFlat()) { - textNode.addNode(DocBookNames.DBK_PARA, DocBookTypes.PARA).addNode(Jcr.JCR_XMLTEXT, JcrxType.JCRX_XMLTEXT) - .setProperty(Jcr.JCR_XMLCHARACTERS, ""); + DbkUtils.addParagraph(textNode, ""); } // else // textNode.setProperty(DocBookNames.DBK_TITLE, textNode.getName()); @@ -32,8 +34,8 @@ public class DocumentTextEditor extends AbstractDbkViewer { @Override protected Boolean isModelInitialized(Node textNode) throws RepositoryException { - return textNode.hasNode(DocBookTypes.TITLE) || textNode.hasNode(DocBookNames.DBK_PARA) - || (!isFlat() && textNode.hasNode(DocBookNames.DBK_SECTION)); + return textNode.hasNode(DocBookType.title.get()) || textNode.hasNode(DocBookType.para.get()) + || (!isFlat() && textNode.hasNode(DocBookType.section.get())); } } diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/docbook.cnd b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/docbook.cnd deleted file mode 100644 index 3c44533..0000000 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/docbook.cnd +++ /dev/null @@ -1,527 +0,0 @@ - - - - -[argeodbk:titled] -mixin - + dbk:info (dbk:info) = dbk:info * - + dbk:title (dbk:title) = dbk:title * - -[argeodbk:linkingAttributes] -mixin - - dbk:linkend (String) - - xlink:actuate (String) - - xlink:arcrole (String) - - xlink:href (String) - - xlink:role (String) - - xlink:show (String) - - xlink:title (String) - - xlink:type (String) - -[argeodbk:freeText] -mixin - + dbk:phrase (dbk:phrase) = dbk:phrase * - + dbk:replaceable (dbk:replaceable) = dbk:replaceable * - + jcr:xmltext (jcrx:xmltext) = jcrx:xmltext * - -[argeodbk:markupInlines] -mixin - -[argeodbk:listElements] -mixin - + dbk:itemizedlist (dbk:itemizedlist) = dbk:itemizedlist * - + dbk:orderedlist (dbk:orderedlist) = dbk:orderedlist * - + dbk:simplelist (dbk:simplelist) = dbk:simplelist * - -[argeodbk:paragraphElements] -mixin - + dbk:para (dbk:para) = dbk:para * - -[argeodbk:indexingInlines] -mixin - -[argeodbk:techDocElements] -mixin - + dbk:table (dbk:table) = dbk:table * - -[argeodbk:techDocInlines] -mixin - -[argeodbk:publishingElements] -mixin - -[argeodbk:ubiquitousInlines] -mixin - + dbk:alt (dbk:alt) = dbk:alt * - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:biblioref (dbk:biblioref) = dbk:biblioref * - + dbk:inlinemediaobject (dbk:inlinemediaobject) = dbk:inlinemediaobject * - + dbk:link (dbk:link) = dbk:link * - + dbk:olink (dbk:olink) = dbk:olink * - + dbk:remark (dbk:remark) = dbk:remark * - + dbk:subscript (dbk:subscript) = dbk:subscript * - + dbk:superscript (dbk:superscript) = dbk:superscript * - + dbk:xref (dbk:xref) = dbk:xref * - -[argeodbk:abstractSection] -mixin - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:remark (dbk:remark) = dbk:remark * - + dbk:subtitle (dbk:subtitle) = dbk:subtitle * - - dbk:label (String) - - dbk:status (String) - -[argeodbk:bibliographyInlines] -mixin - + dbk:author (dbk:author) = dbk:author * - + dbk:editor (dbk:editor) = dbk:editor * - + dbk:orgname (dbk:orgname) = dbk:orgname * - + dbk:personname (dbk:personname) = dbk:personname * - -[argeodbk:publishingInlines] -mixin - + dbk:emphasis (dbk:emphasis) = dbk:emphasis * - -[argeodbk:base] -abstract -orderable - - dbk:annotations (String) - - dbk:arch (String) - - dbk:audience (String) - - dbk:condition (String) - - dbk:conformance (String) - - dbk:dir (String) - - dbk:os (String) - - dbk:remap (String) - - dbk:revision (String) - - dbk:revisionflag (String) - - dbk:role (String) - - dbk:security (String) - - dbk:userlevel (String) - - dbk:vendor (String) - - dbk:version (String) - - dbk:wordsize (String) - - dbk:xreflabel (String) - -[dbk:alt] > argeodbk:base - + dbk:inlinemediaobject (dbk:inlinemediaobject) = dbk:inlinemediaobject * - + jcr:xmltext (jcrx:xmltext) = jcrx:xmltext * - -[dbk:anchor] > argeodbk:base - -[dbk:annotation] > argeodbk:base, argeodbk:indexingInlines, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:remark (dbk:remark) = dbk:remark * - - dbk:annotates (String) - -[dbk:article] > argeodbk:abstractSection, argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:section (dbk:section) = dbk:section * - - dbk:class (String) - -[dbk:audiodata] > argeodbk:base - + dbk:info (dbk:info) = dbk:info - - dbk:entityref (String) - - dbk:fileref (String) - - dbk:format (String) - -[dbk:audioobject] > argeodbk:base, argeodbk:linkingAttributes - + dbk:audiodata (dbk:audiodata) = dbk:audiodata - + dbk:info (dbk:info) = dbk:info - -[dbk:author] > argeodbk:base, argeodbk:linkingAttributes - + dbk:orgdiv (dbk:orgdiv) = dbk:orgdiv * - + dbk:orgname (dbk:orgname) = dbk:orgname - + dbk:personblurb (dbk:personblurb) = dbk:personblurb * - + dbk:personname (dbk:personname) = dbk:personname - -[dbk:biblioref] > argeodbk:base, argeodbk:linkingAttributes - - dbk:begin (String) - - dbk:end (String) - - dbk:endterm (Reference) - - dbk:units (String) - - dbk:xrefstyle (String) - -[dbk:book] > argeodbk:base, argeodbk:linkingAttributes, argeodbk:titled - + dbk:article (dbk:article) = dbk:article * - + dbk:chapter (dbk:chapter) = dbk:chapter * - + dbk:subtitle (dbk:subtitle) = dbk:subtitle * - - dbk:label (String) - - dbk:status (String) - -[dbk:caption] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:remark (dbk:remark) = dbk:remark * - + jcr:xmltext (jcrx:xmltext) = jcrx:xmltext * - - dbk:class (String) - - dbk:lang (String) - - dbk:onclick (String) - - dbk:ondblclick (String) - - dbk:onkeydown (String) - - dbk:onkeypress (String) - - dbk:onkeyup (String) - - dbk:onmousedown (String) - - dbk:onmousemove (String) - - dbk:onmouseout (String) - - dbk:onmouseover (String) - - dbk:onmouseup (String) - - dbk:style (String) - - dbk:title (String) - -[dbk:chapter] > argeodbk:abstractSection, argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:section (dbk:section) = dbk:section * - -[dbk:colspec] > argeodbk:base, argeodbk:linkingAttributes - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:colname (String) - - dbk:colnum (String) - - dbk:colsep (String) - - dbk:colwidth (String) - - dbk:rowsep (String) - -[dbk:editor] > argeodbk:base, argeodbk:linkingAttributes - + dbk:orgdiv (dbk:orgdiv) = dbk:orgdiv * - + dbk:orgname (dbk:orgname) = dbk:orgname - + dbk:personblurb (dbk:personblurb) = dbk:personblurb * - + dbk:personname (dbk:personname) = dbk:personname - -[dbk:emphasis] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - -[dbk:entry] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:markupInlines, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:publishingInlines, argeodbk:techDocElements, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:colname (String) - - dbk:colsep (String) - - dbk:morerows (String) - - dbk:nameend (String) - - dbk:namest (String) - - dbk:rotate (String) - - dbk:rowsep (String) - - dbk:spanname (String) - - dbk:valign (String) - -[dbk:entrytbl] > argeodbk:base, argeodbk:linkingAttributes - + dbk:colspec (dbk:colspec) = dbk:colspec * - + dbk:spanspec (dbk:spanspec) = dbk:spanspec * - + dbk:tbody (dbk:tbody) = dbk:tbody - + dbk:thead (dbk:thead) = dbk:thead - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:colname (String) - - dbk:cols (String) - - dbk:colsep (String) - - dbk:nameend (String) - - dbk:namest (String) - - dbk:rowsep (String) - - dbk:spanname (String) - - dbk:tgroupstyle (String) - -[dbk:imagedata] > argeodbk:base - + dbk:info (dbk:info) = dbk:info - - dbk:align (String) - - dbk:contentdepth (String) - - dbk:contentwidth (String) - - dbk:depth (String) - - dbk:entityref (String) - - dbk:fileref (String) - - dbk:format (String) - - dbk:scale (String) - - dbk:scalefit (String) - - dbk:valign (String) - - dbk:width (String) - -[dbk:imageobject] > argeodbk:base, argeodbk:linkingAttributes - + dbk:imagedata (dbk:imagedata) = dbk:imagedata - + dbk:info (dbk:info) = dbk:info - -[dbk:info] > argeodbk:base - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:author (dbk:author) = dbk:author * - + dbk:editor (dbk:editor) = dbk:editor * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:orgname (dbk:orgname) = dbk:orgname * - + dbk:subtitle (dbk:subtitle) = dbk:subtitle * - + dbk:title (dbk:title) = dbk:title * - + * (nt:base) = nt:unstructured * - -[dbk:inlinemediaobject] > argeodbk:base, argeodbk:linkingAttributes - + dbk:alt (dbk:alt) = dbk:alt - + dbk:audioobject (dbk:audioobject) = dbk:audioobject * - + dbk:imageobject (dbk:imageobject) = dbk:imageobject * - + dbk:info (dbk:info) = dbk:info - + dbk:textobject (dbk:textobject) = dbk:textobject * - + dbk:videoobject (dbk:videoobject) = dbk:videoobject * - -[dbk:itemizedlist] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:listitem (dbk:listitem) = dbk:listitem * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:remark (dbk:remark) = dbk:remark * - - dbk:mark (String) - - dbk:spacing (String) - -[dbk:link] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - - dbk:endterm (Reference) - - dbk:xrefstyle (String) - -[dbk:listitem] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:remark (dbk:remark) = dbk:remark * - - dbk:override (String) - -[dbk:mediaobject] > argeodbk:base, argeodbk:linkingAttributes - + dbk:alt (dbk:alt) = dbk:alt - + dbk:audioobject (dbk:audioobject) = dbk:audioobject * - + dbk:caption (dbk:caption) = dbk:caption - + dbk:imageobject (dbk:imageobject) = dbk:imageobject * - + dbk:info (dbk:info) = dbk:info - + dbk:textobject (dbk:textobject) = dbk:textobject * - + dbk:videoobject (dbk:videoobject) = dbk:videoobject * - -[dbk:olink] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - - dbk:localinfo (String) - - dbk:targetdoc (String) - - dbk:targetptr (String) - - dbk:type (String) - - dbk:xrefstyle (String) - -[dbk:orderedlist] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:listitem (dbk:listitem) = dbk:listitem * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:remark (dbk:remark) = dbk:remark * - - dbk:continuation (String) - - dbk:inheritnum (String) - - dbk:numeration (String) - - dbk:spacing (String) - - dbk:startingnumber (String) - -[dbk:orgdiv] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - -[dbk:orgname] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines - - dbk:class (String) - - dbk:otherclass (String) - -[dbk:para] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:markupInlines, argeodbk:publishingElements, argeodbk:publishingInlines, argeodbk:techDocElements, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - + dbk:info (dbk:info) = dbk:info * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - -[dbk:personblurb] > argeodbk:base, argeodbk:linkingAttributes, argeodbk:paragraphElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - -[dbk:personname] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines - -[dbk:phrase] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - -[dbk:remark] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines - -[dbk:replaceable] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines - - dbk:class (String) - -[dbk:row] > argeodbk:base, argeodbk:linkingAttributes - + dbk:entry (dbk:entry) = dbk:entry * - + dbk:entrytbl (dbk:entrytbl) = dbk:entrytbl * - - dbk:rowsep (String) - - dbk:valign (String) - -[dbk:section] > argeodbk:abstractSection, argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements, argeodbk:titled - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:section (dbk:section) = dbk:section * - -[dbk:set] > argeodbk:base, argeodbk:linkingAttributes, argeodbk:titled - + dbk:book (dbk:book) = dbk:book * - + dbk:set (dbk:set) = dbk:set * - + dbk:subtitle (dbk:subtitle) = dbk:subtitle * - - dbk:label (String) - - dbk:status (String) - -[dbk:simplelist] > argeodbk:base, argeodbk:linkingAttributes - - dbk:columns (String) - - dbk:type (String) - -[dbk:spanspec] > argeodbk:base, argeodbk:linkingAttributes - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:colsep (String) - - dbk:nameend (String) - - dbk:namest (String) - - dbk:rowsep (String) - - dbk:spanname (String) - -[dbk:subscript] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines - -[dbk:subtitle] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - -[dbk:superscript] > argeodbk:base, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:ubiquitousInlines - -[dbk:table] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:titled - + dbk:caption (dbk:caption) = dbk:caption - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:tbody (dbk:tbody) = dbk:tbody * - + dbk:textobject (dbk:textobject) = dbk:textobject * - + dbk:tfoot (dbk:tfoot) = dbk:tfoot - + dbk:tgroup (dbk:tgroup) = dbk:tgroup * - + dbk:thead (dbk:thead) = dbk:thead - - dbk:border (String) - - dbk:cellpadding (String) - - dbk:cellspacing (String) - - dbk:class (String) - - dbk:colsep (String) - - dbk:floatstyle (String) - - dbk:frame (String) - - dbk:label (String) - - dbk:lang (String) - - dbk:onclick (String) - - dbk:ondblclick (String) - - dbk:onkeydown (String) - - dbk:onkeypress (String) - - dbk:onkeyup (String) - - dbk:onmousedown (String) - - dbk:onmousemove (String) - - dbk:onmouseout (String) - - dbk:onmouseover (String) - - dbk:onmouseup (String) - - dbk:orient (String) - - dbk:pgwide (String) - - dbk:rowheader (String) - - dbk:rowsep (String) - - dbk:rules (String) - - dbk:shortentry (String) - - dbk:style (String) - - dbk:summary (String) - - dbk:tabstyle (String) - - dbk:title (String) - - dbk:tocentry (String) - - dbk:width (String) - -[dbk:tbody] > argeodbk:base, argeodbk:linkingAttributes - + dbk:row (dbk:row) = dbk:row * - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:class (String) - - dbk:lang (String) - - dbk:onclick (String) - - dbk:ondblclick (String) - - dbk:onkeydown (String) - - dbk:onkeypress (String) - - dbk:onkeyup (String) - - dbk:onmousedown (String) - - dbk:onmousemove (String) - - dbk:onmouseout (String) - - dbk:onmouseover (String) - - dbk:onmouseup (String) - - dbk:style (String) - - dbk:title (String) - - dbk:valign (String) - -[dbk:textobject] > argeodbk:base, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:listElements, argeodbk:paragraphElements, argeodbk:publishingElements, argeodbk:techDocElements - + dbk:anchor (dbk:anchor) = dbk:anchor * - + dbk:annotation (dbk:annotation) = dbk:annotation * - + dbk:info (dbk:info) = dbk:info - + dbk:mediaobject (dbk:mediaobject) = dbk:mediaobject * - + dbk:phrase (dbk:phrase) = dbk:phrase - + dbk:remark (dbk:remark) = dbk:remark * - -[dbk:tfoot] > argeodbk:base, argeodbk:linkingAttributes - + dbk:colspec (dbk:colspec) = dbk:colspec * - + dbk:row (dbk:row) = dbk:row * - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:class (String) - - dbk:lang (String) - - dbk:onclick (String) - - dbk:ondblclick (String) - - dbk:onkeydown (String) - - dbk:onkeypress (String) - - dbk:onkeyup (String) - - dbk:onmousedown (String) - - dbk:onmousemove (String) - - dbk:onmouseout (String) - - dbk:onmouseover (String) - - dbk:onmouseup (String) - - dbk:style (String) - - dbk:title (String) - - dbk:valign (String) - -[dbk:tgroup] > argeodbk:base, argeodbk:linkingAttributes - + dbk:colspec (dbk:colspec) = dbk:colspec * - + dbk:spanspec (dbk:spanspec) = dbk:spanspec * - + dbk:tbody (dbk:tbody) = dbk:tbody - + dbk:tfoot (dbk:tfoot) = dbk:tfoot - + dbk:thead (dbk:thead) = dbk:thead - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:cols (String) - - dbk:colsep (String) - - dbk:rowsep (String) - - dbk:tgroupstyle (String) - -[dbk:thead] > argeodbk:base, argeodbk:linkingAttributes - + dbk:colspec (dbk:colspec) = dbk:colspec * - + dbk:row (dbk:row) = dbk:row * - - dbk:align (String) - - dbk:char (String) - - dbk:charoff (String) - - dbk:class (String) - - dbk:lang (String) - - dbk:onclick (String) - - dbk:ondblclick (String) - - dbk:onkeydown (String) - - dbk:onkeypress (String) - - dbk:onkeyup (String) - - dbk:onmousedown (String) - - dbk:onmousemove (String) - - dbk:onmouseout (String) - - dbk:onmouseover (String) - - dbk:onmouseup (String) - - dbk:style (String) - - dbk:title (String) - - dbk:valign (String) - -[dbk:title] > argeodbk:base, argeodbk:bibliographyInlines, argeodbk:freeText, argeodbk:indexingInlines, argeodbk:linkingAttributes, argeodbk:markupInlines, argeodbk:publishingInlines, argeodbk:techDocInlines, argeodbk:ubiquitousInlines - -[dbk:videodata] > argeodbk:base - + dbk:info (dbk:info) = dbk:info - - dbk:align (String) - - dbk:contentdepth (String) - - dbk:contentwidth (String) - - dbk:depth (String) - - dbk:entityref (String) - - dbk:fileref (String) - - dbk:format (String) - - dbk:scale (String) - - dbk:scalefit (String) - - dbk:valign (String) - - dbk:width (String) - -[dbk:videoobject] > argeodbk:base, argeodbk:linkingAttributes - + dbk:info (dbk:info) = dbk:info - + dbk:videodata (dbk:videodata) = dbk:videodata - -[dbk:xref] > argeodbk:base, argeodbk:linkingAttributes - - dbk:endterm (Reference) - - dbk:xrefstyle (String) - - diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java b/publishing/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java index a1f0873..8c0bde3 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java @@ -17,7 +17,7 @@ import org.argeo.api.NodeUtils; import org.argeo.cms.ui.AbstractCmsApp; import org.argeo.cms.ui.CmsApp; import org.argeo.cms.ui.CmsUiProvider; -import org.argeo.docbook.ui.DocBookTypes; +import org.argeo.docbook.DocBookType; import org.argeo.docbook.ui.DocumentPage; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrUtils; @@ -70,7 +70,7 @@ public class PublishingApp extends AbstractCmsApp { parent.setLayout(new GridLayout()); Node indexNode; try { - indexNode = JcrUtils.getOrAdd(Jcr.getRootNode(adminSession), DocumentPage.WWW, DocBookTypes.ARTICLE); + indexNode = JcrUtils.getOrAdd(Jcr.getRootNode(adminSession), DocumentPage.WWW, DocBookType.article.get()); adminSession.save(); } catch (RepositoryException e) { throw new IllegalStateException(e);