diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/DetailPane.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/DetailPane.java index b2ef899400..a252d66096 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/DetailPane.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/DetailPane.java @@ -89,7 +89,7 @@ public class DetailPane extends Panel implements EventListener, IdSpace { /** * generated serial id */ - private static final long serialVersionUID = -6994505162094868814L; + private static final long serialVersionUID = -6839563468328913930L; private static final String BTN_PROCESS_ID = "BtnProcess"; @@ -535,9 +535,12 @@ public class DetailPane extends Panel implements EventListener, IdSpace { protected void onToggle(Event e) { var adTabPanel = getSelectedADTabpanel(); if(!(adTabPanel instanceof ADSortTab)) { - adTabPanel.switchRowPresentation(); - getSelectedPanel().getToolbarButton(BTN_CUSTOMIZE_ID).setDisabled(!adTabPanel.isGridView()); - + adTabPanel.switchRowPresentation(); + + ToolBarButton btnCustomize = getSelectedPanel().getToolbarButton(BTN_CUSTOMIZE_ID); + if (btnCustomize != null) + btnCustomize.setDisabled(!adTabPanel.isGridView()); + Tabpanel tabPanel = (Tabpanel) tabbox.getSelectedTabpanel(); tabPanel.setToggleToFormView(!adTabPanel.isGridView()); tabPanel.afterToggle(); @@ -1111,8 +1114,8 @@ public class DetailPane extends Panel implements EventListener, IdSpace { getRecordToolbar().dynamicDisplay(); } boolean enableCustomize = !adTabPanel.getGridTab().isSortTab() && adTabPanel.isGridView(); - List btns = getToolbar().getChildren(); - Optional optional = btns.stream().filter(e -> BTN_CUSTOMIZE_ID.equals(e.getId())).findFirst(); + + Optional optional = getToolbarButtons().stream().filter(e -> BTN_CUSTOMIZE_ID.equals(e.getId())).findFirst(); if (optional.isPresent()) optional.get().setDisabled(!enableCustomize); } @@ -1207,11 +1210,26 @@ public class DetailPane extends Panel implements EventListener, IdSpace { * @return {@link ToolBarButton} */ public ToolBarButton getToolbarButton(String id) { - List list = toolbar.getChildren(); - Optional optional = list.stream().filter(e -> e.getId().equals(id)).findFirst(); + Optional optional = getToolbarButtons().stream().filter(e -> e.getId().equals(id)).findFirst(); return optional.isPresent() ? optional.get() : null; } - + + /** + * + * @return buttons from the detail toolbar + */ + private List getToolbarButtons() { + + List list = new ArrayList<>(); + + for (Component c : toolbar.getChildren()) { + if (c instanceof ToolBarButton) + list.add((ToolBarButton) c); + } + + return list; + } + private void createOverflowButton() { overflowButton = new A(); overflowButton.setTooltiptext(Msg.getMsg(Env.getCtx(), "ShowMore"));