From 053a2f12a435ad31a4ceb6acf6e80edde6a6ed86 Mon Sep 17 00:00:00 2001
From: gpawel <gpawel>
Date: Wed, 8 Jun 2011 11:53:39 +0000
Subject: [PATCH] small improvements in 'ad hoc' vocabulary terms

SVN: 21650
---
 .../field/VocabularyTermSelectionWidget.java  |  19 +++++++++---------
 .../application/ui/widget/FieldUtil.java      |   6 ++++++
 .../openbis/public/images/trigger-plus.png    | Bin 3563 -> 3646 bytes
 3 files changed, 16 insertions(+), 9 deletions(-)

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 c2453c2d7fd..0f42a739876 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
@@ -25,6 +25,7 @@ import com.extjs.gxt.ui.client.event.EventType;
 import com.extjs.gxt.ui.client.event.Events;
 import com.extjs.gxt.ui.client.event.KeyListener;
 import com.extjs.gxt.ui.client.event.Listener;
+import com.extjs.gxt.ui.client.widget.form.LabelField;
 import com.extjs.gxt.ui.client.widget.form.TextField;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 
@@ -36,7 +37,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.VocabularyTermModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CodeField.CodeFieldKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.DropDownList;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil;
@@ -64,7 +64,7 @@ public class VocabularyTermSelectionWidget extends
 
         private final IViewContext<?> viewContext;
 
-        private final CodeField codeField;
+        private final LabelField codeField;
 
         private final DescriptionField descriptionField;
 
@@ -86,17 +86,16 @@ public class VocabularyTermSelectionWidget extends
             form.setFieldWidth(FIELD_WIDTH);
             this.setWidth(LABEL_WIDTH + FIELD_WIDTH + 50);
 
-            codeField =
-                    new CodeField(viewContext, viewContext.getMessage(Dict.CODE),
-                            CodeFieldKind.CODE_WITH_COLON);
-            codeField.setMaxLength(GenericConstants.COLUMN_LABEL);
+            codeField = new LabelField();
+            codeField.setLabelSeparator(":");
+            codeField.setFieldLabel(viewContext.getMessage(Dict.CODE));
             codeField.setReadOnly(true);
-            // FIXME GWT hangs if this field is disabled, but we want disabled style
-            // codeField.disable();
+
             addField(codeField);
 
             boolean mandatory = false;
             labelField = createTextField(viewContext.getMessage(Dict.LABEL), mandatory);
+            labelField.setEmptyText("enter label");
             FieldUtil.setValueWithUnescaping(labelField, refreshAction.code);
             FieldUtil.setValueWithUnescaping(codeField, labelField.getValue() == null ? ""
                     : CodeNormalizer.normalize(labelField.getValue()));
@@ -125,12 +124,14 @@ public class VocabularyTermSelectionWidget extends
 
             termSelectionWidget = createTermSelectionWidget();
             addField(termSelectionWidget);
