Generalise Eclipse 4 components
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 25 Mar 2018 14:12:19 +0000 (16:12 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 25 Mar 2018 14:12:19 +0000 (16:12 +0200)
org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/AbstractRapE4App.java [new file with mode: 0644]
org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/CmsE4AdminApp.java

diff --git a/org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/AbstractRapE4App.java b/org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/AbstractRapE4App.java
new file mode 100644 (file)
index 0000000..c70e381
--- /dev/null
@@ -0,0 +1,78 @@
+package org.argeo.cms.e4.rap;
+
+import java.security.PrivilegedAction;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.Subject;
+
+import org.eclipse.rap.e4.E4ApplicationConfig;
+import org.eclipse.rap.e4.E4EntryPointFactory;
+import org.eclipse.rap.rwt.application.Application;
+import org.eclipse.rap.rwt.application.Application.OperationMode;
+import org.eclipse.rap.rwt.application.ApplicationConfiguration;
+import org.eclipse.rap.rwt.application.EntryPoint;
+import org.eclipse.rap.rwt.client.WebClient;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+
+public abstract class AbstractRapE4App implements ApplicationConfiguration {
+       private final BundleContext bc = FrameworkUtil.getBundle(AbstractRapE4App.class).getBundleContext();
+
+       private String pageTitle;
+       private String e4Xmi;
+       private String path;
+
+       public void configure(Application application) {
+               String lifeCycleUri = "bundleclass://" + bc.getBundle().getSymbolicName() + "/"
+                               + CmsLoginLifecycle.class.getName();
+
+               Map<String, String> properties = new HashMap<String, String>();
+               properties.put(WebClient.PAGE_TITLE, pageTitle);
+               E4ApplicationConfig config = new E4ApplicationConfig(e4Xmi, lifeCycleUri, null, false, true, true);
+               config.isClearPersistedState();
+               E4EntryPointFactory entryPointFactory = new E4EntryPointFactory(config) {
+
+                       @Override
+                       public EntryPoint create() {
+                               Subject subject = new Subject();
+                               EntryPoint ep = createEntryPoint();
+                               EntryPoint authEp = new EntryPoint() {
+
+                                       @Override
+                                       public int createUI() {
+                                               return Subject.doAs(subject, new PrivilegedAction<Integer>() {
+
+                                                       @Override
+                                                       public Integer run() {
+                                                               return ep.createUI();
+                                                       }
+
+                                               });
+                                       }
+                               };
+                               return authEp;
+                       }
+
+                       protected EntryPoint createEntryPoint() {
+                               return super.create();
+                       }
+
+               };
+               application.addEntryPoint(path, entryPointFactory, properties);
+               application.setOperationMode(OperationMode.SWT_COMPATIBILITY);
+       }
+
+       public void setPageTitle(String pageTitle) {
+               this.pageTitle = pageTitle;
+       }
+
+       public void setE4Xmi(String e4Xmi) {
+               this.e4Xmi = e4Xmi;
+       }
+
+       public void setPath(String path) {
+               this.path = path;
+       }
+
+}
index a8edd707bd14077e0331dc6a9a2d69a234570076..4f1b20a3d13ffaf4c8c5cacf16adac4420939a9e 100644 (file)
@@ -1,77 +1,10 @@
 package org.argeo.cms.e4.rap;
 
-import java.security.PrivilegedAction;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.security.auth.Subject;
-
-import org.eclipse.rap.e4.E4ApplicationConfig;
-import org.eclipse.rap.e4.E4EntryPointFactory;
-import org.eclipse.rap.rwt.application.Application;
-import org.eclipse.rap.rwt.application.Application.OperationMode;
-import org.eclipse.rap.rwt.application.ApplicationConfiguration;
-import org.eclipse.rap.rwt.application.EntryPoint;
-import org.eclipse.rap.rwt.client.WebClient;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-
-public class CmsE4AdminApp implements ApplicationConfiguration {
-       private final BundleContext bc = FrameworkUtil.getBundle(CmsE4AdminApp.class).getBundleContext();
-
-       String pageTitle = "CMS Admin";
-       String e4Xmi = "org.argeo.cms.e4/cms-admin.e4xmi";
-       String path = "/admin";
-       String lifeCycleUri = "bundleclass://" + bc.getBundle().getSymbolicName() + "/" + CmsLoginLifecycle.class.getName();
-
-       public void configure(Application application) {
-
-               Map<String, String> properties = new HashMap<String, String>();
-               properties.put(WebClient.PAGE_TITLE, pageTitle);
-               E4ApplicationConfig config = new E4ApplicationConfig(e4Xmi, lifeCycleUri, null, false, true, true);
-               config.isClearPersistedState();
-               E4EntryPointFactory entryPointFactory = new E4EntryPointFactory(config) {
-
-                       @Override
-                       public EntryPoint create() {
-                               Subject subject = new Subject();
-                               EntryPoint ep = createEntryPoint();
-                               EntryPoint authEp = new EntryPoint() {
-
-                                       @Override
-                                       public int createUI() {
-                                               return Subject.doAs(subject, new PrivilegedAction<Integer>() {
-
-                                                       @Override
-                                                       public Integer run() {
-                                                               return ep.createUI();
-                                                       }
-
-                                               });
-                                       }
-                               };
-                               return authEp;
-                       }
-
-                       protected EntryPoint createEntryPoint() {
-                               return super.create();
-                       }
-
-               };
-               application.addEntryPoint(path, entryPointFactory, properties);
-               application.setOperationMode(OperationMode.SWT_COMPATIBILITY);
-       }
-
-       public void setPageTitle(String pageTitle) {
-               this.pageTitle = pageTitle;
-       }
-
-       public void setE4Xmi(String e4Xmi) {
-               this.e4Xmi = e4Xmi;
-       }
-
-       public void setPath(String path) {
-               this.path = path;
+public class CmsE4AdminApp extends AbstractRapE4App {
+       public CmsE4AdminApp() {
+               setPageTitle("CMS Admin");
+               setE4Xmi("org.argeo.cms.e4/cms-admin.e4xmi");
+               setPath("/admin");
        }
 
 }