From 666f06ef1d7986b80b7f58669763db6f61c030a1 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 15 Feb 2010 14:32:51 +0000
Subject: [PATCH] LMS-1364 IModule extended

SVN: 14738
---
 .../web/client/application/plugin/IModule.java    | 15 ++++++++++++---
 .../web/client/application/module/DemoModule.java |  7 +++++++
 .../web/client/application/QueryModule.java       |  7 +++++++
 3 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java
index b84f99d0d0e..7fb20e77dd6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java
@@ -25,12 +25,21 @@ import com.google.gwt.user.client.ui.Widget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenuItem;
 
 /**
- * Plugin that does not depend on entity kind and type.
+ * Plugin that does not depend on entity kind and type. All methods except
+ * {@link #initialize(AsyncCallback)} is invoked after invocation of the call back of the
+ * initialization method.
  * 
  * @author Izabela Adamczyk
  */
 public interface IModule
 {
+    /**
+     * Initializes the module and invoke method {@link AsyncCallback#onSuccess(Object)} on the
+     * specified call back after successful initialization. Otherwise
+     * {@link AsyncCallback#onFailure(Throwable)} is invoked.
+     */
+    void initialize(AsyncCallback<Void> callback);
+    
     /**
      * Returns a widget that will be used as a top menu element.
      * <p>
@@ -46,9 +55,9 @@ public interface IModule
     String getModuleName();
     
     String getModuleDescription();
-    
+
     /**
-     * Returns a list with at least one menu item. 
+     * Returns a list with menu items. The list empty if this module isn't applicable. 
      */
     List<Component> getMenuItems();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java
index d0e180ba003..5bba0a7335b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.modul
 import java.util.List;
 
 import com.extjs.gxt.ui.client.widget.Component;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Widget;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
@@ -69,4 +70,10 @@ public class DemoModule implements IModule
         // TODO Auto-generated method stub
         return null;
     }
+
+    public void initialize(AsyncCallback<Void> callback)
+    {
+        // TODO Auto-generated method stub
+        
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java
index 95503872fa6..7b764037d25 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java
@@ -20,6 +20,7 @@ import java.util.List;
 
 import com.extjs.gxt.ui.client.widget.Component;
 import com.extjs.gxt.ui.client.widget.button.Button;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Widget;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
@@ -63,4 +64,10 @@ public class QueryModule implements IModule
         return null;
     }
 
+    public void initialize(AsyncCallback<Void> callback)
+    {
+        // TODO Auto-generated method stub
+        
+    }
+
 }
-- 
GitLab