import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.CmsException;
import org.argeo.cms.text.Paragraph;
import org.argeo.cms.text.SectionTitle;
import org.argeo.cms.text.TextInterpreter;
import org.argeo.cms.ui.widgets.EditableText;
import org.argeo.cms.ui.widgets.Img;
import org.argeo.cms.ui.widgets.StyledControl;
+import org.argeo.jcr.JcrException;
import org.argeo.jcr.JcrUtils;
import org.eclipse.rap.fileupload.FileDetails;
import org.eclipse.rap.fileupload.FileUploadEvent;
} else {
sectionPart = newSectionPart(textSection, child);
if (sectionPart == null)
- throw new CmsException("Unsupported node " + child);
+ throw new IllegalArgumentException("Unsupported node " + child);
// TODO list node types in exception
}
if (sectionPart instanceof Control)
for (Section s : section.getSubSections().values())
refresh(s);
}
- // section.layout();
+ // section.layout(true, true);
}
/** To be overridden in order to provide additional SectionPart types */
protected DocBookSectionTitle newSectionTitle(TextSection parent, Node titleNode) throws RepositoryException {
int style = parent.getStyle();
+ Composite titleParent = newSectionHeader(parent);
if (parent.isTitleReadOnly())
style = style | SWT.READ_ONLY;
- DocBookSectionTitle title = new DocBookSectionTitle(parent.getHeader(), style, titleNode);
+ DocBookSectionTitle title = new DocBookSectionTitle(titleParent, style, titleNode);
updateContent(title);
title.setMouseListener(getMouseListener());
return title;
}
+ /**
+ * To be overridden in order to provide additional processing at the section
+ * level.
+ *
+ * @return the parent to use for the {@link DocBookSectionTitle}, by default
+ * {@link Section#getHeader()}
+ */
+ protected Composite newSectionHeader(TextSection section) {
+ return section.getHeader();
+ }
+
protected DocBookSectionTitle prepareSectionTitle(Section newSection, String titleText) throws RepositoryException {
Node sectionNode = newSection.getNode();
Node titleNode;
currentParagraphN = newNode;
}
}
- // TODO or rather return the created paragarphs?
+ // TODO or rather return the created paragraphs?
layout(toLayout.toArray(new Control[toLayout.size()]));
}
persistChanges(et.getNode());
} else if (part instanceof PropertyPart) {
saveLine(((PropertyPart) part).getProperty(), line);
} else {
- throw new CmsException("Unsupported part " + part);
+ throw new IllegalArgumentException("Unsupported part " + part);
}
}
updateContent(paragraph);
layout(paragraph);
} catch (RepositoryException e1) {
- throw new CmsException("Cannot set style " + style + " on " + paragraph, e1);
+ throw new JcrException("Cannot set style " + style + " on " + paragraph, e1);
}
}
((Control) paragraph).dispose();
layout(section);
} catch (RepositoryException e1) {
- throw new CmsException("Cannot delete " + paragraph, e1);
+ throw new JcrException("Cannot delete " + paragraph, e1);
}
}
edit(paragraph, 0);
}
} catch (RepositoryException e) {
- throw new CmsException("Cannot split " + getEdited(), e);
+ throw new JcrException("Cannot split " + getEdited(), e);
}
}
Paragraph previousParagraph = paragraphMergedWithPrevious(paragraph, previousNode);
edit(previousParagraph, previousTxt.length());
} catch (RepositoryException e) {
- throw new CmsException("Cannot stop editing", e);
+ throw new JcrException("Cannot stop editing", e);
}
}
paragraphMergedWithNext(paragraph, removed);
edit(paragraph, txt.length());
} catch (RepositoryException e) {
- throw new CmsException("Cannot stop editing", e);
+ throw new JcrException("Cannot stop editing", e);
}
}
}
}
} catch (RepositoryException e) {
- throw new CmsException("Cannot upload", e);
+ throw new JcrException("Cannot upload", e);
}
}
persistChanges(previousSectionN);
}
} catch (RepositoryException e) {
- throw new CmsException("Cannot deepen " + getEdited(), e);
+ throw new JcrException("Cannot deepen " + getEdited(), e);
}
}
persistChanges(mergedNode);
}
} catch (RepositoryException e) {
- throw new CmsException("Cannot undeepen " + getEdited(), e);
+ throw new JcrException("Cannot undeepen " + getEdited(), e);
}
}
}
public void uploadFailed(FileUploadEvent event) {
- throw new CmsException("Upload failed " + event, event.getException());
+ throw new RuntimeException("Upload failed " + event, event.getException());
}
public void uploadFinished(FileUploadEvent event) {
package org.argeo.docbook.ui;
import javax.jcr.Node;
+import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
+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;
}
}
+ public static Node getMetadata(Node infoContainer) {
+ try {
+ if (!infoContainer.hasNode(DocBookTypes.INFO))
+ return null;
+ Node info = infoContainer.getNode(DocBookTypes.INFO);
+ if (!info.hasNode(EntityType.local.get()))
+ return null;
+ return info.getNode(EntityType.local.get());
+ } catch (RepositoryException e) {
+ throw new JcrException("Cannot retrieve metadata from " + infoContainer, e);
+ }
+ }
+
+ public static Node getChildByRole(Node parent, String role) {
+ try {
+ NodeIterator baseSections = parent.getNodes();
+ while (baseSections.hasNext()) {
+ Node n = baseSections.nextNode();
+ String r = Jcr.get(n, DocBookNames.DBK_ROLE);
+ if (r != null && r.equals(role))
+ return n;
+ }
+ return null;
+ } catch (RepositoryException e) {
+ throw new JcrException("Cannot get child from " + parent + " with role " + role, e);
+ }
+ }
+
public static Node addParagraph(Node node, String txt) {
try {
Node para = node.addNode(DocBookTypes.PARA, DocBookTypes.PARA);