]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsE4AdminApp.java
a8edd707bd14077e0331dc6a9a2d69a234570076
[lgpl/argeo-commons.git] / CmsE4AdminApp.java
1 package org.argeo.cms.e4.rap;
2
3 import java.security.PrivilegedAction;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 import javax.security.auth.Subject;
8
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;
18
19 public class CmsE4AdminApp implements ApplicationConfiguration {
20 private final BundleContext bc = FrameworkUtil.getBundle(CmsE4AdminApp.class).getBundleContext();
21
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();
26
27 public void configure(Application application) {
28
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) {
34
35 @Override
36 public EntryPoint create() {
37 Subject subject = new Subject();
38 EntryPoint ep = createEntryPoint();
39 EntryPoint authEp = new EntryPoint() {
40
41 @Override
42 public int createUI() {
43 return Subject.doAs(subject, new PrivilegedAction<Integer>() {
44
45 @Override
46 public Integer run() {
47 return ep.createUI();
48 }
49
50 });
51 }
52 };
53 return authEp;
54 }
55
56 protected EntryPoint createEntryPoint() {
57 return super.create();
58 }
59
60 };
61 application.addEntryPoint(path, entryPointFactory, properties);
62 application.setOperationMode(OperationMode.SWT_COMPATIBILITY);
63 }
64
65 public void setPageTitle(String pageTitle) {
66 this.pageTitle = pageTitle;
67 }
68
69 public void setE4Xmi(String e4Xmi) {
70 this.e4Xmi = e4Xmi;
71 }
72
73 public void setPath(String path) {
74 this.path = path;
75 }
76
77 }