]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/AbstractRapE4App.java
Keep working on DocBoook support
[lgpl/argeo-commons.git] / org.argeo.cms.e4.rap / src / org / argeo / cms / e4 / rap / AbstractRapE4App.java
1 package org.argeo.cms.e4.rap;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.apache.commons.logging.Log;
7 import org.apache.commons.logging.LogFactory;
8 import org.argeo.cms.ui.dialogs.CmsFeedback;
9 import org.eclipse.rap.e4.E4ApplicationConfig;
10 import org.eclipse.rap.rwt.application.Application;
11 import org.eclipse.rap.rwt.application.Application.OperationMode;
12 import org.eclipse.rap.rwt.application.ApplicationConfiguration;
13 import org.eclipse.rap.rwt.application.ExceptionHandler;
14 import org.eclipse.rap.rwt.client.WebClient;
15 import org.osgi.framework.BundleContext;
16 import org.osgi.framework.FrameworkUtil;
17
18 public abstract class AbstractRapE4App implements ApplicationConfiguration {
19 private final static Log log = LogFactory.getLog(AbstractRapE4App.class);
20
21 private final BundleContext bc = FrameworkUtil.getBundle(AbstractRapE4App.class).getBundleContext();
22
23 private String pageTitle;
24 private String e4Xmi;
25 private String path;
26
27 public void configure(Application application) {
28 application.setExceptionHandler(new ExceptionHandler() {
29
30 @Override
31 public void handleException(Throwable throwable) {
32 CmsFeedback.show("Unexpected RWT exception", throwable);
33 // log.error("Unexpected RWT exception", throwable);
34
35 }
36 });
37
38 String lifeCycleUri = "bundleclass://" + bc.getBundle().getSymbolicName() + "/"
39 + CmsLoginLifecycle.class.getName();
40
41 Map<String, String> properties = new HashMap<String, String>();
42 properties.put(WebClient.PAGE_TITLE, pageTitle);
43 E4ApplicationConfig config = new E4ApplicationConfig(e4Xmi, lifeCycleUri, null, false, true, true);
44 addEntryPoint(application, config, properties);
45 // config.isClearPersistedState();
46 // E4EntryPointFactory entryPointFactory = new E4EntryPointFactory(config) {
47 //
48 // @Override
49 // public EntryPoint create() {
50 // Subject subject = new Subject();
51 // EntryPoint ep = createEntryPoint();
52 // EntryPoint authEp = new EntryPoint() {
53 //
54 // @Override
55 // public int createUI() {
56 // return Subject.doAs(subject, new PrivilegedAction<Integer>() {
57 //
58 // @Override
59 // public Integer run() {
60 // return ep.createUI();
61 // }
62 //
63 // });
64 // }
65 // };
66 // return authEp;
67 // }
68 //
69 // protected EntryPoint createEntryPoint() {
70 // return super.create();
71 // }
72 //
73 // };
74 }
75
76 protected void addEntryPoint(Application application, E4ApplicationConfig config, Map<String, String> properties) {
77 CmsE4EntryPointFactory entryPointFactory = new CmsE4EntryPointFactory(config);
78 application.addEntryPoint(path, entryPointFactory, properties);
79 application.setOperationMode(OperationMode.SWT_COMPATIBILITY);
80 }
81
82 public void setPageTitle(String pageTitle) {
83 this.pageTitle = pageTitle;
84 }
85
86 public void setE4Xmi(String e4Xmi) {
87 this.e4Xmi = e4Xmi;
88 }
89
90 public void setPath(String path) {
91 this.path = path;
92 }
93
94 }