import org.argeo.ArgeoException;
import org.argeo.cms.auth.AuthConstants;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.ui.UxContext;
import org.argeo.eclipse.ui.specific.UiContext;
import org.argeo.jcr.JcrUtils;
import org.eclipse.rap.rwt.RWT;
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
+import org.argeo.cms.ui.UxContext;
+
/** Provides interaction with the CMS system. UNSTABLE API at this stage. */
public interface CmsView {
public final static String KEY = "org.argeo.cms.view";
+ UxContext getUxContext();
+
// NAVIGATION
public void navigateTo(String state);
--- /dev/null
+package org.argeo.cms.ui;
+
+public interface UxContext {
+ boolean isPortrait();
+ boolean isLandscape();
+ boolean isSquare();
+
+ boolean isSmall();
+}
import org.argeo.cms.CmsView;
import org.argeo.cms.auth.AuthConstants;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.ui.UxContext;
import org.argeo.cms.widgets.auth.CmsLogin;
import org.argeo.cms.widgets.auth.CmsLoginShell;
import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
// private final static Log log = LogFactory.getLog(WorkbenchLogin.class);
private final Subject subject = new Subject();
private LoginContext loginContext;
+ private UxContext uxContext = null;
@Override
public int createUI() {
} catch (LoginException e) {
throw new ArgeoException("Cannot log in", e);
}
+ uxContext = new SimpleUxContext();
return postLogin();
}
// TODO Auto-generated method stub
return null;
}
+
+ @Override
+ public UxContext getUxContext() {
+ return uxContext;
+ }
+
}
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;
private CmsImageManager imageManager = new ImageManagerImpl();
+ private UxContext uxContext = null;
+
public SimpleErgonomics(Repository repository, String workspace,
String defaultPath, CmsUiProvider uiProvider,
Map<String, String> factoryProperties) {
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();
}
bodyArea.layout(true, true);
}
+ @Override
+ public UxContext getUxContext() {
+ return uxContext;
+ }
+
@Override
public CmsImageManager getImageManager() {
return imageManager;
--- /dev/null
+package org.argeo.cms.util;
+
+import org.argeo.cms.ui.UxContext;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+public class SimpleUxContext implements UxContext {
+ private Point size;
+ private Point small = new Point(200, 400);
+
+ public SimpleUxContext() {
+ this(Display.getCurrent().getBounds());
+ }
+
+ public SimpleUxContext(Rectangle rect) {
+ this.size = new Point(rect.width, rect.height);
+ }
+
+ public SimpleUxContext(Point size) {
+ this.size = size;
+ }
+
+ @Override
+ public boolean isPortrait() {
+ return size.x >= size.y;
+ }
+
+ @Override
+ public boolean isLandscape() {
+ return size.x < size.y;
+ }
+
+ @Override
+ public boolean isSquare() {
+ return size.x == size.y;
+ }
+
+ @Override
+ public boolean isSmall() {
+ return size.x <= small.x || size.y <= small.y;
+ }
+
+}