]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/util/SimpleErgonomics.java
Session authentication working
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / util / SimpleErgonomics.java
index 4b871cbcf0b8f8429f35076c2919fed7395335bc..40e5fecf8238a246a666be4bc88905dce15b438c 100644 (file)
@@ -5,6 +5,8 @@ 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;
@@ -20,6 +22,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;
@@ -52,18 +57,23 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
                bodyArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                bodyArea.setLayout(CmsUtils.noSpaceGridLayout());
 
+               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 refreshHeader() {
-               if (headerArea == null)
-                       return;
                for (Control child : headerArea.getChildren())
                        child.dispose();
                try {
@@ -75,8 +85,6 @@ public class SimpleErgonomics extends AbstractCmsEntryPoint {
        }
 
        protected void refreshBody() {
-               if (bodyArea == null)
-                       return;
                // Exception
                Throwable exception = getException();
                if (exception != null) {
@@ -93,11 +101,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);