X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=rcp%2Forg.argeo.cms.e4.rcp%2Fsrc%2Forg%2Fargeo%2Fcms%2Fe4%2Frcp%2FCmsE4Application.java;h=629da60aae8eefae2871ada690bcfe1ab582eb9f;hb=11a52de00ec3ae52766e5c57cf83d195e8355c2d;hp=f8c82cb0f7148ddfd477a89a3f125dbbbfd1d310;hpb=05b37fe95b9379c17061463d84f67145c2e11371;p=lgpl%2Fargeo-commons.git diff --git a/rcp/org.argeo.cms.e4.rcp/src/org/argeo/cms/e4/rcp/CmsE4Application.java b/rcp/org.argeo.cms.e4.rcp/src/org/argeo/cms/e4/rcp/CmsE4Application.java index f8c82cb0f..629da60aa 100644 --- a/rcp/org.argeo.cms.e4.rcp/src/org/argeo/cms/e4/rcp/CmsE4Application.java +++ b/rcp/org.argeo.cms.e4.rcp/src/org/argeo/cms/e4/rcp/CmsE4Application.java @@ -1,19 +1,21 @@ package org.argeo.cms.e4.rcp; import java.security.PrivilegedExceptionAction; +import java.util.UUID; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; +import org.argeo.api.cms.CmsAuth; +import org.argeo.api.cms.CmsImageManager; +import org.argeo.api.cms.CmsView; +import org.argeo.api.cms.UxContext; import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; -import org.argeo.cms.ui.CmsImageManager; -import org.argeo.cms.ui.CmsView; -import org.argeo.cms.ui.UxContext; -import org.argeo.cms.util.SimpleUxContext; -import org.argeo.cms.widgets.auth.CmsLoginShell; -import org.argeo.node.NodeConstants; +import org.argeo.cms.swt.CmsSwtUtils; +import org.argeo.cms.swt.SimpleSwtUxContext; +import org.argeo.cms.swt.auth.CmsLoginShell; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtension; import org.eclipse.core.runtime.Platform; @@ -25,9 +27,14 @@ public class CmsE4Application implements IApplication, CmsView { private LoginContext loginContext; private IApplication e4Application; private UxContext uxContext; + private String uid; @Override public Object start(IApplicationContext context) throws Exception { + // TODO wait for CMS to be ready + Thread.sleep(5000); + + uid = UUID.randomUUID().toString(); Subject subject = new Subject(); Display display = createDisplay(); CmsLoginShell loginShell = new CmsLoginShell(this); @@ -35,7 +42,7 @@ public class CmsE4Application implements IApplication, CmsView { loginShell.setSubject(subject); try { // try pre-auth - loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, subject, loginShell); + loginContext = new LoginContext(CmsAuth.LOGIN_CONTEXT_SINGLE_USER, subject, loginShell); loginContext.login(); } catch (LoginException e) { e.printStackTrace(); @@ -75,8 +82,9 @@ public class CmsE4Application implements IApplication, CmsView { // return null; // } - uxContext = new SimpleUxContext(); - + uxContext = new SimpleSwtUxContext(); + //UiContext.setData(CmsView.KEY, this); + CmsSwtUtils.registerCmsView(loginShell.getShell(), this); e4Application = getApplication(null); Object res = Subject.doAs(subject, new PrivilegedExceptionAction() { @@ -191,4 +199,10 @@ public class CmsE4Application implements IApplication, CmsView { return CurrentUser.isAnonymous(getSubject()); } + @Override + public String getUid() { + return uid; + } + + }