+
+            setFocusWidget(labelField);
         }
 
         @Override
         protected void register(AsyncCallback<Void> registrationCallback)
         {
-            refreshAction.code = codeField.getValue();
+            refreshAction.code = (String) codeField.getValue();
             viewContext.getCommonService().addUnofficialVocabularyTerm(
                     TechId.create(vocabularyOrNull), refreshAction.code,
                     labelField.getValue().trim(), descriptionField.getValue(),
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java
index bc716b3523f..2fc01086075 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java
@@ -24,6 +24,7 @@ import com.extjs.gxt.ui.client.widget.ComponentHelper;
 import com.extjs.gxt.ui.client.widget.MessageBox;
 import com.extjs.gxt.ui.client.widget.WidgetComponent;
 import com.extjs.gxt.ui.client.widget.form.Field;
+import com.extjs.gxt.ui.client.widget.form.LabelField;
 import com.extjs.gxt.ui.client.widget.form.TextField;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.Image;
@@ -116,6 +117,11 @@ public class FieldUtil
         field.setValue(StringEscapeUtils.unescapeHtml(value));
     }
 
+    public static void setValueWithUnescaping(LabelField field, String value)
+    {
+        field.setValue(StringEscapeUtils.unescapeHtml(value));
+    }
+
     //
     // info icon support
     // WORKAROUND: Based on GXT functionality for displaying error icon, until there is no
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/images/trigger-plus.png b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/trigger-plus.png
index 0f25d2a1ba310c7da6d0e844c73e003e9e97eb98..334c64c9474ab06b48361293d0900ae425a4afa8 100644
GIT binary patch
delta 909
zcmV;819JT98@?Q{zzTn9Nkl<Zc-rh&O=}ZD7=CAVvzw$}2rV^I6~y8tEd|A+2a$Ry
z2>K(u_vFQ2Ab9sjR1hk7%0Vc2h*H=^@Po9K+HKlEnvZ_Cc4s_HGTBTvv$NB*NXdKJ
zotZb!Gta#9yc_iX!zV}*uO7d6@b*ojl#frJU#1jv8W8n_A3uM$N*m?HNB7lJ3Ql>g
zR9~7OQ%|Wj(ORkg^2uyc6pa)OV&-A9p_ni-IyQUzW@)4R-BV4ub8T#K;p$qcp6Dd6
zj8Xv5K&cX>m@<_DZDLqG;jq~_IXO;*@olF8=N}p<`+xP}OiF3^oxP5aj{`uXAyTm|
z3jhf1I?Pjo0bqardIkW#{yrR(5CRH&&Cg^dD1=58lt}<!{}d03m?#<3>)x~108m_6
zuGj0an_+tK6nFbb5&Q0~X#n_KDyvAw^pc~HZd=9}rcA<9%03<lF;OyvP;b%2Zbp4J
zOp9+OlAQ267|~dipqng~&T11gwXRGzGZcS2E(S#oJt%)-tt!J9Gyf7|Vq$_l92^`7
zCv0NM{7Z<18?C`FTPJ7tGRq*$zf@3|D4A5tzl4}cw+4S5<FiU;7zX#RaD+#SE6det
zmFY_;vJArgOOjID{1a&t{RYDqfl!n-1MXicD1^d@)$uP$%H|Q)CT7-ZwPv%K&*x*+
zt<`GTY!-h2_A3?Jwjrv-#9m&h>`YDr!1hsKP_#6ci`~pScLykRP@+n#AIk2YpSG>3
zTzsYM?)j|dG>Dl&5CDMdy2X`cVRd-Kb=^!R)9yqV018e;o>Fiswr#ijh;rRiNQ%N%
z@|1NC%Tv}poVG0hUyoR)W4f-}>gAz|<AdSuX|#VS7Mu!ucsMs1-a|joRmYQWX4UaH
zJw+4}1bn60epvTf4+}XGR_ZLo3_t-;05Az5mSyod-}l46#ixAVC+*K3Y#7?!$wgV3
z%k>U+zIBvQ!ppFM&yQHpE;BRo%d5AtQmK@DrAlyA15od{FsOQ25Dbb{KVo9XBt-1T
z+}D3x*EQ6Rnmdl<Rt9ml5xXD)B~CByYm!?Tst=_Dh^{hjVd|A75eooN4;OA9tBxnk
z(*D}XQTnN-NR0jQi6y4<he;!l)ILyjYr2TgAZ89q6b)vIv;P}048uqmL&*}C`B1XN
j?m3ifcrnjE{tW;ogDu&E*1#kH0000<MNS1ou0mjfp**aO

delta 825
zcmV-91IGNm9P1mfzzTmBNkl<Zc-rh(&rcIU6n-;Z`B5lz6ATIj8Y7q(Fhq$*560ld
zghc-c@0`5&7npeWkHCbWi3h^Lgv3K_nk;N$-4rmj%fcq5Ex$xM<6+CX-LCALVcUc0
zJ56Wy%lExE-@Mr^`S|Gzh{T(xuO7XBCj|NY{N?`yA?G!Q2Yi1wcJf=+{F8@x$eL!Y
z=PS?dCGe2aAz9B?UN20FvPeKAgegadRV1LVKQVcGBEMzjOf2NiNMe5W#(KUYw3BK-
z2LK6{5+g{+^=lw4jN$=Dht<>56CsXo#VWKuBv|%;%hM^GbKg`VQTJ-K>X*{p)dc{I
z`#1CMXrD9Ce;$8DRR{?d#+%%v)Z5PfIgLt~zhnag19LClI^*=xVx>|EO=fy5?uBd=
zjxod!ZVfwwuXzhoG7JlAY|F!4%nPy3Xe7b{T;`3y)#m-jue!3l$png%V5wb}O2{f+
zm?Cv#<X2nD(jH-TmnD<Qz~#ZgL1%DqaNyhF`x8BZklBCnUT2WmIlX!>6Jl|SGTs~f
z+BDWvpZ{?}uUaxyRb4lF!#kN?S}c`HPJJ0CbE$3&B)$DBuuWjvhXf1bkcu-5Wc!#(
z3scJFvZ|_>>XyspcsvdO`?d|KQPf>-+r^<_04N;S7N$oq$t-UafrA{&?%r7{g=#gs
zduNX4B!qv_TCIjOr28bLSY!Wv65mHSNVBv@n8G<X3?sd?*j!!jq+uBDI7aDe)(VBJ
zW~~^N>>6B(MWHlPfKW)L01Bl5OtP0T#sDCf%Q?TNrl!2h?tH@*#bN-krrFNV$1_8X
z-)^?|F*laAVrVkUTG1I0DHa-|0FX5=u85lrMah4f7iMhGB_>Sry-Ye>;)R(J0)$_9
z-784gjU-}Wf%5?_`{zy17_=rhM6nqpQb{;PewXRG?iy0pb=<!wwhM93OH*p((!@z<
zH8Cu{$ePrJxTo?GYC=%L0uJWp=BDWWgy!HAv!a=9GAo)%g0CiFmcXh-E=-BGTj3AT
z2hA~T!P#nuFbbUzj84gfo!%*#*e5`zWSxWAmiRLOT1EbLKJ0#q00000NkvXXu0mjf
DY0!{C

-- 
GitLab