From 6e596ab491e3f0cf453c953ae7655b8d6b49036f Mon Sep 17 00:00:00 2001
From: izabel <izabel>
Date: Tue, 29 Sep 2009 17:38:48 +0000
Subject: [PATCH] add tooltip to vocabulary term list

SVN: 12772
---
 .../model/ModelDataPropertyNames.java          |  2 ++
 .../application/model/VocabularyTermModel.java |  2 ++
 .../VocabularyPropertyColRenderer.java         | 17 +++++++++++++++++
 .../field/VocabularyTermSelectionWidget.java   | 18 ++++++++++++++++--
 .../application/ui/widget/DropDownList.java    |  3 ++-
 5 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ModelDataPropertyNames.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ModelDataPropertyNames.java
index 18354c8e00e..3a0b8d1ad80 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ModelDataPropertyNames.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/ModelDataPropertyNames.java
@@ -40,6 +40,8 @@ public final class ModelDataPropertyNames
 
     public static final String CODE_WITH_LABEL = "code_with_label";
 
+    public static final String TOOLTIP = "tooltip";
+
     public static final String LABEL = "label";
 
     public static final String DATA_SET_TYPES = "data_set_types";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/VocabularyTermModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/VocabularyTermModel.java
index c943456ba71..ee3b450754f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/VocabularyTermModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/VocabularyTermModel.java
@@ -40,6 +40,8 @@ public class VocabularyTermModel extends BaseModel implements Comparable<Vocabul
     {
         set(ModelDataPropertyNames.CODE, term.getCode());
         set(ModelDataPropertyNames.CODE_WITH_LABEL, getCodeWithLabel(term));
+        set(ModelDataPropertyNames.TOOLTIP, VocabularyPropertyColRenderer
+                .renderAsTooltip(term));
         set(ModelDataPropertyNames.OBJECT, term);
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/VocabularyPropertyColRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/VocabularyPropertyColRenderer.java
index 9e944c722bf..d8d3ddcf1ef 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/VocabularyPropertyColRenderer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/VocabularyPropertyColRenderer.java
@@ -84,4 +84,21 @@ public class VocabularyPropertyColRenderer<T extends IEntityPropertiesHolder> ex
             return label + " [" + code + "]";
         }
     }
+
+    public static final String renderAsTooltip(VocabularyTerm term)
+    {
+        final String code = term.getCode();
+        final String label = term.getLabel();
+        final String description = term.getDescription();
+        String result = "<b>" + code + "</b>";
+        if (label != null)
+        {
+            result += "<br>" + label;
+        }
+        if (description != null)
+        {
+            result += "<br><i>" + description + "</i>";
+        }
+        return result.replace(".", ". ");
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java
index 07c88bc3cdd..5652987820b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java
@@ -49,7 +49,7 @@ public class VocabularyTermSelectionWidget extends
     private final IViewContext<?> viewContextOrNull;
 
     private Vocabulary vocabularyOrNull;
-    
+
     private String initialTermCodeOrNull;
 
     private boolean dataLoaded = false;
@@ -90,8 +90,10 @@ public class VocabularyTermSelectionWidget extends
         {
             setTerms(termsOrNull);
         }
+        setTemplate(getTooltipTemplate(ModelDataPropertyNames.CODE_WITH_LABEL,
+                ModelDataPropertyNames.TOOLTIP));
     }
-    
+
     public void setVocabulary(Vocabulary vocabulary)
     {
         vocabularyOrNull = vocabulary;
@@ -165,4 +167,16 @@ public class VocabularyTermSelectionWidget extends
         }
     }
 
+    private native String getTooltipTemplate(String displayField, String tooltipField) /*-{ 
+             return  [ 
+             '<tpl for=".">', 
+             '<div class="x-combo-list-item" qtip="{[values.',
+             tooltipField,
+             ']}">{[values.',
+             displayField,
+             ']}</div>', 
+             '</tpl>' 
+             ].join(""); 
+           }-*/;
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java
index 43406463a62..e076f0873e2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java
@@ -50,7 +50,7 @@ abstract public class DropDownList<M extends ModelData, E> extends ComboBox<M> i
 
     // ----------
 
-    private static final int DEFAULT_WIDTH = 150;
+    private static final int DEFAULT_WIDTH = 200;
 
     private static final String PREFIX = "select_";
 
@@ -434,4 +434,5 @@ abstract public class DropDownList<M extends ModelData, E> extends ComboBox<M> i
             refreshStore();
         }
     }
+
 }
-- 
GitLab