Use released Argeo Maven plugin
[gpl/argeo-suite.git] / publishing / org.argeo.publishing.ui / src / org / argeo / docbook / ui / AbstractDbkViewer.java
index 8e18b3232b29782cfa570a967ec9b860a05bc928..e9000936128b2f94f850475471b28161399911dc 100644 (file)
@@ -99,6 +99,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
        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);
@@ -123,7 +124,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                if (showTitle) {
                                        if (section.getHeader() == null)
                                                section.createHeader();
-                                       DocBookSectionTitle title = newSectionTitle(textSection, titleNode);
+                                       DbkSectionTitle title = newSectionTitle(textSection, titleNode);
                                        title.setLayoutData(CmsUiUtils.fillWidth());
                                        updateContent(title);
                                }
@@ -173,6 +174,8 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                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 */
@@ -218,38 +221,32 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
 
        protected DbkVideo newVideo(TextSection parent, Node node) {
                try {
-//                     node.getSession();
-//                     Composite wrapper = new Composite(parent, SWT.NONE);
-//                     new Label(wrapper,SWT.NONE).setText("TEST");
-                       DbkVideo video = new DbkVideo(parent, SWT.BORDER, node);
+                       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);
-//                             img.setPreferredSize(new Point(maxMediaWidth, 0));
+//                             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();
-//                             gd = new GridData(video.getWidth(),video.getHeight());
+//                             gd.widthHint = video.getWidth();
+//                             gd.heightHint = video.getHeight();
                        }
-//                     wrapper.setLayoutData(gd);
                        video.setLayoutData(gd);
                        updateContent(video);
-                       return null;
+                       return video;
                } catch (RepositoryException e) {
                        throw new JcrException("Cannot add new image " + node, e);
                }
        }
 
-       protected DocBookSectionTitle newSectionTitle(TextSection parent, Node titleNode) throws RepositoryException {
+       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());
@@ -260,20 +257,20 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
         * 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;
        }
 
@@ -302,13 +299,14 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                        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())
@@ -541,8 +539,8 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
 
                                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();
@@ -668,7 +666,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                // 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;
                                }
@@ -704,8 +702,8 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                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)
@@ -736,8 +734,8 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                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();
@@ -809,8 +807,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                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