Massive Argeo APIs refactoring
[lgpl/argeo-commons.git] / rcp / org.argeo.cms.e4.rcp / src / org / argeo / cms / e4 / rcp / CmsE4Application.java
index f8c82cb0f7148ddfd477a89a3f125dbbbfd1d310..5cc6a839453bacea1144dce120f79f5a2cd2e155 100644 (file)
@@ -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,11 @@ 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 {
+               uid = UUID.randomUUID().toString();
                Subject subject = new Subject();
                Display display = createDisplay();
                CmsLoginShell loginShell = new CmsLoginShell(this);
@@ -35,7 +39,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_USER, subject, loginShell);
                        loginContext.login();
                } catch (LoginException e) {
                        e.printStackTrace();
@@ -75,8 +79,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<Object>() {
 
@@ -191,4 +196,10 @@ public class CmsE4Application implements IApplication, CmsView {
                return CurrentUser.isAnonymous(getSubject());
        }
 
+       @Override
+       public String getUid() {
+               return uid;
+       }
+
+       
 }