From b921e00db5e2bf7c98056ddbbe23e9f87bba70fd Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 19 Feb 2010 14:25:39 +0000
Subject: [PATCH] [LMS-1362] changed automagical link text

SVN: 14867
---
 .../application/renderer/LinkRenderer.java    | 25 +++++++++++++++---
 .../renderer/ShowDetailsLinkCellRenderer.java | 26 -------------------
 .../ui/grid/AbstractEntityBrowserGrid.java    |  7 ++---
 .../application/ui/report/ReportGrid.java     | 12 +++++++--
 .../client/web/client/application/Dict.java   |  3 +++
 .../client/web/public/query-dictionary.js     |  2 ++
 6 files changed, 40 insertions(+), 35 deletions(-)
 delete mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java
index 5b6c7b461b3..f9bacd392fc 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java
@@ -16,8 +16,6 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
-
 import com.extjs.gxt.ui.client.store.ListStore;
 import com.extjs.gxt.ui.client.widget.grid.ColumnData;
 import com.extjs.gxt.ui.client.widget.grid.Grid;
@@ -29,6 +27,8 @@ import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.Hyperlink;
 import com.google.gwt.user.client.ui.Widget;
 
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
+
 /**
  * @author Franz-Josef Elmer
  * @author Piotr Buczek
@@ -51,6 +51,23 @@ public class LinkRenderer
             };
     }
 
+    public static GridCellRenderer<BaseEntityModel<?>> createLinkRenderer(final String text,
+            final boolean openInNewWindow)
+    {
+        return new GridCellRenderer<BaseEntityModel<?>>()
+            {
+
+                public Object render(BaseEntityModel<?> model, String property, ColumnData config,
+                        int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store,
+                        Grid<BaseEntityModel<?>> grid)
+                {
+                    String originalValue = String.valueOf(model.get(property));
+                    return LinkRenderer
+                            .renderAsLinkWithAnchor(text, originalValue, openInNewWindow);
+                }
+            };
+    }
+
     public static GridCellRenderer<BaseEntityModel<?>> createExternalLinkRenderer()
     {
         return new GridCellRenderer<BaseEntityModel<?>>()
@@ -97,8 +114,8 @@ public class LinkRenderer
     }
 
     /**
-     * @return {@link Anchor} GWT widget that is displayed as a link with given <var>text</var>
-     *         and a <var>listener</var> registered on the click event. The link display style is
+     * @return {@link Anchor} GWT widget that is displayed as a link with given <var>text</var> and
+     *         a <var>listener</var> registered on the click event. The link display style is
      *         default (not invalidated).
      */
     public static Widget getLinkWidget(final String text, final ClickHandler listener)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java
deleted file mode 100644
index 8413e902e08..00000000000
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer;
-
-import com.extjs.gxt.ui.client.store.ListStore;
-import com.extjs.gxt.ui.client.widget.grid.ColumnData;
-import com.extjs.gxt.ui.client.widget.grid.Grid;
-import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
-
-public class ShowDetailsLinkCellRenderer implements GridCellRenderer<BaseEntityModel<?>>
-{
-    private final String text;
-
-    public ShowDetailsLinkCellRenderer(String text)
-    {
-        this.text = text;
-    }
-
-    public Object render(BaseEntityModel<?> model, String property, ColumnData config,
-            int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store,
-            Grid<BaseEntityModel<?>> grid)
-    {
-        String originalValue = String.valueOf(model.get(property));
-        return LinkRenderer.renderAsLinkWithAnchor(text, originalValue, true);
-    }
-}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java
index 5acdb0e6b9e..a80ea5300d2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java
@@ -32,7 +32,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplayTypeIDGenerator;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.ShowDetailsLinkCellRenderer;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
@@ -242,8 +242,9 @@ public abstract class AbstractEntityBrowserGrid<T extends IEntityPropertiesHolde
 
     protected final GridCellRenderer<BaseEntityModel<?>> createShowDetailsLinkCellRenderer()
     {
-        return new ShowDetailsLinkCellRenderer(viewContext
-                .getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE));
+        return LinkRenderer.createLinkRenderer(viewContext
+                .getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE), true);
+
     }
 
     // ------ static helpers
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java
index d5a56564d03..10e6e2caf26 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java
@@ -53,6 +53,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
+import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Dict;
 
 /**
  * Grid displaying reporting results. This grid is special comparing to other grids, because it
@@ -221,7 +222,6 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod
         GridCellRenderer<BaseEntityModel<?>> realNumberRenderer =
                 new RealNumberRenderer(viewContext.getDisplaySettingsManager()
                         .getRealNumberFormatingParameters());
-        GridCellRenderer<BaseEntityModel<?>> linkRenderer = LinkRenderer.createLinkRenderer();
         for (final ReportColumnUI colDefinition : colDefinitions)
         {
             final int colIndex = colDefinition.getIndex();
@@ -234,7 +234,8 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod
                 final EntityKind entityKind = colDefinition.tryGetEntityKind();
                 if (entityKind != EntityKind.MATERIAL)
                 {
-                    definitions.setGridCellRendererFor(colDefinition.getIdentifier(), linkRenderer);
+                    definitions.setGridCellRendererFor(colDefinition.getIdentifier(),
+                            createShowEntityDetailsLinkCellRenderer(entityKind));
                     registerLinkClickListenerFor(colDefinition.getIdentifier(),
                             new ICellListener<TableModelRow>()
                                 {
@@ -251,6 +252,13 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod
         return definitions;
     }
 
+    protected final GridCellRenderer<BaseEntityModel<?>> createShowEntityDetailsLinkCellRenderer(
+            EntityKind entityKind)
+    {
+        return LinkRenderer.createLinkRenderer(viewContext.getMessage(
+                Dict.SHOW_ENTITY_DETAILS_LINK_TEXT_TEMPLATE, entityKind.getDescription()), false);
+    }
+
     private void showEntityViewer(EntityKind entityKind, String permId)
     {
         OpenEntityDetailsTabHelper.open(viewContext, entityKind, permId);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java
index e1ff4287472..7016dacdce3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java
@@ -48,6 +48,9 @@ public final class Dict extends ch.systemsx.cisd.openbis.generic.client.web.clie
     public static final String QUERY_PARAMETERS_BINDINGS_DIALOG_TITLE =
             "query_parameters_binding_dialog_title";
 
+    public static final String SHOW_ENTITY_DETAILS_LINK_TEXT_TEMPLATE =
+            "show_entity_details_link_text_template";
+
     private Dict()
     {
         // Can not be instantiated.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js
index 5a64397fdf6..c7fb267f0d3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js
@@ -33,6 +33,8 @@ var query = {
   query_edit_title: "Edit Query Definition",
   query_parameters_binding_dialog_title: "Enter Query Parameters",
     	
+  show_entity_details_link_text_template: "Show {0} Details",  	
+    	
   // LAST LINE: KEEP IT AT THE END
   lastline: "" // we need a line without a comma
 };
\ No newline at end of file
-- 
GitLab