From 63ce461862b20ea0f0497347b680c7515043b8e4 Mon Sep 17 00:00:00 2001 From: Diego Ruiz Date: Sat, 8 Feb 2020 11:22:38 +0100 Subject: [PATCH] IDEMPIERE-4165 Display issue in grid mode after grid toggle --- .../src/org/adempiere/webui/adwindow/ADTabpanel.java | 2 +- .../webui/adwindow/AbstractADWindowContent.java | 12 ++++++++++-- .../adempiere/webui/adwindow/GridTabRowRenderer.java | 5 +++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java index a1b3ce67f1..3224c1c5cc 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADTabpanel.java @@ -1500,7 +1500,7 @@ DataStatusListener, IADTabpanel, IdSpace, IFieldEditorContainer listPanel.dynamicDisplay(col); if (GridTable.DATA_REFRESH_MESSAGE.equals(e.getAD_Message()) || "Sorted".equals(e.getAD_Message())) { - Clients.resize(listPanel.getListbox()); + listPanel.getListbox().invalidate(); } } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java index 3eb3a2106d..ea38b7dbdc 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java @@ -124,6 +124,7 @@ import org.zkoss.zul.Columns; import org.zkoss.zul.Div; import org.zkoss.zul.Menuitem; import org.zkoss.zul.Menupopup; +import org.zkoss.zul.RowRenderer; import org.zkoss.zul.Window.Mode; /** @@ -2152,11 +2153,18 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } } - if (dirtyTabpanel != null) + if (dirtyTabpanel != null) { focusToTabpanel(dirtyTabpanel); + //ensure row indicator is not lost + RowRenderer renderer = dirtyTabpanel.getGridView().getListbox().getRowRenderer(); + GridTabRowRenderer gtr = (GridTabRowRenderer)renderer; + org.zkoss.zul.Row row = gtr.getCurrentRow(); + if (row != null) + gtr.setCurrentRow(row); + } else focusToActivePanel(); - + updateToolbar(); if (postCallback != null) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java index b301e96083..c5630f345f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java @@ -587,6 +587,11 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt if (isActive != null && !isActive.booleanValue()) { LayoutUtils.addSclass("grid-inactive-row", row); } + + //IDEMPIERE-4165 After adding a new row to the list (New or copy) repaint the grid when rendering the last row + if (gridTab.isNew() && rowIndex == grid.getRows().getChildren().size()-1) { + grid.invalidate(); + } }