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 abstract class AbstractRapE4App
implements ApplicationConfiguration
{
20 private final BundleContext bc
= FrameworkUtil
.getBundle(AbstractRapE4App
.class).getBundleContext();
22 private String pageTitle
;
26 public void configure(Application application
) {
27 String lifeCycleUri
= "bundleclass://" + bc
.getBundle().getSymbolicName() + "/"
28 + CmsLoginLifecycle
.class.getName();
30 Map
<String
, String
> properties
= new HashMap
<String
, String
>();
31 properties
.put(WebClient
.PAGE_TITLE
, pageTitle
);
32 E4ApplicationConfig config
= new E4ApplicationConfig(e4Xmi
, lifeCycleUri
, null, false, true, true);
33 config
.isClearPersistedState();
34 E4EntryPointFactory entryPointFactory
= new E4EntryPointFactory(config
) {
37 public EntryPoint
create() {
38 Subject subject
= new Subject();
39 EntryPoint ep
= createEntryPoint();
40 EntryPoint authEp
= new EntryPoint() {
43 public int createUI() {
44 return Subject
.doAs(subject
, new PrivilegedAction
<Integer
>() {
47 public Integer
run() {
57 protected EntryPoint
createEntryPoint() {
58 return super.create();
62 application
.addEntryPoint(path
, entryPointFactory
, properties
);
63 application
.setOperationMode(OperationMode
.SWT_COMPATIBILITY
);
66 public void setPageTitle(String pageTitle
) {
67 this.pageTitle
= pageTitle
;
70 public void setE4Xmi(String e4Xmi
) {
74 public void setPath(String path
) {