From f16500ffe1b9db2bf814cbe87bfc2bb883259c5b Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 3 Nov 2017 08:05:55 +0800 Subject: [PATCH] IDEMPIERE-3535 Implement font icon theme. Fixed row edit icon not working in grid view. --- .../webui/adwindow/GridTabRowRenderer.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) 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 ac120bb43b..91aeaf5147 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 @@ -480,8 +480,12 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt cell.addEventListener(Events.ON_CLICK, this); cell.setStyle("border: none;"); cell.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "EditRecord"))); - if (ThemeManager.isUseFontIconForImage()) - cell.appendChild(new Label()); + if (ThemeManager.isUseFontIconForImage()) { + Label indicatorLabel = new Label(); + cell.appendChild(indicatorLabel); + final Cell finalCell = cell; + indicatorLabel.addEventListener(Events.ON_CLICK, evt->Events.postEvent(Events.ON_CLICK, finalCell, indicatorLabel.getSclass())); + } cell.setValign("middle"); row.appendChild(cell); @@ -603,10 +607,9 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt Cell cell = (Cell) currentRow.getChildren().get(1); if (cell != null) { if (ThemeManager.isUseFontIconForImage()) -// cell.setSclass("row-indicator-selected z-icon-Edit"); { - Label l = (Label) cell.getFirstChild(); - l.setSclass("row-indicator-selected z-icon-Edit"); + Label indicatorLabel = (Label) cell.getFirstChild(); + indicatorLabel.setSclass("row-indicator-selected z-icon-Edit"); } else cell.setSclass("row-indicator-selected"); @@ -904,6 +907,8 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt Cell cell = (Cell) event.getTarget(); if (cell.getSclass() != null && cell.getSclass().indexOf("row-indicator-selected") >= 0) Events.sendEvent(gridPanel, new Event(DetailPane.ON_EDIT_EVENT, gridPanel)); + else if (event.getData() != null && event.getData().toString().indexOf("row-indicator-selected") >= 0) + Events.sendEvent(gridPanel, new Event(DetailPane.ON_EDIT_EVENT, gridPanel)); else Events.sendEvent(event.getTarget().getParent(), event); } else if (event.getTarget() instanceof Checkbox) {