Force max media width.
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 2 Feb 2021 19:33:11 +0000 (20:33 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 2 Feb 2021 19:33:11 +0000 (20:33 +0100)
publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java

index 44e6f547a4088f6ff59f642c30a7cf58df1e7102..b7903581f997a857e16511ecf7666b7c24e6539e 100644 (file)
@@ -51,6 +51,7 @@ import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
@@ -71,6 +72,8 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
 
        private final boolean flat;
 
 
        private final boolean flat;
 
+       private Integer maxMediaWidth = null;
+
        protected AbstractDbkViewer(Section parent, int style, CmsEditable cmsEditable) {
                super(parent, style, cmsEditable);
 //             CmsView cmsView = CmsView.getCmsView(parent);
        protected AbstractDbkViewer(Section parent, int style, CmsEditable cmsEditable) {
                super(parent, style, cmsEditable);
 //             CmsView cmsView = CmsView.getCmsView(parent);
@@ -165,7 +168,15 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
        protected DbkImg newImg(TextSection parent, Node node) {
                try {
                        DbkImg img = new DbkImg(parent, parent.getStyle(), node, imageManager);
        protected DbkImg newImg(TextSection parent, Node node) {
                try {
                        DbkImg img = new DbkImg(parent, parent.getStyle(), node, imageManager);
-                       img.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
+                       GridData imgGd;
+                       if (maxMediaWidth != null) {
+                               imgGd = new GridData(SWT.CENTER, SWT.FILL, false, false);
+                               imgGd.widthHint = maxMediaWidth;
+                               img.setPreferredSize(new Point(maxMediaWidth, 0));
+                       } else {
+                               imgGd = CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT);
+                       }
+                       img.setLayoutData(imgGd);
                        updateContent(img);
                        img.setMouseListener(getMouseListener());
                        img.setFocusListener(getFocusListener());
                        updateContent(img);
                        img.setMouseListener(getMouseListener());
                        img.setFocusListener(getFocusListener());
@@ -922,6 +933,10 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                return new ArrayList<>();
        }
 
                return new ArrayList<>();
        }
 
+       public void setMaxMediaWidth(Integer maxMediaWidth) {
+               this.maxMediaWidth = maxMediaWidth;
+       }
+
        // FILE UPLOAD LISTENER
        private class FUL implements FileUploadListener {
                public void uploadProgress(FileUploadEvent event) {
        // FILE UPLOAD LISTENER
        private class FUL implements FileUploadListener {
                public void uploadProgress(FileUploadEvent event) {