Introduce tight integration with JavaScript classes
[gpl/argeo-suite.git] / swt / org.argeo.app.swt / src / org / argeo / app / swt / ux / DefaultEditionLayer.java
index fd5dca7238c8483290e3ddd320a9a1219c732951..549062f715739ffd43672878dbb6ae16e8b1b8d8 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.app.swt.ux;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.argeo.api.acr.Content;
 import org.argeo.app.ux.SuiteIcon;
@@ -15,6 +16,7 @@ import org.argeo.cms.swt.acr.SwtUiProvider;
 import org.argeo.cms.util.LangUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -58,6 +60,8 @@ public class DefaultEditionLayer implements SwtAppLayer {
                } else {
                        if (this.workArea != null) {
                                Composite area = new Composite(parent, SWT.NONE);
+                               // we set fill layout by default but it can be overridden
+                               area.setLayout(new FillLayout());
                                this.workArea.createUiPart(area, context);
                                return area;
                        }
@@ -130,6 +134,7 @@ public class DefaultEditionLayer implements SwtAppLayer {
        public void init(BundleContext bundleContext, Map<String, Object> properties) {
                String pid = (String) properties.get(Constants.SERVICE_PID);
                id = pid;
+               Objects.requireNonNull(id, "Layer id must be set.");
 
                weights = LangUtils.toStringList(properties.get(Property.weights.name()));
                startMaximized = properties.containsKey(Property.startMaximized.name())