if (style != null)
CmsUiUtils.style(textSection, style);
+ // Title
+ Node titleNode = null;
+ // We give priority to ./title vs ./info/title, like the DocBook XSL
if (node.hasNode(DbkType.title.get())) {
+ titleNode = node.getNode(DbkType.title.get());
+ } else if (node.hasNode(DbkType.info.get() + '/' + DbkType.title.get())) {
+ titleNode = node.getNode(DbkType.info.get() + '/' + DbkType.title.get());
+ }
+
+ if (titleNode != null) {
boolean showTitle = getMainSection() == section ? showMainTitle : true;
if (showTitle) {
if (section.getHeader() == null)
section.createHeader();
- Node titleNode = node.getNode(DbkType.title.get());
DocBookSectionTitle title = newSectionTitle(textSection, titleNode);
title.setLayoutData(CmsUiUtils.fillWidth());
updateContent(title);
}
}
+ // content
for (NodeIterator ni = node.getNodes(); ni.hasNext();) {
Node child = ni.nextNode();
SectionPart sectionPart = null;
// Node imageDataNode = child.getNode(DbkType.imageobject.get()).getNode(DbkType.imagedata.get());
// sectionPart = newImg(textSection, imageDataNode);
// }
+ } else if (isDbk(child, DbkType.info)) {
+ // TODO enrich UI based on info
+ } else if (isDbk(child, DbkType.title)) {
+ // already managed
} else if (isDbk(child, para)) {
sectionPart = newParagraph(textSection, child);
- } else {
+ } else if (isDbk(child, DbkType.section)) {
sectionPart = newSectionPart(textSection, child);
// if (sectionPart == null)
// throw new IllegalArgumentException("Unsupported node " + child);
// TODO list node types in exception
+ } else {
+ throw new IllegalArgumentException("Unsupported node type for "+child);
}
if (sectionPart != null && sectionPart instanceof Control)
((Control) sectionPart).setLayoutData(CmsUiUtils.fillWidth());
if (title == getEdited())
title.setText(textInterpreter.read(title.getNode()));
else
- title.setText(textInterpreter.raw(title.getNode()));
+ title.setText(textInterpreter.readSimpleHtml(title.getNode()));
}
}
private boolean titleReadOnly = false;
+ private final int level;
+
public TextSection(Composite parent, int style, Node node) {
this(parent, findSection(parent), style, node);
}
private TextSection(Composite parent, Section parentSection, int style, Node node) {
super(parent, parentSection, style, node);
flat = SWT.FLAT == (style & SWT.FLAT);
+ if (parentSection instanceof TextSection) {
+ level = ((TextSection) parentSection).getLevel() + 1;
+ } else {
+ level = 0;
+ }
// CmsUiUtils.style(this, TextStyles.TEXT_SECTION);
}
return flat;
}
+ /** The level of this section, similar to h1, h2, etc. in HTML. */
+ public int getLevel() {
+ return level;
+ }
+
public String getTitleStyle() {
if (titleStyle != null)
return titleStyle;
// TODO make base H styles configurable
- Integer relativeDepth = getRelativeDepth();
- return relativeDepth == 0 ? TextStyles.TEXT_TITLE : TextStyles.TEXT_H + relativeDepth;
+// Integer relativeDepth = getRelativeDepth();
+// System.out.println("Level: "+getLevel());
+ return getLevel() == 0 ? TextStyles.TEXT_TITLE : "h" + getLevel();
}
public void setDefaultTextStyle(String defaultTextStyle) {
public void setTitleReadOnly(boolean titleReadOnly) {
this.titleReadOnly = titleReadOnly;
- }
+ }
}