]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/util/SimpleErgonomics.java
Merge security.ui bundle in the cms.ui.workbench bundle
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / util / SimpleErgonomics.java
index 4b871cbcf0b8f8429f35076c2919fed7395335bc..e7192af0f37a70e41357c82c277f915144a18e63 100644 (file)
@@ -5,12 +5,15 @@ import java.util.Map;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.AbstractCmsEntryPoint;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsImageManager;
 import org.argeo.cms.CmsStyles;
 import org.argeo.cms.CmsUiProvider;
 import org.argeo.cms.internal.ImageManagerImpl;
+import org.argeo.cms.ui.UxContext;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
@@ -20,6 +23,9 @@ import org.eclipse.swt.widgets.Control;
 
 /** Simple header/body ergonomics. */
 public class SimpleErgonomics extends AbstractCmsEntryPoint {
+       private final static Log log = LogFactory.getLog(SimpleErgonomics.class);
+
+       private boolean uiInitialized = false;
        private Composite headerArea;
        private Composite bodyArea;
        private final CmsUiProvider uiProvider;
@@ -28,6 +34,7 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
        private Integer headerHeight = 40;
 
        private CmsImageManager imageManager = new ImageManagerImpl();
+       private UxContext uxContext = null;
 
        public SimpleErgonomics(Repository repository, String workspace,
                        String defaultPath, CmsUiProvider uiProvider,
@@ -37,10 +44,11 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
        }
 
        @Override
-       protected void createUi(Composite parent) {
+       protected void initUi(Composite parent) {
                parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                parent.setLayout(CmsUtils.noSpaceGridLayout());
 
+               // createAdminArea(parent);
                headerArea = new Composite(parent, SWT.NONE);
                headerArea.setLayout(new FillLayout());
                GridData headerData = new GridData(SWT.FILL, SWT.FILL, false, false);
@@ -51,19 +59,27 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
                bodyArea.setData(RWT.CUSTOM_VARIANT, CmsStyles.CMS_BODY);
                bodyArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                bodyArea.setLayout(CmsUtils.noSpaceGridLayout());
-
+               uxContext = new SimpleUxContext();
+               uiInitialized = true;
                refresh();
        }
 
        @Override
        protected void refresh() {
+               if (!uiInitialized)
+                       return;
+               if (getState() == null)
+                       setState("");
                refreshHeader();
                refreshBody();
+               if (log.isTraceEnabled())
+                       log.trace("UI refreshed " + getNode());
+       }
+
+       protected void createAdminArea(Composite parent) {
        }
 
        protected void refreshHeader() {
-               if (headerArea == null)
-                       return;
                for (Control child : headerArea.getChildren())
                        child.dispose();
                try {
@@ -75,8 +91,6 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
        }
 
        protected void refreshBody() {
-               if (bodyArea == null)
-                       return;
                // Exception
                Throwable exception = getException();
                if (exception != null) {
@@ -93,11 +107,7 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
                        child.dispose();
                bodyArea.setLayout(CmsUtils.noSpaceGridLayout());
 
-               String state = getState();
                try {
-                       if (state == null)
-                               setState("");
-                       // throw new CmsException("State cannot be null");
                        uiProvider.createUi(bodyArea, getNode());
                } catch (RepositoryException e) {
                        throw new CmsException("Cannot refresh body", e);
@@ -106,6 +116,11 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
                bodyArea.layout(true, true);
        }
 
+       @Override
+       public UxContext getUxContext() {
+               return uxContext;
+       }
+
        @Override
        public CmsImageManager getImageManager() {
                return imageManager;