From 9fd51171c85baff2d3b647774c2f1cef8467a01f Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Mon, 12 Oct 2009 17:32:17 +0000
Subject: [PATCH] [LMS-1211] added tooltips for filters

SVN: 12905
---
 .../application/model/DataSetTypeModel.java       |  5 +++--
 .../application/model/ExperimentTypeModel.java    |  6 +++---
 .../application/model/MaterialTypeModel.java      |  5 +++--
 .../client/application/model/SampleTypeModel.java |  5 +++--
 ...eTooltipRenderer.java => TooltipRenderer.java} | 15 +++++++--------
 .../ui/grid/expressions/filter/FilterModel.java   |  3 +++
 .../expressions/filter/FilterSelectionWidget.java |  5 ++++-
 7 files changed, 26 insertions(+), 18 deletions(-)
 rename openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/{EntityTypeTooltipRenderer.java => TooltipRenderer.java} (65%)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/DataSetTypeModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/DataSetTypeModel.java
index 94371c0f7c8..a229c728982 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/DataSetTypeModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/DataSetTypeModel.java
@@ -22,7 +22,7 @@ import java.util.List;
 import com.extjs.gxt.ui.client.data.BaseModelData;
 import com.extjs.gxt.ui.client.data.ModelData;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.EntityTypeTooltipRenderer;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.TooltipRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
 
 /**
@@ -39,7 +39,8 @@ public class DataSetTypeModel extends BaseModelData
     {
         set(ModelDataPropertyNames.CODE, dataSetType.getCode());
         set(ModelDataPropertyNames.OBJECT, dataSetType);
-        set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer.renderAsTooltip(dataSetType));
+        set(ModelDataPropertyNames.TOOLTIP, TooltipRenderer.renderAsTooltip(dataSetType.getCode(),
+                dataSetType.getDescription()));
     }
 
     public final static List<DataSetTypeModel> convert(final List<DataSetType> dataSetTypes)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ExperimentTypeModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ExperimentTypeModel.java
index 4d910896cd3..aca9e8a075f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ExperimentTypeModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ExperimentTypeModel.java
@@ -24,7 +24,7 @@ import java.util.Set;
 import com.extjs.gxt.ui.client.data.BaseModelData;
 import com.extjs.gxt.ui.client.data.ModelData;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.EntityTypeTooltipRenderer;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.TooltipRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentTypePropertyType;
@@ -43,8 +43,8 @@ public class ExperimentTypeModel extends BaseModelData
     {
         set(ModelDataPropertyNames.CODE, experimentType.getCode());
         set(ModelDataPropertyNames.OBJECT, experimentType);
-        set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer
-                .renderAsTooltip(experimentType));
+        set(ModelDataPropertyNames.TOOLTIP, TooltipRenderer.renderAsTooltip(experimentType
+                .getCode(), experimentType.getDescription()));
     }
 
     public final static List<ExperimentTypeModel> convert(
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MaterialTypeModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MaterialTypeModel.java
index 1ec9da71763..f92a173bd9e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MaterialTypeModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MaterialTypeModel.java
@@ -22,7 +22,7 @@ import java.util.List;
 import com.extjs.gxt.ui.client.data.BaseModelData;
 import com.extjs.gxt.ui.client.data.ModelData;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.EntityTypeTooltipRenderer;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.TooltipRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 
 /**
@@ -38,7 +38,8 @@ public class MaterialTypeModel extends BaseModelData
     public MaterialTypeModel(final MaterialType type)
     {
         this(type.getCode(), type);
-        set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer.renderAsTooltip(type));
+        set(ModelDataPropertyNames.TOOLTIP, TooltipRenderer.renderAsTooltip(type.getCode(), type
+                .getDescription()));
     }
 
     private static MaterialTypeModel createNone(String label)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/SampleTypeModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/SampleTypeModel.java
index 7e02732c132..9177862191d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/SampleTypeModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/SampleTypeModel.java
@@ -22,7 +22,7 @@ import java.util.List;
 import com.extjs.gxt.ui.client.data.BaseModelData;
 import com.extjs.gxt.ui.client.data.ModelData;
 
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.EntityTypeTooltipRenderer;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.TooltipRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
 
 /**
@@ -39,7 +39,8 @@ public class SampleTypeModel extends BaseModelData
     {
         set(ModelDataPropertyNames.CODE, sampleType.getCode());
         set(ModelDataPropertyNames.OBJECT, sampleType);
-        set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer.renderAsTooltip(sampleType));
+        set(ModelDataPropertyNames.TOOLTIP, TooltipRenderer.renderAsTooltip(sampleType.getCode(),
+                sampleType.getDescription()));
     }
 
     public final static List<SampleTypeModel> convert(final List<SampleType> sampleTypes,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/EntityTypeTooltipRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/TooltipRenderer.java
similarity index 65%
rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/EntityTypeTooltipRenderer.java
rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/TooltipRenderer.java
index ba7e909adcd..31cb4b984ce 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/EntityTypeTooltipRenderer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/TooltipRenderer.java
@@ -16,24 +16,23 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer;
 
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.StringUtils;
 
 /**
- * A renderer for tooltips entity type tooltips (used in drop down lists).
+ * A helper used to render tooltips for entities chosen from combo-boxes.
  * 
  * @author Piotr Buczek
  */
