From e0878f562f72e8c1314edd19d585f7039587de0d Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Thu, 9 Aug 2012 13:46:49 +0000
Subject: [PATCH] BIS-122 SP-236 : Added the GRID view mode that offers more
 grid functionality than the embedded view mode

SVN: 26320
---
 .../web/client/application/GenericViewModel.java |  5 +++++
 .../client/application/framework/AppView.java    | 16 ++++++++--------
 .../AggregationServiceLocatorResolver.java       | 14 +++++++++++---
 .../ui/aggregation/AggregationServicePanel.java  |  2 +-
 .../openbis/generic/shared/basic/ViewMode.java   |  5 +++++
 5 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericViewModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericViewModel.java
index b24e5b9b366..88f1e42392e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericViewModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericViewModel.java
@@ -76,6 +76,11 @@ public class GenericViewModel
         return viewMode == ViewMode.EMBEDDED;
     }
 
+    public boolean isGridMode()
+    {
+        return viewMode == ViewMode.GRID;
+    }
+
     public boolean isDisplaySettingsSaving()
     {
         return isAnonymousLogin() == false && ViewMode.NORMAL.equals(getViewMode());
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java
index 2af6c7b52b4..19fc1b420d2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java
@@ -16,6 +16,13 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.framework;
 
+import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.CommonViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenu;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.SimpleModeHeader;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ViewMode;
+
 import com.extjs.gxt.ui.client.Style.LayoutRegion;
 import com.extjs.gxt.ui.client.Style.Scroll;
 import com.extjs.gxt.ui.client.mvc.AppEvent;
@@ -28,13 +35,6 @@ import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
 import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
 import com.google.gwt.user.client.ui.RootPanel;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.CommonViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenu;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.SimpleModeHeader;
-import ch.systemsx.cisd.openbis.generic.shared.basic.ViewMode;
-
 /**
  * Main application view.
  * 
@@ -87,7 +87,7 @@ final class AppView extends View
         } else if (viewMode == ViewMode.NORMAL)
         {
             north = new TopMenu(viewContext, componentProvider);
-        } else if (viewMode == ViewMode.EMBEDDED)
+        } else if (viewMode == ViewMode.EMBEDDED || viewMode == ViewMode.GRID)
         {
             north = null;
         } else
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServiceLocatorResolver.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServiceLocatorResolver.java
index 1597bd3c36e..0c5fd93e13c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServiceLocatorResolver.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServiceLocatorResolver.java
@@ -1,7 +1,6 @@
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.aggregation;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
@@ -44,7 +43,14 @@ public class AggregationServiceLocatorResolver extends AbstractViewLocatorResolv
                 @Override
                 public ITabItem create()
                 {
-                    return DefaultTabItem.createUnaware(getTabTitle(), new AggregationServicePanel(
+                    String tabTitle =
+                            locator.getParameters().get(AggregationServicePanel.SERVICE_KEY_PARAM);
+                    if (null == tabTitle)
+                    {
+                        tabTitle = getTabTitle();
+                    }
+
+                    return DefaultTabItem.createUnaware(tabTitle, new AggregationServicePanel(
                             viewContext, MainPagePanel.PREFIX, locator), false, viewContext);
                 }
 
@@ -63,7 +69,9 @@ public class AggregationServiceLocatorResolver extends AbstractViewLocatorResolv
                 @Override
                 public String getTabTitle()
                 {
-                    return viewContext.getMessage(Dict.APPLICATION_NAME);
+                    // No need to go through the dictionary for this, since the panel is not a
+                    // normal part of the openBIS app.
+                    return "aggregation service";
                 }
 
                 @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServicePanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServicePanel.java
index b896e0faa60..bdea6d34e40 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServicePanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/aggregation/AggregationServicePanel.java
@@ -44,7 +44,7 @@ import com.google.gwt.user.client.ui.HTML;
  */
 public class AggregationServicePanel extends ContentPanel
 {
-    private static final String SERVICE_KEY_PARAM = "serviceKey";
+    static final String SERVICE_KEY_PARAM = "serviceKey";
 
     private static final String DSS_CODE_PARAM = "dss";
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/ViewMode.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/ViewMode.java
index 9e4b1f464e3..2acc4442c9c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/ViewMode.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/ViewMode.java
@@ -32,5 +32,10 @@ public enum ViewMode implements IsSerializable
      */
     EMBEDDED,
 
+    /**
+     * Grid mode is similar to embedded, but it has full-featured grid functionality.
+     */
+    GRID,
+
     NORMAL;
 }
-- 
GitLab