Column reorder solved for Partners
authorVásáry Dániel <vasary@elgekko.net>
Tue, 27 Feb 2024 15:58:51 +0000 (16:58 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Tue, 27 Feb 2024 15:58:51 +0000 (16:58 +0100)
sly-crm-ui/src/main/java/hu/user/lis/ui/data/common/CachedSpringDataModel.java
sly-crm-ui/src/main/java/hu/user/lis/ui/view/renderer/ReorderedItemsRenderer.java
sly-crm-ui/src/main/resources/web/partners.zul

index dff62ba5db86d060cd618eb6d78e2c78610d002e..db8b7e4428187bcb4d2865af71f5a23c557c76d2 100644 (file)
@@ -13,6 +13,7 @@ import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Component;
 import org.zkoss.bind.BindUtils;
 import org.zkoss.zul.FieldComparator;
+import org.zkoss.zul.Listbox;
 import org.zkoss.zul.Listheader;
 import org.zkoss.zul.event.ListDataEvent;
 
@@ -35,7 +36,7 @@ public abstract class CachedSpringDataModel<T> extends CachedDataModel<T> {
 
     public void addColumns(List<ColDef> columns) {
         Profile profile = currentProfile.getSetting(getClass().getSimpleName());
-        ColDef[] savedColumns = validSavedColumns(profile, columns);
+        ColDef[] savedColumns = getValidSavedColumns(profile, columns);
         if (Objects.isNull(savedColumns)) {
             renderer.setColumnSettings(columns.toArray(new ColDef[]{}));
             saveProfileSetting();
@@ -45,7 +46,7 @@ public abstract class CachedSpringDataModel<T> extends CachedDataModel<T> {
         columns.forEach(this::setSortDirection);
     }
 
-    private ColDef[] validSavedColumns(Profile profile, List<ColDef> columns) {
+    private ColDef[] getValidSavedColumns(Profile profile, List<ColDef> columns) {
         ColDef[] savedColumns;
         if (Objects.isNull(profile)) {
             return null;
@@ -121,14 +122,14 @@ public abstract class CachedSpringDataModel<T> extends CachedDataModel<T> {
     public void onHeaderMenuClicked(ColDef node) {
         node.setVisible(!node.isVisible());
         saveProfileSetting();
-        BindUtils.postNotifyChange(this, "columnSettings");
+        BindUtils.postNotifyChange(renderer, "columnSettings");
     }
 
     public void onHeaderSizeChanged(int colIndex, String changedWidth) {
         ColDef node = renderer.getColumnSettings()[colIndex];
         node.setWidth(changedWidth);
         saveProfileSetting();
-        BindUtils.postNotifyChange(this, "columnSettings");
+        BindUtils.postNotifyChange(renderer, "columnSettings");
     }
 
     public void onHeaderReorder(Listheader dragged, Listheader dropped) {
@@ -138,7 +139,10 @@ public abstract class CachedSpringDataModel<T> extends CachedDataModel<T> {
         renderer.getColumnSettings()[dropColIndex] = renderer.getColumnSettings()[dragColIndex];
         renderer.getColumnSettings()[dragColIndex] = dropNode;
         saveProfileSetting();
-        BindUtils.postNotifyChange(this, "columnSettings");
+
+        Listbox parent = (Listbox) dragged.getParent().getParent();
+        parent.invalidate();
+        BindUtils.postNotifyChange(renderer, "columnSettings");
         fireEvent(ListDataEvent.STRUCTURE_CHANGED, -1, -1);
     }
 
index ae2473bf8bc32814d81f73962bfb5aa9ad0954be..f90cdc05624377984b6caa5473f632f4671b8e29 100644 (file)
@@ -117,10 +117,14 @@ public class ReorderedItemsRenderer extends BindListitemRenderer {
 
             List<org.zkoss.zk.ui.Component> children = new ArrayList<>(nli.getChildren());
             nli.getChildren().clear();
+//            nli.appendChild(children.get(3));
+//            nli.appendChild(children.get(2));
+//            nli.appendChild(children.get(1));
+//            nli.appendChild(children.get(0));
+
             for (int i = 0; i < columnSettings.length; i++) {
                 int mappedIndex = columnSettings[i].getIndex();
                 org.zkoss.zk.ui.Component child = children.get(mappedIndex);
-                //child.setParent(null);
                 nli.appendChild(child);
             }
 
index 4dad406137e7846c7cae9e42381dc36876d2c2a4..30ee8843aa1fad7d7f2547466c619302b5587ec9 100644 (file)
@@ -30,7 +30,7 @@
                     </menupopup>
                     <listbox vflex="true" model="@load(vm.partnersDataModel)"
                              itemRenderer="@load(vm.partnersDataModel.renderer)"
-                             autopaging="true" mold="paging" pagingPosition="top" multiple="false"
+                             autopaging="true" multiple="false"
                              onSelect="@command('onListSelection')">
                         <listhead sizable="true" menupopup="editPopup"
                                   onColSize="@command('onHeaderSizeChanged', node=node)"