Introduce examples.
[lgpl/argeo-commons.git] / org.argeo.cms.e4.rap / src / org / argeo / cms / e4 / rap / AbstractRapE4App.java
index c293f1ab02524b4516a5f9ca00c9935aeef6b9eb..8bf16a265c6665a3b1aaa22b613b654a306ae4c6 100644 (file)
@@ -10,6 +10,7 @@ import org.eclipse.rap.rwt.application.Application.OperationMode;
 import org.eclipse.rap.rwt.application.ApplicationConfiguration;
 import org.eclipse.rap.rwt.application.ExceptionHandler;
 import org.eclipse.rap.rwt.client.WebClient;
+import org.osgi.framework.BundleContext;
 
 /** Base class for CMS RAP applications. */
 public abstract class AbstractRapE4App implements ApplicationConfiguration {
@@ -17,7 +18,18 @@ public abstract class AbstractRapE4App implements ApplicationConfiguration {
        private String path;
        private String lifeCycleUri = "bundleclass://org.argeo.cms.e4.rap/org.argeo.cms.e4.rap.CmsLoginLifecycle";
 
-       Map<String, String> baseProperties = new HashMap<String, String>();
+       private Map<String, String> baseProperties = new HashMap<String, String>();
+
+       private BundleContext bundleContext;
+       private final static String CONTEXT_NAME_PROPERTY = "contextName";
+       private String contextName;
+
+       /**
+        * To be overridden in order to add multiple entry points, directly or using
+        * {@link #addE4EntryPoint(Application, String, String, Map)}.
+        */
+       protected void addEntryPoints(Application application) {
+       }
 
        public void configure(Application application) {
                application.setExceptionHandler(new ExceptionHandler() {
@@ -35,14 +47,6 @@ public abstract class AbstractRapE4App implements ApplicationConfiguration {
                }
        }
 
-       /**
-        * To be overridden in order to add multiple entry points, directly or using
-        * {@link #addE4EntryPoint(Application, String, String, Map)}.
-        */
-       protected void addEntryPoints(Application application) {
-
-       }
-
        protected Map<String, String> getBaseProperties() {
                return baseProperties;
        }
@@ -97,12 +101,28 @@ public abstract class AbstractRapE4App implements ApplicationConfiguration {
                this.lifeCycleUri = lifeCycleUri;
        }
 
-       public void init(Map<String, Object> properties) {
+       protected BundleContext getBundleContext() {
+               return bundleContext;
+       }
+
+       protected String getContextName() {
+               return contextName;
+       }
+
+       public void init(BundleContext bundleContext, Map<String, Object> properties) {
+               this.bundleContext = bundleContext;
                for (String key : properties.keySet()) {
                        Object value = properties.get(key);
                        if (value != null)
                                baseProperties.put(key, value.toString());
                }
+
+               if (properties.containsKey(CONTEXT_NAME_PROPERTY)) {
+                       assert properties.get(CONTEXT_NAME_PROPERTY) != null;
+                       contextName = properties.get(CONTEXT_NAME_PROPERTY).toString();
+               } else {
+                       contextName = "<unknown context>";
+               }
        }
 
        public void destroy(Map<String, Object> properties) {