1 package org
.argeo
.cms
.e4
.rap
;
3 import java
.security
.PrivilegedAction
;
4 import java
.util
.HashMap
;
7 import javax
.security
.auth
.Subject
;
9 import org
.eclipse
.rap
.e4
.E4ApplicationConfig
;
10 import org
.eclipse
.rap
.e4
.E4EntryPointFactory
;
11 import org
.eclipse
.rap
.rwt
.application
.Application
;
12 import org
.eclipse
.rap
.rwt
.application
.Application
.OperationMode
;
13 import org
.eclipse
.rap
.rwt
.application
.ApplicationConfiguration
;
14 import org
.eclipse
.rap
.rwt
.application
.EntryPoint
;
15 import org
.eclipse
.rap
.rwt
.client
.WebClient
;
16 import org
.osgi
.framework
.BundleContext
;
17 import org
.osgi
.framework
.FrameworkUtil
;
19 public class CmsE4AdminApp
implements ApplicationConfiguration
{
20 private final BundleContext bc
= FrameworkUtil
.getBundle(CmsE4AdminApp
.class).getBundleContext();
22 String pageTitle
= "CMS Admin";
23 String e4Xmi
= "org.argeo.cms.e4/cms-admin.e4xmi";
24 String path
= "/admin";
25 String lifeCycleUri
= "bundleclass://" + bc
.getBundle().getSymbolicName() + "/" + CmsLoginLifecycle
.class.getName();
27 public void configure(Application application
) {
29 Map
<String
, String
> properties
= new HashMap
<String
, String
>();
30 properties
.put(WebClient
.PAGE_TITLE
, pageTitle
);
31 E4ApplicationConfig config
= new E4ApplicationConfig(e4Xmi
, lifeCycleUri
, null, false, true, true);
32 config
.isClearPersistedState();
33 E4EntryPointFactory entryPointFactory
= new E4EntryPointFactory(config
) {
36 public EntryPoint
create() {
37 Subject subject
= new Subject();
38 EntryPoint ep
= createEntryPoint();
39 EntryPoint authEp
= new EntryPoint() {
42 public int createUI() {
43 return Subject
.doAs(subject
, new PrivilegedAction
<Integer
>() {
46 public Integer
run() {
56 protected EntryPoint
createEntryPoint() {
57 return super.create();
61 application
.addEntryPoint(path
, entryPointFactory
, properties
);
62 application
.setOperationMode(OperationMode
.SWT_COMPATIBILITY
);
65 public void setPageTitle(String pageTitle
) {
66 this.pageTitle
= pageTitle
;
69 public void setE4Xmi(String e4Xmi
) {
73 public void setPath(String path
) {