X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FSimpleErgonomics.java;h=e7192af0f37a70e41357c82c277f915144a18e63;hb=50077824250f3a7f5c092d0a5ce28a171287ac7c;hp=4b871cbcf0b8f8429f35076c2919fed7395335bc;hpb=ba85380c1db977b0d9ea3182d1383956a8b80679;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/util/SimpleErgonomics.java b/org.argeo.cms/src/org/argeo/cms/util/SimpleErgonomics.java index 4b871cbcf..e7192af0f 100644 --- a/org.argeo.cms/src/org/argeo/cms/util/SimpleErgonomics.java +++ b/org.argeo.cms/src/org/argeo/cms/util/SimpleErgonomics.java @@ -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;