From db68fcdc837ba18568ea2ac65e0729ae76924acc Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Mon, 12 Oct 2009 17:14:32 +0000 Subject: [PATCH] [LMS-1211] added tooltips for entity type choosers SVN: 12904 --- .../application/model/DataSetTypeModel.java | 2 + .../model/ExperimentTypeModel.java | 3 ++ .../application/model/MaterialTypeModel.java | 2 + .../application/model/SampleTypeModel.java | 2 + .../renderer/EntityTypeTooltipRenderer.java | 41 +++++++++++++++++++ .../ui/data/DataSetTypeSelectionWidget.java | 3 ++ .../ExperimentTypeSelectionWidget.java | 4 ++ .../field/VocabularyTermSelectionWidget.java | 13 +----- .../material/MaterialTypeSelectionWidget.java | 3 ++ .../ui/sample/SampleTypeSelectionWidget.java | 3 ++ .../web/client/application/util/GWTUtils.java | 16 ++++++++ 11 files changed, 80 insertions(+), 12 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/EntityTypeTooltipRenderer.java 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 ee22e03243c..94371c0f7c8 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,6 +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.shared.basic.dto.DataSetType; /** @@ -38,6 +39,7 @@ public class DataSetTypeModel extends BaseModelData { set(ModelDataPropertyNames.CODE, dataSetType.getCode()); set(ModelDataPropertyNames.OBJECT, dataSetType); + set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer.renderAsTooltip(dataSetType)); } 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 e42e300f60a..4d910896cd3 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,6 +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.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentTypePropertyType; @@ -42,6 +43,8 @@ public class ExperimentTypeModel extends BaseModelData { set(ModelDataPropertyNames.CODE, experimentType.getCode()); set(ModelDataPropertyNames.OBJECT, experimentType); + set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer + .renderAsTooltip(experimentType)); } 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 5d5b23436f9..1ec9da71763 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,6 +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.shared.basic.dto.MaterialType; /** @@ -37,6 +38,7 @@ public class MaterialTypeModel extends BaseModelData public MaterialTypeModel(final MaterialType type) { this(type.getCode(), type); + set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer.renderAsTooltip(type)); } 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 d90879c256a..7e02732c132 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,6 +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.shared.basic.dto.SampleType; /** @@ -38,6 +39,7 @@ public class SampleTypeModel extends BaseModelData { set(ModelDataPropertyNames.CODE, sampleType.getCode()); set(ModelDataPropertyNames.OBJECT, sampleType); + set(ModelDataPropertyNames.TOOLTIP, EntityTypeTooltipRenderer.renderAsTooltip(sampleType)); } 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/EntityTypeTooltipRenderer.java new file mode 100644 index 00000000000..ba7e909adcd --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/EntityTypeTooltipRenderer.java @@ -0,0 +1,41 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer; + +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; + +/** + * A renderer for tooltips entity type tooltips (used in drop down lists). + * + * @author Piotr Buczek + */ +public class EntityTypeTooltipRenderer +{ + public static final String renderAsTooltip(EntityType entityType) + { + final String code = entityType.getCode(); + final String description = entityType.getDescription(); + final StringBuilder sb = new StringBuilder(); + sb.append("<b>" + code + "</b>"); + if (description != null) + { + sb.append("<br><hr>description: <i>" + description + "</i>"); + } + return sb.toString(); + } + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeSelectionWidget.java index 2faed567dc8..5d97708a220 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetTypeSelectionWidget.java @@ -27,6 +27,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.DataSetTypeModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; 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.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -48,6 +49,8 @@ public final class DataSetTypeSelectionWidget extends DropDownList<DataSetTypeMo super(viewContext, SUFFIX + idSuffix, Dict.DATA_SET_TYPE, ModelDataPropertyNames.CODE, "data set type", "data set types"); this.viewContext = viewContext; + setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE, + ModelDataPropertyNames.TOOLTIP)); } /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeSelectionWidget.java index 618e0d0e8b5..0d399050a8f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentTypeSelectionWidget.java @@ -27,6 +27,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ExperimentTypeModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; 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.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -53,6 +54,8 @@ public final class ExperimentTypeSelectionWidget extends this.viewContext = viewContext; this.withAll = withAll; setAutoSelectFirst(withAll); + setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE, + ModelDataPropertyNames.TOOLTIP)); } public ExperimentTypeSelectionWidget(final IViewContext<ICommonClientServiceAsync> viewContext, @@ -87,4 +90,5 @@ public final class ExperimentTypeSelectionWidget extends { return DatabaseModificationKind.any(ObjectKind.EXPERIMENT_TYPE); } + } 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 ced262fff31..768eea23ed2 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 @@ -87,7 +87,7 @@ public class VocabularyTermSelectionWidget extends { setTerms(termsOrNull); } - setTemplate(getTooltipTemplate(ModelDataPropertyNames.CODE_WITH_LABEL, + setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE_WITH_LABEL, ModelDataPropertyNames.TOOLTIP)); } @@ -162,15 +162,4 @@ 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/material/MaterialTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java index da02c2d78e2..2eab360a923 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java @@ -27,6 +27,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.MaterialTypeModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; 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.MaterialType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -82,6 +83,8 @@ public final class MaterialTypeSelectionWidget extends "material type", "material types"); this.viewContext = viewContext; this.additionalOptionLabelOrNull = additionalOptionLabelOrNull; + setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE, + ModelDataPropertyNames.TOOLTIP)); } /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeSelectionWidget.java index 735f502bf94..1eafe07a778 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleTypeSelectionWidget.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.model.SampleTypeModel; 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.SampleType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -57,6 +58,8 @@ public final class SampleTypeSelectionWidget extends DropDownList<SampleTypeMode this.withAll = withAll; this.withTypeInFile = withTypeInFile; setAutoSelectFirst(withAll); + setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE, + ModelDataPropertyNames.TOOLTIP)); } public SampleTypeSelectionWidget(final IViewContext<?> viewContext, final String idSuffix, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java index de9a5cc0312..8106aa445af 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/util/GWTUtils.java @@ -269,4 +269,20 @@ public final class GWTUtils $wnd.allowConfirmOnExit = allowConfirmOnExit; }-*/; + /** + * Tooltip template displayed when mouse is over drop down list. + */ + public final static native String getTooltipTemplate(String displayField, String tooltipField) + /*-{ + return [ + '<tpl for=".">', + '<div class="x-combo-list-item" qtip="{[values.', + tooltipField, + ']}">{[values.', + displayField, + ']}</div>', + '</tpl>' + ].join(""); + }-*/; + } -- GitLab