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 18354c8e00e1305f0053978844de1a363e1abc4f..3a0b8d1ad80f96d79bb3c36dff9f7fc447785109 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 c943456ba71b37c564eab67dc3e4550596525191..ee3b450754f61aca71d06154d0003e6656937f59 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 9e944c722bfcf9e50fa41d638bef86b1aa0bd390..d8d3ddcf1ef37fa412d11c2da0807bfd4579aec2 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 07c88bc3cddaa1038b6f6e2fc29fb05e80b8ec32..5652987820b5d55e74d90c396f780edf79552fa8 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 43406463a62d6e26d537a0da2322c4961006578d..e076f0873e2548249e14e58bbd2854d10ff1d2af 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(); } } + }