Refactor DocBook names.
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 25 Jan 2021 08:36:59 +0000 (09:36 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 25 Jan 2021 08:36:59 +0000 (09:36 +0100)
14 files changed:
publishing/org.argeo.publishing.ui/bnd.bnd
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DbkUtils.java
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookNames.java [new file with mode: 0644]
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/DocBookType.java [new file with mode: 0644]
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/docbook.cnd [new file with mode: 0644]
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookNames.java [deleted file]
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocBookTypes.java [deleted file]
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/docbook.cnd [deleted file]
publishing/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java

index 03c44b6b9cc065739da2611fd0292022801e952d..60d985cb7b225625a2c1418ea826cf3969286d38 100644 (file)
@@ -9,7 +9,7 @@ org.osgi.framework,\
 *
 
 Provide-Capability:\
 *
 
 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
 
 Service-Component:\
 OSGI-INF/fontsServlet.xml
index e153e86c39f226456c0d9f246bff00ddaf1742c5..8426a80b7f32ba0dae0d91e54963a172d01f8209 100644 (file)
@@ -1,39 +1,60 @@
 package org.argeo.docbook;
 
 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.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.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 {
 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 {
                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) {
                } 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 {
        public static Node getMetadata(Node infoContainer) {
                try {
-                       if (!infoContainer.hasNode(DocBookTypes.INFO))
+                       if (!infoContainer.hasNode(DocBookType.info.get()))
                                return null;
                                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());
                        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) {
        }
 
        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
        }
 
        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();
                                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() + "]");
 
                        // 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());
 //                     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 (file)
index 0000000..febae9f
--- /dev/null
@@ -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 (file)
index 0000000..bb1db63
--- /dev/null
@@ -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 (file)
index 0000000..3c44533
--- /dev/null
@@ -0,0 +1,527 @@
+<dbk = 'http://docbook.org/ns/docbook'>
+<argeodbk = 'http://www.argeo.org/ns/argeodbk'>
+<xlink = 'http://www.w3.org/1999/xlink'>
+
+[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) 
+
+
index c324756c28f7944353eb2a5eca05410bb6ce83b2..5896d18107e310938a5112ee3aac514a78a33995 100644 (file)
@@ -1,7 +1,14 @@
 package org.argeo.docbook.ui;
 
 import static org.argeo.cms.ui.util.CmsUiUtils.fillWidth;
 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;
 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.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;
 
 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.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;
 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;
                        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();
                                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);
                                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;
                        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);
                                        }
                                                sectionPart = newImg(textSection, imageDataNode);
                                        }
-                               } else if (child.isNodeType(DocBookTypes.PARA)) {
+                               } else if (isDbk(child, para)) {
                                        sectionPart = newParagraph(textSection, child);
                                } else {
                                        sectionPart = newSectionPart(textSection, child);
                                        sectionPart = newParagraph(textSection, child);
                                } else {
                                        sectionPart = newSectionPart(textSection, child);
@@ -124,9 +134,9 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                        }
 
 //                     if (!flat)
                        }
 
 //                     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();
                                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);
                                        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();
 
        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();
                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 (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();
                                        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 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
                                                // 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 (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();
                                        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);
 
                                // 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
                                // 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();
                                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));
                                // 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);
 
                                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();
                        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
                        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
 
                                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;
                                } 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
                                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;
                                }
                                        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));
 
                                // 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),
                                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
                                        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);
                                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));
                                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));
                                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();
                                        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
 
                                // 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));
                                // 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
                                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();
                                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));
                                }
                                        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();
                                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();
                                }
 
                                        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);
        // 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);
                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();
        }
 
                return sb.toString();
        }
 
@@ -865,6 +871,29 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                return new ArrayList<>();
        }
 
                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) {
        // FILE UPLOAD LISTENER
        private class FUL implements FileUploadListener {
                public void uploadProgress(FileUploadEvent event) {
index 2b57b4b9cf768883b8f53be7ac6f7843a9505dfc..1e3b070364c587fbacf6a66d4cfd1e880cc06e32 100644 (file)
@@ -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.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;
 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;
        @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)) {
                        fileNode = getFileNode(node);
                }
                if (node.isNodeType(NT_FILE)) {
index 25056efb7bd5e03b65e43431565583ba56893f54..f5ab9975dcf2b59433f61eed1b6dd9350762756a 100644 (file)
@@ -1,5 +1,9 @@
 package org.argeo.docbook.ui;
 
 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;
 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;
                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;
                                        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;
                        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
                                        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 (file)
index 10fa7a4..0000000
+++ /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 (file)
index aa37c16..0000000
+++ /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";
-}
index 6cb0e291c8978a64836414ee3c4edcf1eed61573..ab491fbb011f7f2703f88af0d28ecd869b154d4b 100644 (file)
@@ -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.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;
 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);
 
                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());
                        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();
                                }
                                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);
                                }
                        }
                                                new CmsLink(textNode.getName(), textNode.getPath()).createUi(parent, textNode);
                                }
                        }
index bdd72d59aad819a845178509a6a8b815c2b64d97..6bb8d438516a055790380b8bff42028827958cb3 100644 (file)
@@ -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.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;
 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()) {
        @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());
                }
 //             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 {
 
        @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 (file)
index 3c44533..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-<dbk = 'http://docbook.org/ns/docbook'>
-<argeodbk = 'http://www.argeo.org/ns/argeodbk'>
-<xlink = 'http://www.w3.org/1999/xlink'>
-
-[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) 
-
-
index a1f08731a9cf00ef0ca6d5ef35ff84743a977281..8c0bde3262ae06dfc1f3613175b5c22ca7a7b359 100644 (file)
@@ -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.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;
 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 {
                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);
                        adminSession.save();
                } catch (RepositoryException e) {
                        throw new IllegalStateException(e);