-public class EntityTypeTooltipRenderer
+public class TooltipRenderer
 {
-    public static final String renderAsTooltip(EntityType entityType)
+    public static final String renderAsTooltip(String code, String descriptionOrNull)
     {
-        final String code = entityType.getCode();
-        final String description = entityType.getDescription();
+        assert code != null;
         final StringBuilder sb = new StringBuilder();
         sb.append("<b>" + code + "</b>");
-        if (description != null)
+        if (StringUtils.isEmpty(descriptionOrNull) == false)
         {
-            sb.append("<br><hr>description: <i>" + description + "</i>");
+            sb.append("<br><hr>description: <i>" + descriptionOrNull + "</i>");
         }
         return sb.toString();
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterModel.java
index 04d05915332..d47a91fdc20 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterModel.java
@@ -23,6 +23,7 @@ import com.extjs.gxt.ui.client.data.BaseModelData;
 import com.extjs.gxt.ui.client.data.ModelData;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.TooltipRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
 
 /**
@@ -40,6 +41,8 @@ public class FilterModel extends BaseModelData
         set(ModelDataPropertyNames.NAME, filter.getName());
         set(ModelDataPropertyNames.DESCRIPTION, filter.getDescription());
         set(ModelDataPropertyNames.OBJECT, filter);
+        set(ModelDataPropertyNames.TOOLTIP, TooltipRenderer.renderAsTooltip(filter.getName(),
+                filter.getDescription()));
     }
 
     public final static List<FilterModel> convert(final List<GridCustomFilter> filters,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterSelectionWidget.java
index 1aaa4c9dc98..a930ca56433 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterSelectionWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/FilterSelectionWidget.java
@@ -26,6 +26,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisplayTypeIDProvider;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.DropDownList;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
@@ -35,7 +36,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKin
  * 
  * @author Izabela Adamczyk
  */
-public final class FilterSelectionWidget extends DropDownList<FilterModel, GridCustomFilter> 
+public final class FilterSelectionWidget extends DropDownList<FilterModel, GridCustomFilter>
 {
     private static final String LIST_ITEMS_CALLBACK = "ListItemsCallback";
 
@@ -57,6 +58,8 @@ public final class FilterSelectionWidget extends DropDownList<FilterModel, GridC
         this.withStandard = true;
         setAutoSelectFirst(withStandard);
         setCallbackId(createCallbackId());
+        setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.NAME,
+                ModelDataPropertyNames.TOOLTIP));
     }
 
     public static String createCallbackId()
-- 
GitLab