Entity selector bug fixed
authorVásáry Dániel <vasary@elgekko.net>
Fri, 26 Jan 2024 09:52:01 +0000 (10:52 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Fri, 26 Jan 2024 09:52:01 +0000 (10:52 +0100)
lis-ui/src/main/java/hu/user/lis/ui/editor/selector/EntitySelectorModel.java
lis-ui/src/main/resources/web/widget/entity-selector.zul

index 82533fda0a5a9d5cc3141acf05641ce61fbf4768..2c1c85e01c69ccad90f788438920c533e8f6441c 100644 (file)
@@ -12,8 +12,10 @@ import org.zkoss.bind.Converter;
 import org.zkoss.bind.annotation.Command;
 import org.zkoss.bind.annotation.ContextParam;
 import org.zkoss.bind.annotation.ContextType;
+import org.zkoss.zk.ui.event.Event;
 import org.zkoss.zk.ui.event.InputEvent;
 import org.zkoss.zk.ui.event.OpenEvent;
+import org.zkoss.zul.Bandbox;
 import org.zkoss.zul.impl.XulElement;
 
 import java.util.AbstractMap;
@@ -59,6 +61,16 @@ public abstract class EntitySelectorModel<T> {
         reset();
     }
 
+    @Command
+    public void onEntityBandPopupClick(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) {
+        Event event = ctx.getTriggerEvent();
+        try {
+            ((Bandbox) event.getTarget().getParent().getParent().getParent()).close();
+        } catch (Exception e) {
+            log.error("Internal error: {}", e.getMessage());
+        }
+    }
+
     protected abstract void search(String filter);
 
     protected abstract void reset();
index 357c1cd0b4a6c52290c23cec083d32c65353a19f..80bfecbbeaab835145320f37ea885a26907e14e9 100644 (file)
@@ -8,9 +8,8 @@
             <attribute c:name="_doKeyDown">
                 <![CDATA[
                             function (evt) {
-                                var selectorId = "${selector_id}";
                                 console.log("this", this);
-
+                                var selectorId = "${selector_id}";
                                 var bandBox = zk.$("$entityBandBox_" + selectorId);
                                 var bandPopup = zk.$("$entityBandPopup_" + selectorId);
 
             <bandpopup id="entityBandPopup_${selector_id}" width="400px">
                 <listbox id="entityList_${selector_id}" height="250px"
                          model="@bind(vmEntity.dataModel)"
-                         selectedItem="@bind(vmEntity.selectedEntity)"
-                         onClick="entityBandBox_${selector_id}.close()"
-                         onDoubleClick="entityBandBox_${selector_id}.close()">
+                         selectedItem="@bind(vmEntity.selectedEntity)">
                     <listhead visible="false">
                         <listheader label="name" vflex="max"/>
                     </listhead>
                     <template name="model">
-                        <listitem>
+                        <listitem onDoubleClick="@command('onEntityBandPopupClick')">
                             <listcell label="@load(each) @converter(vmEntity.displayConverter)"/>
                         </listitem>
                     </template>