protected void refresh(Control control) throws RepositoryException {
if (!(control instanceof Section))
return;
+ long begin = System.currentTimeMillis();
Section section = (Section) control;
if (section instanceof TextSection) {
CmsUiUtils.clear(section);
if (showTitle) {
if (section.getHeader() == null)
section.createHeader();
- DocBookSectionTitle title = newSectionTitle(textSection, titleNode);
+ DbkSectionTitle title = newSectionTitle(textSection, titleNode);
title.setLayoutData(CmsUiUtils.fillWidth());
updateContent(title);
}
Node child = ni.nextNode();
SectionPart sectionPart = null;
if (isDbk(child, DbkType.mediaobject)) {
- sectionPart = newImg(textSection, child);
-// if (child.hasNode(DbkType.imageobject.get())) {
-// Node imageDataNode = child.getNode(DbkType.imageobject.get()).getNode(DbkType.imagedata.get());
-// sectionPart = newImg(textSection, imageDataNode);
-// }
+ if (child.hasNode(DbkType.imageobject.get())) {
+ sectionPart = newImg(textSection, child);
+ } else if (child.hasNode(DbkType.videoobject.get())) {
+ sectionPart = newVideo(textSection, child);
+ } else {
+ throw new IllegalArgumentException("Unsupported media object " + child);
+ }
} else if (isDbk(child, DbkType.info)) {
// TODO enrich UI based on info
} else if (isDbk(child, DbkType.title)) {
// throw new IllegalArgumentException("Unsupported node " + child);
// TODO list node types in exception
} else {
- throw new IllegalArgumentException("Unsupported node type for "+child);
+ throw new IllegalArgumentException("Unsupported node type for " + child);
}
if (sectionPart != null && sectionPart instanceof Control)
((Control) sectionPart).setLayoutData(CmsUiUtils.fillWidth());
refresh(s);
}
// section.layout(true, true);
+ long duration = System.currentTimeMillis() - begin;
+// System.out.println(duration + " ms - " + DbkUtils.getTitle(section.getNode()));
}
/** To be overridden in order to provide additional SectionPart types */
}
}
- protected DocBookSectionTitle newSectionTitle(TextSection parent, Node titleNode) throws RepositoryException {
+ protected DbkVideo newVideo(TextSection parent, Node node) {
+ try {
+ DbkVideo video = new DbkVideo(parent, getCmsEditable().canEdit() ? SWT.NONE : SWT.READ_ONLY, node);
+ GridData gd;
+ if (maxMediaWidth != null) {
+ gd = new GridData(SWT.CENTER, SWT.FILL, false, false);
+ // TODO, manage size
+// gd.widthHint = maxMediaWidth;
+// gd.heightHint = (int) (gd.heightHint * 0.5625);
+ } else {
+ gd = new GridData(SWT.CENTER, SWT.FILL, false, false);
+// gd.widthHint = video.getWidth();
+// gd.heightHint = video.getHeight();
+ }
+ video.setLayoutData(gd);
+ updateContent(video);
+ return video;
+ } catch (RepositoryException e) {
+ throw new JcrException("Cannot add new image " + node, e);
+ }
+ }
+
+ protected DbkSectionTitle 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(titleParent, style, titleNode);
+ DbkSectionTitle title = new DbkSectionTitle(titleParent, style, titleNode);
updateContent(title);
title.setMouseListener(getMouseListener());
title.setFocusListener(getFocusListener());
* To be overridden in order to provide additional processing at the section
* level.
*
- * @return the parent to use for the {@link DocBookSectionTitle}, by default
+ * @return the parent to use for the {@link DbkSectionTitle}, by default
* {@link Section#getHeader()}
*/
protected Composite newSectionHeader(TextSection section) {
return section.getHeader();
}
- protected DocBookSectionTitle prepareSectionTitle(Section newSection, String titleText) throws RepositoryException {
+ protected DbkSectionTitle prepareSectionTitle(Section newSection, String titleText) throws RepositoryException {
Node sectionNode = newSection.getNode();
Node titleNode = DbkUtils.getOrAddDbk(sectionNode, DbkType.title);
getTextInterpreter().write(titleNode, titleText);
if (newSection.getHeader() == null)
newSection.createHeader();
- DocBookSectionTitle sectionTitle = newSectionTitle((TextSection) newSection, sectionNode);
+ DbkSectionTitle sectionTitle = newSectionTitle((TextSection) newSection, sectionNode);
return sectionTitle;
}
paragraph.setText(textInterpreter.readSimpleHtml(partNode));
} else if (part instanceof DbkImg) {
DbkImg editableImage = (DbkImg) part;
- imageManager.load(partNode, part.getControl(), editableImage.getPreferredImageSize());
+ // imageManager.load(partNode, part.getControl(),
+ // editableImage.getPreferredImageSize());
+ } else if (part instanceof DbkVideo) {
+ DbkVideo video = (DbkVideo) part;
+ video.load(part.getControl());
}
- } else if (part instanceof DocBookSectionTitle) {
- DocBookSectionTitle title = (DocBookSectionTitle) part;
+ } else if (part instanceof DbkSectionTitle) {
+ DbkSectionTitle title = (DbkSectionTitle) part;
title.setStyle(title.getSection().getTitleStyle());
// use control AFTER setting style
if (title == getEdited())
Paragraph secondParagraph = paragraphSplitted(paragraph, secondNode);
edit(secondParagraph, 0);
- } else if (getEdited() instanceof DocBookSectionTitle) {
- DocBookSectionTitle sectionTitle = (DocBookSectionTitle) getEdited();
+ } else if (getEdited() instanceof DbkSectionTitle) {
+ DbkSectionTitle sectionTitle = (DbkSectionTitle) getEdited();
Text text = (Text) sectionTitle.getControl();
String txt = text.getText();
int caretPosition = text.getCaretPosition();
// main title
if (section == mainSection && section instanceof TextSection && paragraphNode.getIndex() == 1
&& !sectionNode.hasNode(DbkType.title.get())) {
- DocBookSectionTitle sectionTitle = prepareSectionTitle(section, txt);
+ DbkSectionTitle sectionTitle = prepareSectionTitle(section, txt);
edit(sectionTitle, 0);
return;
}
newSection.getParent().layout();
layout(newSection);
persistChanges(sectionNode);
- } else if (getEdited() instanceof DocBookSectionTitle) {
- DocBookSectionTitle sectionTitle = (DocBookSectionTitle) getEdited();
+ } else if (getEdited() instanceof DbkSectionTitle) {
+ DbkSectionTitle sectionTitle = (DbkSectionTitle) getEdited();
Section section = sectionTitle.getSection();
Section parentSection = section.getParentSection();
if (parentSection == null)
try {
if (getEdited() instanceof Paragraph) {
upload(getEdited());
- } else if (getEdited() instanceof DocBookSectionTitle) {
- DocBookSectionTitle sectionTitle = (DocBookSectionTitle) getEdited();
+ } else if (getEdited() instanceof DbkSectionTitle) {
+ DbkSectionTitle sectionTitle = (DbkSectionTitle) getEdited();
Section section = sectionTitle.getSection();
Node sectionNode = section.getNode();
Section parentSection = section.getParentSection();
return newParagraph;
}
- protected Paragraph sectionTitleSplitted(DocBookSectionTitle sectionTitle, Node newNode)
- throws RepositoryException {
+ protected Paragraph sectionTitleSplitted(DbkSectionTitle sectionTitle, Node newNode) throws RepositoryException {
updateContent(sectionTitle);
Paragraph newParagraph = newParagraph(sectionTitle.getSection(), newNode);
// we assume beforeFirst is not null since there was a sectionTitle