X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FAbstractDbkViewer.java;h=044b675d3f0e530cd98cc4c73e9a7e36c0121e9d;hp=b7903581f997a857e16511ecf7666b7c24e6539e;hb=9df6aa1957222703ed0ce39a731b87a61c9699b9;hpb=dc6a3192964bf36bc6d7b33dccffcdc441d13957 diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java index b790358..044b675 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java @@ -72,7 +72,10 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke private final boolean flat; + private boolean showMainTitle = true; + private Integer maxMediaWidth = null; + private String defaultSectionStyle; protected AbstractDbkViewer(Section parent, int style, CmsEditable cmsEditable) { super(parent, style, cmsEditable); @@ -104,13 +107,21 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke CmsUiUtils.clear(section); Node node = section.getNode(); TextSection textSection = (TextSection) section; + String style = node.hasProperty(DbkAttr.role.name()) ? node.getProperty(DbkAttr.role.name()).getString() + : getDefaultSectionStyle(); + if (style != null) + CmsUiUtils.style(textSection, style); + if (node.hasNode(DbkType.title.get())) { - if (section.getHeader() == null) - section.createHeader(); - Node titleNode = node.getNode(DbkType.title.get()); - DocBookSectionTitle title = newSectionTitle(textSection, titleNode); - title.setLayoutData(CmsUiUtils.fillWidth()); - updateContent(title); + 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); + } } for (NodeIterator ni = node.getNodes(); ni.hasNext();) { @@ -138,7 +149,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke for (NodeIterator ni = section.getNode().getNodes(DbkType.section.get()); ni.hasNext();) { Node child = ni.nextNode(); if (isDbk(child, DbkType.section)) { - TextSection newSection = new TextSection(section, SWT.NONE, child); + TextSection newSection = newTextSection(section, child); newSection.setLayoutData(CmsUiUtils.fillWidth()); refresh(newSection); } @@ -150,6 +161,11 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke // section.layout(true, true); } + /** To be overridden in order to provide additional SectionPart types */ + protected TextSection newTextSection(Section section, Node node) { + return new TextSection(section, SWT.NONE, node); + } + /** To be overridden in order to provide additional SectionPart types */ protected SectionPart newSectionPart(TextSection textSection, Node node) { return null; @@ -937,6 +953,18 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke this.maxMediaWidth = maxMediaWidth; } + public void setShowMainTitle(boolean showMainTitle) { + this.showMainTitle = showMainTitle; + } + + public String getDefaultSectionStyle() { + return defaultSectionStyle; + } + + public void setDefaultSectionStyle(String defaultSectionStyle) { + this.defaultSectionStyle = defaultSectionStyle; + } + // FILE UPLOAD LISTENER private class FUL implements FileUploadListener { public void uploadProgress(FileUploadEvent event) {