From 23dee999a61f0b93dffdbd0c89e25aceecb3cd84 Mon Sep 17 00:00:00 2001 From: Murilo Habermann Torquato Date: Fri, 29 Nov 2019 23:16:18 -0300 Subject: [PATCH 1/6] Refs #6142 / IDEMPIERE-3535 - missing font icons --- .../org/adempiere/webui/acct/WAcctViewer.java | 18 ++++++++++++++++++ .../webui/apps/FeedbackRequestWindow.java | 5 +++++ .../adempiere/webui/apps/ProcessDialog.java | 8 ++++++++ .../webui/apps/form/WReportCustomization.java | 10 ++++++++++ .../webui/apps/form/WSQLProcess.java | 4 +++- .../org/adempiere/webui/editor/WEditor.java | 9 +++++++-- .../webui/editor/WTableDirEditor.java | 3 +++ .../adempiere/webui/window/WEMailDialog.java | 13 +++++++++++++ .../adempiere/webui/window/WMediaDialog.java | 19 +++++++++++++++++-- .../webui/window/WPAttributeDialog.java | 8 ++++++++ .../webui/window/WRecordAccessDialog.java | 19 +++++++++++++++++++ .../default/css/fragment/font-icons.css.dsp | 4 +++- 12 files changed, 114 insertions(+), 6 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java index 6b439d45de..af598d02e2 100755 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java @@ -477,16 +477,25 @@ public class WAcctViewer extends Window implements EventListener forcePost.setVisible(false); // Elaine 2009/07/29 + if (ThemeManager.isUseFontIconForImage()) + bZoom.setIconSclass("z-icon-Zoom"); + else bZoom.setImage(ThemeManager.getThemeResource("images/Zoom16.png")); bZoom.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Zoom"))); bZoom.setVisible(tabbedPane.getSelectedIndex() == 1); bZoom.addEventListener(Events.ON_CLICK, this); // + if (ThemeManager.isUseFontIconForImage()) + bQuery.setIconSclass("z-icon-Refresh"); + else bQuery.setImage(ThemeManager.getThemeResource("images/Refresh16.png")); bQuery.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Refresh"))); bQuery.addEventListener(Events.ON_CLICK, this); + if (ThemeManager.isUseFontIconForImage()) + bExport.setIconSclass("z-icon-Export"); + else bExport.setImage(ThemeManager.getThemeResource("images/Export16.png")); bExport.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Export"))); bExport.addEventListener(Events.ON_CLICK, this); @@ -625,6 +634,9 @@ public class WAcctViewer extends Window implements EventListener m_data.fillTable(selTable); selTable.addEventListener(Events.ON_SELECT, this); + if (ThemeManager.isUseFontIconForImage()) + selRecord.setIconSclass("z-icon-Find"); + else selRecord.setImage(ThemeManager.getThemeResource("images/Find16.png")); selRecord.addEventListener(Events.ON_CLICK, this); selRecord.setLabel(""); @@ -638,6 +650,9 @@ public class WAcctViewer extends Window implements EventListener selAcct.setName("Account_ID"); selAcct.addEventListener(Events.ON_CLICK, this); selAcct.setLabel(""); + if (ThemeManager.isUseFontIconForImage()) + selAcct.setIconSclass("z-icon-Find"); + else selAcct.setImage(ThemeManager.getThemeResource("images/Find16.png")); statusLine.setValue(" " + Msg.getMsg(Env.getCtx(), "ViewerOptions")); @@ -855,6 +870,9 @@ public class WAcctViewer extends Window implements EventListener labels[selectionIndex].setVisible(true); buttons[selectionIndex].setName(columnName); // actionCommand buttons[selectionIndex].addEventListener(Events.ON_CLICK, this); + if (ThemeManager.isUseFontIconForImage()) + buttons[selectionIndex].setIconSclass("z-icon-Find"); + else buttons[selectionIndex].setImage(ThemeManager.getThemeResource("images/Find16.png")); buttons[selectionIndex].setLabel(""); buttons[selectionIndex].setVisible(true); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java index 1d914666cf..3d2ac0cda6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java @@ -222,6 +222,11 @@ public class FeedbackRequestWindow extends Window implements EventListener public static final Button createProcessButton() { Button btnProcess = new Button(); - + if(ThemeManager.isUseFontIconForImage()) + btnProcess.setIconSclass("z-icon-Process"); + else btnProcess.setImage(ThemeManager.getThemeResource("images/Process24.png")); btnProcess.setName(Msg.getMsg(Env.getCtx(), "Process")); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java index a725ebbc15..9322bb66be 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java @@ -773,9 +773,14 @@ public abstract class WEditor implements EventListener, PropertyChangeLis * @param popupMenu */ protected void addTextEditorMenu(WEditorPopupMenu popupMenu) { - Menuitem editor = new Menuitem(Msg.getMsg(Env.getCtx(), "Editor"), ThemeManager.getThemeResource("images/Editor16.png")); + Menuitem editor = new Menuitem(); editor.setAttribute("EVENT", WEditorPopupMenu.EDITOR_EVENT); - editor.addEventListener(Events.ON_CLICK, popupMenu); + editor.setLabel(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Editor")).intern()); + if (ThemeManager.isUseFontIconForImage()) + editor.setIconSclass("z-icon-Edit"); + else + editor.setImage(ThemeManager.getThemeResource("images/Editor16.png")); + editor.addEventListener(Events.ON_CLICK, this); popupMenu.appendChild(editor); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java index ca27170704..fce22856cf 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java @@ -240,6 +240,9 @@ ContextMenuListener, IZoomableEditor searchMode = new Menuitem(); searchMode.setAttribute(WEditorPopupMenu.EVENT_ATTRIBUTE, SHORT_LIST_EVENT); searchMode.setLabel(Msg.getMsg(Env.getCtx(), "ShortListSwitchSearchMode")); + if(ThemeManager.isUseFontIconForImage()) + searchMode.setIconSclass("z-icon-Lock"); + else searchMode.setImage(ThemeManager.getThemeResource("images/Lock16.png")); searchMode.addEventListener(Events.ON_CLICK, popupMenu); popupMenu.appendChild(searchMode); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java index ed22a5062a..077418266b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java @@ -309,6 +309,16 @@ public class WEMailDialog extends Window implements EventListener, ValueC row.appendChild(new Label("")); row.appendChild(isAcknowledgmentReceipt); + row = new Row(); + rows.appendChild(row); + row.appendChild(new Label("")); + row.appendChild(isAcknowledgmentReceipt); + + row = new Row(); + rows.appendChild(row); + row.appendChild(new Label("")); + row.appendChild(isAcknowledgmentReceipt); + row = new Row(); rows.appendChild(row); div = new Div(); @@ -363,6 +373,9 @@ public class WEMailDialog extends Window implements EventListener, ValueC LayoutUtils.addSclass("large-toolbarbutton", btn); bAddDefaultMailText = new Button(); + if(ThemeManager.isUseFontIconForImage()) + bAddDefaultMailText.setIconSclass("z-icon-GetMail"); + else bAddDefaultMailText.setImage(ThemeManager.getThemeResource("images/DefaultMailText.png")); bAddDefaultMailText.addEventListener(Events.ON_CLICK, this); bAddDefaultMailText.setTooltiptext(Msg.getMsg(Env.getCtx(), "AddDefaultMailTextContent")); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java index 3175c7412b..a6e709860c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java @@ -157,15 +157,24 @@ public class WMediaDialog extends Window implements EventListener bSave.setEnabled(false); - bSave.setImage(ThemeManager.getThemeResource("images/Export24.png")); + if (ThemeManager.isUseFontIconForImage()) + bSave.setIconSclass("z-icon-Export"); + else + bSave.setImage(ThemeManager.getThemeResource("images/Download24.png")); bSave.setTooltiptext(Msg.getMsg(Env.getCtx(), "AttachmentSave")); bSave.addEventListener(Events.ON_CLICK, this); - bLoad.setImage(ThemeManager.getThemeResource("images/Import24.png")); + if (ThemeManager.isUseFontIconForImage()) + bLoad.setIconSclass("z-icon-Import"); + else + bLoad.setImage(ThemeManager.getThemeResource("images/Upload24.png")); bLoad.setTooltiptext(Msg.getMsg(Env.getCtx(), "Load")); bLoad.addEventListener(Events.ON_UPLOAD, this); bLoad.setUpload(AdempiereWebUI.getUploadSetting()); + if (ThemeManager.isUseFontIconForImage()) + bDelete.setIconSclass("z-icon-Delete"); + else bDelete.setImage(ThemeManager.getThemeResource("images/Delete24.png")); bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete")); bDelete.addEventListener(Events.ON_CLICK, this); @@ -187,9 +196,15 @@ public class WMediaDialog extends Window implements EventListener southPane.appendChild(confirmPanel); ZKUpdateUtil.setHeight(southPane, "30px"); + if(ThemeManager.isUseFontIconForImage()) + bOk.setIconSclass("z-icon-Ok"); + else bOk.setImage(ThemeManager.getThemeResource("images/Ok24.png")); bOk.addEventListener(Events.ON_CLICK, this); + if(ThemeManager.isUseFontIconForImage()) + bCancel.setIconSclass("z-icon-Cancel"); + else bCancel.setImage(ThemeManager.getThemeResource("images/Cancel24.png")); bCancel.addEventListener(Events.ON_CLICK, this); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java index 8f548fca70..94ef9d767c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java @@ -351,6 +351,9 @@ public class WPAttributeDialog extends Window implements EventListener cbNewEdit.addEventListener(Events.ON_CHECK, this); row.appendChild(cbNewEdit); bSelect.setLabel(Msg.getMsg(Env.getCtx(), "SelectExisting")); + if (ThemeManager.isUseFontIconForImage()) + bSelect.setIconSclass("z-icon-PAttribute"); + else bSelect.setImage(ThemeManager.getThemeResource("images/PAttribute16.png")); bSelect.addEventListener(Events.ON_CLICK, this); row.appendChild(bSelect); @@ -430,6 +433,11 @@ public class WPAttributeDialog extends Window implements EventListener // Popup // fieldLot.addMouseListener(new VPAttributeDialog_mouseAdapter(this)); // popup mZoom = new Menuitem(Msg.getMsg(Env.getCtx(), "Zoom"), ThemeManager.getThemeResource("images/Zoom16.png")); + if(ThemeManager.isUseFontIconForImage()) { + mZoom.setIconSclass("z-icon-Zoom"); + mZoom.setImage(""); + } + mZoom.addEventListener(Events.ON_CLICK, this); popupMenu.appendChild(mZoom); this.appendChild(popupMenu); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java index 47f6dc9a69..39c544759b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java @@ -36,6 +36,7 @@ import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Msg; +import org.zkoss.zk.ui.HtmlBasedComponent; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; @@ -152,12 +153,28 @@ public class WRecordAccessDialog extends Window implements EventListener */ private void jbInit() throws Exception { + //devCoffee #6142 + if(ThemeManager.isUseFontIconForImage()) + bDelete.setIconSclass("z-icon-Delete"); + else bDelete.setImage(ThemeManager.getThemeResource("images/Delete16.png")); bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete")); + //devCoffee #6142 + if(ThemeManager.isUseFontIconForImage()) + bNew.setIconSclass("z-icon-New"); + else bNew.setImage(ThemeManager.getThemeResource("images/New16.png")); bNew.setTooltiptext(Msg.getMsg(Env.getCtx(), "New")); + //devCoffee #6142 + if(ThemeManager.isUseFontIconForImage()) + bUp.setIconSclass("z-icon-Previous"); + else bUp.setImage(ThemeManager.getThemeResource("images/Previous16.png")); bUp.setTooltiptext(Msg.getMsg(Env.getCtx(), "Previous")); + //devCoffee #6142 + if(ThemeManager.isUseFontIconForImage()) + bDown.setIconSclass("z-icon-Next"); + else bDown.setImage(ThemeManager.getThemeResource("images/Next16.png")); bDown.setTooltiptext(Msg.getMsg(Env.getCtx(), "Next")); @@ -186,6 +203,8 @@ public class WRecordAccessDialog extends Window implements EventListener rows.appendChild(row); row.appendChild(roleLabel); row.appendChild(roleField); + //devCoffee #6142 + ZKUpdateUtil.setHflex((HtmlBasedComponent) row.getLastChild(), "1"); row.appendChild(cbActive); row.appendChild(cbExclude); row.appendChild(cbReadOnly); diff --git a/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp b/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp index b16964fceb..ee6f3d7165 100644 --- a/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp +++ b/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp @@ -280,4 +280,6 @@ .z-icon-CSVImport:before { content: "\f0f6"; } - +.z-icon-GetMail:before { + content: "\f0e0"; +} From 3921f67a2d6bef0d2887bdfa97a7277a8d359463 Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Wed, 4 Dec 2019 15:28:44 +0100 Subject: [PATCH 2/6] IDEMPIERE-4124 WSearchEditor - missing public methods --- .../org/adempiere/webui/editor/WSearchEditor.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java index 33dcc62e3a..9dea1829aa 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java @@ -286,7 +286,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value } } - private void actionRefresh(Object value) + protected void actionRefresh(Object value) { // boolean mandatory = isMandatory(); // AEnv.actionRefresh(lookup, value, mandatory); @@ -345,7 +345,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value // } - private void actionText(String text) + protected void actionText(String text) { // Nothing entered if (text == null || text.length() == 0 || text.equals("%")) @@ -411,7 +411,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value } // actionText - private void resetButtonState() { + protected void resetButtonState() { getComponent().getButton().setEnabled(true); if (ThemeManager.isUseFontIconForImage()) getComponent().getButton().setIconSclass(imageUrl); @@ -421,7 +421,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value } - private void actionCombo (Object value) + protected void actionCombo (Object value) { if (log.isLoggable(Level.FINE)) log.fine("Value=" + value); @@ -465,7 +465,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value * Action - Special Quick Entry Screen * @param newRecord true if new record should be created */ - private void actionQuickEntry (boolean newRecord) + protected void actionQuickEntry (boolean newRecord) { if(!getComponent().isEnabled()) return; @@ -538,7 +538,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value } } // actionQuickEntry - private void actionButton(String queryValue) + protected void actionButton(String queryValue) { if (lookup == null) return; // leave button disabled From 7487a885bb2d4d0691c5db484a3b07dd9ed1b8e1 Mon Sep 17 00:00:00 2001 From: Nicolas Micoud Date: Wed, 4 Dec 2019 17:11:01 +0100 Subject: [PATCH 3/6] IDEMPIERE-4121 FactReconciliation : Remove annoying Msg.getMsg: NOT found: @Created@/@Deleted@ --- .../src/org/compiere/process/FactReconciliation.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/process/FactReconciliation.java b/org.adempiere.base/src/org/compiere/process/FactReconciliation.java index 9e28d559c6..db8684bf98 100644 --- a/org.adempiere.base/src/org/compiere/process/FactReconciliation.java +++ b/org.adempiere.base/src/org/compiere/process/FactReconciliation.java @@ -72,7 +72,7 @@ public class FactReconciliation extends SvrProcess pstmt.setTimestamp(3, p_DateAcct_From); pstmt.setTimestamp(4, p_DateAcct_To); int count = pstmt.executeUpdate(); - String result = Msg.getMsg(getCtx(),"@Created@") + ": " + count + ", "; + String result = Msg.getMsg(getCtx(),"Created") + ": " + count + ", "; if (log.isLoggable(Level.FINE))log.log(Level.FINE, result); @@ -88,7 +88,7 @@ public class FactReconciliation extends SvrProcess pstmt = DB.prepareStatement(sql, get_TrxName()); pstmt.setInt(1, getAD_PInstance_ID()); count = pstmt.executeUpdate(); - result = Msg.getMsg(getCtx(), "@Deleted@") + ": " + count; + result = Msg.getMsg(getCtx(), "Deleted") + ": " + count; if (log.isLoggable(Level.FINE))log.log(Level.FINE, result); From 570875e74b339e35c3eab12d64ba14c78ffa1e1c Mon Sep 17 00:00:00 2001 From: Diego Ruiz Date: Wed, 27 Nov 2019 19:25:12 +0100 Subject: [PATCH 4/6] IDEMPIERE-4087 Virtual search columns --- .../src/org/compiere/model/GridField.java | 33 +++++++++++++++++-- .../src/org/compiere/model/GridFieldVO.java | 2 +- .../compiere/model/LookupDisplayColumn.java | 2 +- .../src/org/compiere/model/MColumn.java | 22 +++++++++++-- .../src/org/compiere/model/MField.java | 7 ++++ .../org/compiere/model/MLookupFactory.java | 4 +-- .../src/org/compiere/model/MQuery.java | 2 +- .../src/org/compiere/model/POInfo.java | 20 +++++++++-- .../src/org/compiere/print/DataEngine.java | 2 +- .../src/org/compiere/print/MPrintFormat.java | 4 +-- .../adempiere/webui/window/FindWindow.java | 14 ++++---- 11 files changed, 90 insertions(+), 22 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/GridField.java b/org.adempiere.base/src/org/compiere/model/GridField.java index 16feabb144..20c50863c0 100644 --- a/org.adempiere.base/src/org/compiere/model/GridField.java +++ b/org.adempiere.base/src/org/compiere/model/GridField.java @@ -83,7 +83,7 @@ public class GridField /** * */ - private static final long serialVersionUID = -5923967271000455417L; + private static final long serialVersionUID = 496387784464611123L; /** * Field Constructor. @@ -1323,7 +1323,7 @@ public class GridField if (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0) { String query; - if (m_vo.ColumnSQL.startsWith("@SQL=")) + if (m_vo.ColumnSQL.startsWith("@SQL=") || m_vo.ColumnSQL.startsWith("@SQLFIND=")) query = "NULL"; else query = m_vo.ColumnSQL; @@ -1334,6 +1334,26 @@ public class GridField } return m_vo.ColumnName; } // getColumnSQL + + /** + * Get Column Name or SQL for search queries + * @return column name + */ + public String getSearchColumnSQL() + { + if (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0) + { + String query; + if (m_vo.ColumnSQL.startsWith("@SQL=")) + query = "NULL"; + else if (m_vo.ColumnSQL.startsWith("@SQLFIND=")) + query = m_vo.ColumnSQL.substring(9); + else + query = m_vo.ColumnSQL; + return query; + } + return m_vo.ColumnName; + } // getSearchColumnSQL /** * Is Virtual Column @@ -1362,6 +1382,15 @@ public class GridField return (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0 && m_vo.ColumnSQL.startsWith("@SQL=")); } // isVirtualUIColumn + /** + * Is Virtual search Column + * @return column is virtual search + */ + public boolean isVirtualSearchColumn() + { + return (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0 && m_vo.ColumnSQL.startsWith("@SQLFIND=")); + } // isVirtualDBColumn + /** * Get Header * @return header diff --git a/org.adempiere.base/src/org/compiere/model/GridFieldVO.java b/org.adempiere.base/src/org/compiere/model/GridFieldVO.java index fc05f6a27c..a6e56c6dbc 100644 --- a/org.adempiere.base/src/org/compiere/model/GridFieldVO.java +++ b/org.adempiere.base/src/org/compiere/model/GridFieldVO.java @@ -202,7 +202,7 @@ public class GridFieldVO implements Serializable vo.ValidationCode = rs.getString(i); else if (columnName.equalsIgnoreCase("ColumnSQL")) { vo.ColumnSQL = rs.getString(i); - if (vo.ColumnSQL != null && !vo.ColumnSQL.startsWith("@SQL=") && vo.ColumnSQL.contains("@")) { + if (vo.ColumnSQL != null && !vo.ColumnSQL.startsWith("@SQL=") && !vo.ColumnSQL.startsWith("@SQLFIND=") && vo.ColumnSQL.contains("@")) { // NOTE: cannot use window context because this is set globally on the query, not per record vo.ColumnSQL = Env.parseContext(ctx, -1, vo.ColumnSQL, false, true); } diff --git a/org.adempiere.base/src/org/compiere/model/LookupDisplayColumn.java b/org.adempiere.base/src/org/compiere/model/LookupDisplayColumn.java index 774115b854..b328a1eab8 100644 --- a/org.adempiere.base/src/org/compiere/model/LookupDisplayColumn.java +++ b/org.adempiere.base/src/org/compiere/model/LookupDisplayColumn.java @@ -67,7 +67,7 @@ public class LookupDisplayColumn implements Serializable IsTranslated = isTranslated; DisplayType = ad_Reference_ID; AD_Reference_ID = ad_Reference_Value_ID; - if (columnSQL != null && columnSQL.length() > 0 && columnSQL.startsWith("@SQL=")) + if (columnSQL != null && columnSQL.length() > 0 && (columnSQL.startsWith("@SQL=") || columnSQL.startsWith("@SQLFIND="))) ColumnSQL = "NULL"; else ColumnSQL = columnSQL; diff --git a/org.adempiere.base/src/org/compiere/model/MColumn.java b/org.adempiere.base/src/org/compiere/model/MColumn.java index a8997afa2b..8f7d2fae6e 100644 --- a/org.adempiere.base/src/org/compiere/model/MColumn.java +++ b/org.adempiere.base/src/org/compiere/model/MColumn.java @@ -52,7 +52,7 @@ public class MColumn extends X_AD_Column /** * */ - private static final long serialVersionUID = 7215660422231054443L; + private static final long serialVersionUID = -6905852892037761285L; public static MColumn get (Properties ctx, int AD_Column_ID) { @@ -228,6 +228,16 @@ public class MColumn extends X_AD_Column String s = getColumnSQL(); return s != null && s.length() > 0 && s.startsWith("@SQL="); } // isVirtualUIColumn + + /** + * Is Virtual Search Column + * @return true if virtual search column + */ + public boolean isVirtualSearchColumn() + { + String s = getColumnSQL(); + return s != null && s.length() > 0 && s.startsWith("@SQLFIND="); + } // isVirtualSearchColumn /** * Is the Column Encrypted? @@ -362,7 +372,7 @@ public class MColumn extends X_AD_Column setIsMandatory(false); if (isUpdateable()) setIsUpdateable(false); - if (isVirtualUIColumn() && isIdentifier()) + if ((isVirtualUIColumn() || isVirtualSearchColumn()) && isIdentifier()) setIsIdentifier(false); } // Updateable @@ -1240,10 +1250,18 @@ public class MColumn extends X_AD_Column } public String getColumnSQL(boolean nullForUI) { + return getColumnSQL(nullForUI, true); + } + + public String getColumnSQL(boolean nullForUI, boolean nullForSearch) { String query = getColumnSQL(); if (query != null && query.length() > 0) { if (query.startsWith("@SQL=") && nullForUI) query = "NULL"; + else if (query.startsWith("@SQLFIND=") && nullForSearch) + query = "NULL"; + else if (query.startsWith("@SQLFIND=") && !nullForSearch) + query = query.substring(9); } return query; } diff --git a/org.adempiere.base/src/org/compiere/model/MField.java b/org.adempiere.base/src/org/compiere/model/MField.java index cea2cdf80c..305475b916 100644 --- a/org.adempiere.base/src/org/compiere/model/MField.java +++ b/org.adempiere.base/src/org/compiere/model/MField.java @@ -149,6 +149,13 @@ public class MField extends X_AD_Field setAD_Val_Rule_ID(0); setIsToolbarButton(null); } + if (isDisplayed()) { + MColumn column = (MColumn) getAD_Column(); + if (column.isVirtualSearchColumn()) { + setIsDisplayed(false); + setIsDisplayedGrid(false); + } + } return true; } // beforeSave diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index e8d00c8547..fc62fa2ca3 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -435,7 +435,7 @@ public class MLookupFactory ZoomWindowPO = rs.getInt(9); //AD_Table_ID = rs.getInt(10); displayColumnSQL = rs.getString(11); - if (displayColumnSQL != null && displayColumnSQL.length() > 0 && displayColumnSQL.startsWith("@SQL=")) + if (displayColumnSQL != null && displayColumnSQL.length() > 0 && (displayColumnSQL.startsWith("@SQL=") || displayColumnSQL.startsWith("@SQLFIND="))) displayColumnSQL = "NULL"; if (displayColumnSQL != null && displayColumnSQL.contains("@") && displayColumnSQL.startsWith("@SQL=")) displayColumnSQL = Env.parseContext(Env.getCtx(), -1, displayColumnSQL, false, true); @@ -668,7 +668,7 @@ public class MLookupFactory embedSQL.append(TableNameAlias).append(".Value||'-'||"); MColumn columnDisplay = new MColumn(Env.getCtx(), columnDisplay_ID, null); - if (columnDisplay.isVirtualUIColumn()) + if (columnDisplay.isVirtualUIColumn() || columnDisplay.isVirtualSearchColumn()) { s_log.warning("Virtual UI Column must not be used as display"); return null; diff --git a/org.adempiere.base/src/org/compiere/model/MQuery.java b/org.adempiere.base/src/org/compiere/model/MQuery.java index a9a15c5370..4bb6479fd6 100644 --- a/org.adempiere.base/src/org/compiere/model/MQuery.java +++ b/org.adempiere.base/src/org/compiere/model/MQuery.java @@ -1183,7 +1183,7 @@ class Restriction implements Serializable MTable table = MTable.get(Env.getCtx(), tableName); if (table != null) { for (MColumn col : table.getColumns(false)) { - String colSQL = col.getColumnSQL(true); + String colSQL = col.getColumnSQL(true, false); if (colSQL != null && colSQL.contains("@")) colSQL = Env.parseContext(Env.getCtx(), -1, colSQL, false, true); if (colSQL != null && ColumnName.equals(colSQL.trim())) { diff --git a/org.adempiere.base/src/org/compiere/model/POInfo.java b/org.adempiere.base/src/org/compiere/model/POInfo.java index 3f0dfa26c8..871981c7db 100644 --- a/org.adempiere.base/src/org/compiere/model/POInfo.java +++ b/org.adempiere.base/src/org/compiere/model/POInfo.java @@ -48,7 +48,7 @@ public class POInfo implements Serializable /** * */ - private static final long serialVersionUID = 3496403499343293597L; + private static final long serialVersionUID = -6346988499971159874L; /** Used by Remote FinReport */ /** @@ -199,7 +199,7 @@ public class POInfo implements Serializable // m_AccessLevel = rs.getString(18); String ColumnSQL = rs.getString(19); - if (ColumnSQL != null && ColumnSQL.length() > 0 && ColumnSQL.startsWith("@SQL=")) + if (ColumnSQL != null && ColumnSQL.length() > 0 && (ColumnSQL.startsWith("@SQL=") || ColumnSQL.startsWith("@SQLFIND="))) ColumnSQL = "NULL"; if (ColumnSQL != null && ColumnSQL.contains("@")) ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true); @@ -378,7 +378,7 @@ public class POInfo implements Serializable if (index < 0 || index >= m_columns.length) return null; if (m_columns[index].ColumnSQL != null && m_columns[index].ColumnSQL.length() > 0) { - if (m_columns[index].ColumnSQL.startsWith("@SQL=")) + if (m_columns[index].ColumnSQL.startsWith("@SQL=") || m_columns[index].ColumnSQL.startsWith("@SQLFIND=")) return "NULL AS " + m_columns[index].ColumnName; return m_columns[index].ColumnSQL + " AS " + m_columns[index].ColumnName; } @@ -425,6 +425,20 @@ public class POInfo implements Serializable && m_columns[index].ColumnSQL.length() > 0 && m_columns[index].ColumnSQL.startsWith("@SQL="); } // isVirtualUIColumn + + /** + * Is Column Virtual Search? + * @param index index + * @return true if column is virtual search + */ + public boolean isVirtualSearchColumn (int index) + { + if (index < 0 || index >= m_columns.length) + return true; + return m_columns[index].ColumnSQL != null + && m_columns[index].ColumnSQL.length() > 0 + && m_columns[index].ColumnSQL.startsWith("@SQLFIND="); + } // isVirtualSearchColumn /** * Get Column Label diff --git a/org.adempiere.base/src/org/compiere/print/DataEngine.java b/org.adempiere.base/src/org/compiere/print/DataEngine.java index 0e19747aa2..0b5058e15a 100644 --- a/org.adempiere.base/src/org/compiere/print/DataEngine.java +++ b/org.adempiere.base/src/org/compiere/print/DataEngine.java @@ -310,7 +310,7 @@ public class DataEngine int AD_Column_ID = rs.getInt(1); String ColumnName = rs.getString(2); String ColumnSQL = rs.getString(24); - if (ColumnSQL != null && ColumnSQL.length() > 0 && ColumnSQL.startsWith("@SQL=")) + if (ColumnSQL != null && ColumnSQL.length() > 0 && (ColumnSQL.startsWith("@SQL=") || ColumnSQL.startsWith("@SQLFIND="))) ColumnSQL = "NULL"; if (ColumnSQL != null && ColumnSQL.contains("@")) ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true); diff --git a/org.adempiere.base/src/org/compiere/print/MPrintFormat.java b/org.adempiere.base/src/org/compiere/print/MPrintFormat.java index 5c3be7d46c..61ccf8b147 100644 --- a/org.adempiere.base/src/org/compiere/print/MPrintFormat.java +++ b/org.adempiere.base/src/org/compiere/print/MPrintFormat.java @@ -615,7 +615,7 @@ public class MPrintFormat extends X_AD_PrintFormat int seqNo = 1; for (GridField gridField : gridFields) { - if (gridField.isVirtualUIColumn()) + if (gridField.isVirtualUIColumn() || gridField.isVirtualSearchColumn()) continue; MPrintFormatItem pfi = MPrintFormatItem.createFromGridField(pf, gridField, seqNo++); if (pfi != null) @@ -878,7 +878,7 @@ public class MPrintFormat extends X_AD_PrintFormat { int columnID = rs.getInt(1); MColumn column = MColumn.get(ctx, columnID); - if (column.isVirtualUIColumn()) + if (column.isVirtualUIColumn() || column.isVirtualSearchColumn()) continue; MPrintFormatItem pfi = MPrintFormatItem.createFromColumn (format, columnID, seqNo++); if (pfi != null) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java index 195f38653e..446505fdd2 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java @@ -768,7 +768,7 @@ public class FindWindow extends Window implements EventListener, ValueCha if (mField.isSelectionColumn()) { gridFieldList.add(mField); // isSelectionColumn } else { - if (isDisplayed && mField.getDisplayType() != DisplayType.Button && !mField.getColumnName().equals("AD_Client_ID")) + if ((isDisplayed || mField.isVirtualSearchColumn()) && mField.getDisplayType() != DisplayType.Button && !mField.getColumnName().equals("AD_Client_ID")) moreFieldList.add(mField); } } // for all target tab fields @@ -1633,7 +1633,7 @@ public class FindWindow extends Window implements EventListener, ValueCha if (field == null || field.isVirtualUIColumn()) continue; boolean isProductCategoryField = isProductCategoryField(field.getColumnName()); - String ColumnSQL = field.getColumnSQL(false); + String ColumnSQL = field.getSearchColumnSQL(); // Left brackets Listbox listLeftBracket = (Listbox)row.getFellow("listLeftBracket"+row.getId()); String lBrackets = listLeftBracket.getSelectedItem().getValue().toString(); @@ -1866,7 +1866,7 @@ public class FindWindow extends Window implements EventListener, ValueCha GridField field = getTargetMField(ColumnName); if (field.isVirtualUIColumn()) continue; - StringBuilder ColumnSQL = new StringBuilder(field.getColumnSQL(false)); + StringBuilder ColumnSQL = new StringBuilder(field.getSearchColumnSQL()); m_query.addRangeRestriction(ColumnSQL.toString(), value, valueTo, ColumnName, wed.getDisplay(), wedTo.getDisplay(), true, 0); appendCode(code, ColumnName, MQuery.BETWEEN, value.toString(), valueTo.toString(), "AND", "", ""); @@ -1881,7 +1881,7 @@ public class FindWindow extends Window implements EventListener, ValueCha GridField field = getTargetMField(ColumnName); boolean isProductCategoryField = isProductCategoryField(field.getColumnName()); - StringBuilder ColumnSQL = new StringBuilder(field.getColumnSQL(false)); + StringBuilder ColumnSQL = new StringBuilder(field.getSearchColumnSQL()); // add encryption here if the field is encrypted. if (field.isEncrypted()) { @@ -1947,7 +1947,7 @@ public class FindWindow extends Window implements EventListener, ValueCha } GridField field = getTargetMField(ColumnName); - StringBuilder ColumnSQL = new StringBuilder(field.getColumnSQL(false)); + StringBuilder ColumnSQL = new StringBuilder(field.getSearchColumnSQL()); // m_query.addRestriction(ColumnSQL.toString(), MQuery.LESS_EQUAL, valueTo, ColumnName, wed.getDisplay()); appendCode(code, ColumnName, MQuery.LESS_EQUAL, valueTo.toString(), "", "AND", "", ""); @@ -2379,7 +2379,7 @@ public class FindWindow extends Window implements EventListener, ValueCha private String getSubCategoryWhereClause(GridField field, int productCategoryId) { //if a node with this id is found later in the search we have a loop in the tree int subTreeRootParentId = 0; - StringBuilder retString = new StringBuilder(field.getColumnSQL(false)).append(" IN ("); + StringBuilder retString = new StringBuilder(field.getSearchColumnSQL()).append(" IN ("); String sql = "SELECT M_Product_Category_ID, M_Product_Category_Parent_ID FROM M_Product_Category WHERE AD_Client_ID=? AND IsActive='Y'"; final Vector categories = new Vector(100); PreparedStatement pstmt = null; @@ -2709,4 +2709,4 @@ public class FindWindow extends Window implements EventListener, ValueCha } // setDtatusDB /** END DEVCOFFEE **/ -} // FindPanel \ No newline at end of file +} // FindPanel From 8c3af7914e3e9edcb6661a2c2f3642121974253f Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 4 Dec 2019 20:54:13 +0100 Subject: [PATCH 5/6] IDEMPIERE-4087 Virtual search columns / enable the usage of @SQLFIND= columns in reports / update field Description --- .../i7.1/oracle/201912042002_IDEMPIERE-4087.sql | 15 +++++++++++++++ .../postgresql/201912042002_IDEMPIERE-4087.sql | 12 ++++++++++++ .../src/org/compiere/print/DataEngine.java | 4 +++- .../src/org/compiere/print/MPrintFormat.java | 4 ++-- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 migration/i7.1/oracle/201912042002_IDEMPIERE-4087.sql create mode 100644 migration/i7.1/postgresql/201912042002_IDEMPIERE-4087.sql diff --git a/migration/i7.1/oracle/201912042002_IDEMPIERE-4087.sql b/migration/i7.1/oracle/201912042002_IDEMPIERE-4087.sql new file mode 100644 index 0000000000..4109de3f12 --- /dev/null +++ b/migration/i7.1/oracle/201912042002_IDEMPIERE-4087.sql @@ -0,0 +1,15 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- IDEMPIERE-4087 Copy the link to this issue virtual search columns +-- Dec 4, 2019, 8:01:25 PM CET +UPDATE AD_Field SET Help='You can define virtual columns (not stored in the database). If defined, the Column name is the synonym of the SQL expression defined here. The SQL expression must be valid.
+Example: "Updated-Created" would list the age of the entry in days.
+It is not recommended to add complex queries in virtual columns as the impact on the database performance can be too expensive.
+However, you can use the prefix @SQLFIND= for virtual columns that can be used for queries and reports, they have less impact on the database, but as a field they don''t show values.
+Additionally, the prefix @SQL= allows to define a virtual UI column, this is calculated on the fly and can use context variables in the query, virtual UI columns are shown in grid just on the current row, they are not searchable, and not shown in reports.', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-12-04 20:46:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11264 +; + +SELECT register_migration_script('201912042002_IDEMPIERE-4087.sql') FROM dual +; + diff --git a/migration/i7.1/postgresql/201912042002_IDEMPIERE-4087.sql b/migration/i7.1/postgresql/201912042002_IDEMPIERE-4087.sql new file mode 100644 index 0000000000..ebd6aeeb10 --- /dev/null +++ b/migration/i7.1/postgresql/201912042002_IDEMPIERE-4087.sql @@ -0,0 +1,12 @@ +-- IDEMPIERE-4087 Copy the link to this issue virtual search columns +-- Dec 4, 2019, 8:01:25 PM CET +UPDATE AD_Field SET Help='You can define virtual columns (not stored in the database). If defined, the Column name is the synonym of the SQL expression defined here. The SQL expression must be valid.
+Example: "Updated-Created" would list the age of the entry in days.
+It is not recommended to add complex queries in virtual columns as the impact on the database performance can be too expensive.
+However, you can use the prefix @SQLFIND= for virtual columns that can be used for queries and reports, they have less impact on the database, but as a field they don''t show values.
+Additionally, the prefix @SQL= allows to define a virtual UI column, this is calculated on the fly and can use context variables in the query, virtual UI columns are shown in grid just on the current row, they are not searchable, and not shown in reports.', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-12-04 20:46:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11264 +; + +SELECT register_migration_script('201912042002_IDEMPIERE-4087.sql') FROM dual +; + diff --git a/org.adempiere.base/src/org/compiere/print/DataEngine.java b/org.adempiere.base/src/org/compiere/print/DataEngine.java index 0b5058e15a..83a89d3021 100644 --- a/org.adempiere.base/src/org/compiere/print/DataEngine.java +++ b/org.adempiere.base/src/org/compiere/print/DataEngine.java @@ -310,7 +310,9 @@ public class DataEngine int AD_Column_ID = rs.getInt(1); String ColumnName = rs.getString(2); String ColumnSQL = rs.getString(24); - if (ColumnSQL != null && ColumnSQL.length() > 0 && (ColumnSQL.startsWith("@SQL=") || ColumnSQL.startsWith("@SQLFIND="))) + if (ColumnSQL != null && ColumnSQL.length() > 0 && ColumnSQL.startsWith("@SQLFIND=")) + ColumnSQL = ColumnSQL.substring(9); + if (ColumnSQL != null && ColumnSQL.length() > 0 && ColumnSQL.startsWith("@SQL=")) ColumnSQL = "NULL"; if (ColumnSQL != null && ColumnSQL.contains("@")) ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true); diff --git a/org.adempiere.base/src/org/compiere/print/MPrintFormat.java b/org.adempiere.base/src/org/compiere/print/MPrintFormat.java index 61ccf8b147..5c3be7d46c 100644 --- a/org.adempiere.base/src/org/compiere/print/MPrintFormat.java +++ b/org.adempiere.base/src/org/compiere/print/MPrintFormat.java @@ -615,7 +615,7 @@ public class MPrintFormat extends X_AD_PrintFormat int seqNo = 1; for (GridField gridField : gridFields) { - if (gridField.isVirtualUIColumn() || gridField.isVirtualSearchColumn()) + if (gridField.isVirtualUIColumn()) continue; MPrintFormatItem pfi = MPrintFormatItem.createFromGridField(pf, gridField, seqNo++); if (pfi != null) @@ -878,7 +878,7 @@ public class MPrintFormat extends X_AD_PrintFormat { int columnID = rs.getInt(1); MColumn column = MColumn.get(ctx, columnID); - if (column.isVirtualUIColumn() || column.isVirtualSearchColumn()) + if (column.isVirtualUIColumn()) continue; MPrintFormatItem pfi = MPrintFormatItem.createFromColumn (format, columnID, seqNo++); if (pfi != null) From 38c38b2ed103bc3a868eda6bb8c38dad1cdf7a18 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 4 Dec 2019 23:05:13 +0100 Subject: [PATCH 6/6] Backed out changeset d79c1817ead1 / Refs #6142 / IDEMPIERE-3535 - missing font icons / backout - broken Context menu for editor in String fields --- .../org/adempiere/webui/acct/WAcctViewer.java | 18 ------------------ .../webui/apps/FeedbackRequestWindow.java | 5 ----- .../adempiere/webui/apps/ProcessDialog.java | 8 -------- .../webui/apps/form/WReportCustomization.java | 10 ---------- .../webui/apps/form/WSQLProcess.java | 4 +--- .../org/adempiere/webui/editor/WEditor.java | 9 ++------- .../webui/editor/WTableDirEditor.java | 3 --- .../adempiere/webui/window/WEMailDialog.java | 13 ------------- .../adempiere/webui/window/WMediaDialog.java | 19 ++----------------- .../webui/window/WPAttributeDialog.java | 8 -------- .../webui/window/WRecordAccessDialog.java | 19 ------------------- .../default/css/fragment/font-icons.css.dsp | 4 +--- 12 files changed, 6 insertions(+), 114 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java index af598d02e2..6b439d45de 100755 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/acct/WAcctViewer.java @@ -477,25 +477,16 @@ public class WAcctViewer extends Window implements EventListener forcePost.setVisible(false); // Elaine 2009/07/29 - if (ThemeManager.isUseFontIconForImage()) - bZoom.setIconSclass("z-icon-Zoom"); - else bZoom.setImage(ThemeManager.getThemeResource("images/Zoom16.png")); bZoom.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Zoom"))); bZoom.setVisible(tabbedPane.getSelectedIndex() == 1); bZoom.addEventListener(Events.ON_CLICK, this); // - if (ThemeManager.isUseFontIconForImage()) - bQuery.setIconSclass("z-icon-Refresh"); - else bQuery.setImage(ThemeManager.getThemeResource("images/Refresh16.png")); bQuery.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Refresh"))); bQuery.addEventListener(Events.ON_CLICK, this); - if (ThemeManager.isUseFontIconForImage()) - bExport.setIconSclass("z-icon-Export"); - else bExport.setImage(ThemeManager.getThemeResource("images/Export16.png")); bExport.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Export"))); bExport.addEventListener(Events.ON_CLICK, this); @@ -634,9 +625,6 @@ public class WAcctViewer extends Window implements EventListener m_data.fillTable(selTable); selTable.addEventListener(Events.ON_SELECT, this); - if (ThemeManager.isUseFontIconForImage()) - selRecord.setIconSclass("z-icon-Find"); - else selRecord.setImage(ThemeManager.getThemeResource("images/Find16.png")); selRecord.addEventListener(Events.ON_CLICK, this); selRecord.setLabel(""); @@ -650,9 +638,6 @@ public class WAcctViewer extends Window implements EventListener selAcct.setName("Account_ID"); selAcct.addEventListener(Events.ON_CLICK, this); selAcct.setLabel(""); - if (ThemeManager.isUseFontIconForImage()) - selAcct.setIconSclass("z-icon-Find"); - else selAcct.setImage(ThemeManager.getThemeResource("images/Find16.png")); statusLine.setValue(" " + Msg.getMsg(Env.getCtx(), "ViewerOptions")); @@ -870,9 +855,6 @@ public class WAcctViewer extends Window implements EventListener labels[selectionIndex].setVisible(true); buttons[selectionIndex].setName(columnName); // actionCommand buttons[selectionIndex].addEventListener(Events.ON_CLICK, this); - if (ThemeManager.isUseFontIconForImage()) - buttons[selectionIndex].setIconSclass("z-icon-Find"); - else buttons[selectionIndex].setImage(ThemeManager.getThemeResource("images/Find16.png")); buttons[selectionIndex].setLabel(""); buttons[selectionIndex].setVisible(true); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java index 3d2ac0cda6..1d914666cf 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/FeedbackRequestWindow.java @@ -222,11 +222,6 @@ public class FeedbackRequestWindow extends Window implements EventListener public static final Button createProcessButton() { Button btnProcess = new Button(); - if(ThemeManager.isUseFontIconForImage()) - btnProcess.setIconSclass("z-icon-Process"); - else + btnProcess.setImage(ThemeManager.getThemeResource("images/Process24.png")); btnProcess.setName(Msg.getMsg(Env.getCtx(), "Process")); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java index 9322bb66be..a725ebbc15 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WEditor.java @@ -773,14 +773,9 @@ public abstract class WEditor implements EventListener, PropertyChangeLis * @param popupMenu */ protected void addTextEditorMenu(WEditorPopupMenu popupMenu) { - Menuitem editor = new Menuitem(); + Menuitem editor = new Menuitem(Msg.getMsg(Env.getCtx(), "Editor"), ThemeManager.getThemeResource("images/Editor16.png")); editor.setAttribute("EVENT", WEditorPopupMenu.EDITOR_EVENT); - editor.setLabel(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Editor")).intern()); - if (ThemeManager.isUseFontIconForImage()) - editor.setIconSclass("z-icon-Edit"); - else - editor.setImage(ThemeManager.getThemeResource("images/Editor16.png")); - editor.addEventListener(Events.ON_CLICK, this); + editor.addEventListener(Events.ON_CLICK, popupMenu); popupMenu.appendChild(editor); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java index fce22856cf..ca27170704 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WTableDirEditor.java @@ -240,9 +240,6 @@ ContextMenuListener, IZoomableEditor searchMode = new Menuitem(); searchMode.setAttribute(WEditorPopupMenu.EVENT_ATTRIBUTE, SHORT_LIST_EVENT); searchMode.setLabel(Msg.getMsg(Env.getCtx(), "ShortListSwitchSearchMode")); - if(ThemeManager.isUseFontIconForImage()) - searchMode.setIconSclass("z-icon-Lock"); - else searchMode.setImage(ThemeManager.getThemeResource("images/Lock16.png")); searchMode.addEventListener(Events.ON_CLICK, popupMenu); popupMenu.appendChild(searchMode); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java index 077418266b..ed22a5062a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java @@ -309,16 +309,6 @@ public class WEMailDialog extends Window implements EventListener, ValueC row.appendChild(new Label("")); row.appendChild(isAcknowledgmentReceipt); - row = new Row(); - rows.appendChild(row); - row.appendChild(new Label("")); - row.appendChild(isAcknowledgmentReceipt); - - row = new Row(); - rows.appendChild(row); - row.appendChild(new Label("")); - row.appendChild(isAcknowledgmentReceipt); - row = new Row(); rows.appendChild(row); div = new Div(); @@ -373,9 +363,6 @@ public class WEMailDialog extends Window implements EventListener, ValueC LayoutUtils.addSclass("large-toolbarbutton", btn); bAddDefaultMailText = new Button(); - if(ThemeManager.isUseFontIconForImage()) - bAddDefaultMailText.setIconSclass("z-icon-GetMail"); - else bAddDefaultMailText.setImage(ThemeManager.getThemeResource("images/DefaultMailText.png")); bAddDefaultMailText.addEventListener(Events.ON_CLICK, this); bAddDefaultMailText.setTooltiptext(Msg.getMsg(Env.getCtx(), "AddDefaultMailTextContent")); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java index a6e709860c..3175c7412b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WMediaDialog.java @@ -157,24 +157,15 @@ public class WMediaDialog extends Window implements EventListener bSave.setEnabled(false); - if (ThemeManager.isUseFontIconForImage()) - bSave.setIconSclass("z-icon-Export"); - else - bSave.setImage(ThemeManager.getThemeResource("images/Download24.png")); + bSave.setImage(ThemeManager.getThemeResource("images/Export24.png")); bSave.setTooltiptext(Msg.getMsg(Env.getCtx(), "AttachmentSave")); bSave.addEventListener(Events.ON_CLICK, this); - if (ThemeManager.isUseFontIconForImage()) - bLoad.setIconSclass("z-icon-Import"); - else - bLoad.setImage(ThemeManager.getThemeResource("images/Upload24.png")); + bLoad.setImage(ThemeManager.getThemeResource("images/Import24.png")); bLoad.setTooltiptext(Msg.getMsg(Env.getCtx(), "Load")); bLoad.addEventListener(Events.ON_UPLOAD, this); bLoad.setUpload(AdempiereWebUI.getUploadSetting()); - if (ThemeManager.isUseFontIconForImage()) - bDelete.setIconSclass("z-icon-Delete"); - else bDelete.setImage(ThemeManager.getThemeResource("images/Delete24.png")); bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete")); bDelete.addEventListener(Events.ON_CLICK, this); @@ -196,15 +187,9 @@ public class WMediaDialog extends Window implements EventListener southPane.appendChild(confirmPanel); ZKUpdateUtil.setHeight(southPane, "30px"); - if(ThemeManager.isUseFontIconForImage()) - bOk.setIconSclass("z-icon-Ok"); - else bOk.setImage(ThemeManager.getThemeResource("images/Ok24.png")); bOk.addEventListener(Events.ON_CLICK, this); - if(ThemeManager.isUseFontIconForImage()) - bCancel.setIconSclass("z-icon-Cancel"); - else bCancel.setImage(ThemeManager.getThemeResource("images/Cancel24.png")); bCancel.addEventListener(Events.ON_CLICK, this); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java index 94ef9d767c..8f548fca70 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WPAttributeDialog.java @@ -351,9 +351,6 @@ public class WPAttributeDialog extends Window implements EventListener cbNewEdit.addEventListener(Events.ON_CHECK, this); row.appendChild(cbNewEdit); bSelect.setLabel(Msg.getMsg(Env.getCtx(), "SelectExisting")); - if (ThemeManager.isUseFontIconForImage()) - bSelect.setIconSclass("z-icon-PAttribute"); - else bSelect.setImage(ThemeManager.getThemeResource("images/PAttribute16.png")); bSelect.addEventListener(Events.ON_CLICK, this); row.appendChild(bSelect); @@ -433,11 +430,6 @@ public class WPAttributeDialog extends Window implements EventListener // Popup // fieldLot.addMouseListener(new VPAttributeDialog_mouseAdapter(this)); // popup mZoom = new Menuitem(Msg.getMsg(Env.getCtx(), "Zoom"), ThemeManager.getThemeResource("images/Zoom16.png")); - if(ThemeManager.isUseFontIconForImage()) { - mZoom.setIconSclass("z-icon-Zoom"); - mZoom.setImage(""); - } - mZoom.addEventListener(Events.ON_CLICK, this); popupMenu.appendChild(mZoom); this.appendChild(popupMenu); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java index 39c544759b..47f6dc9a69 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WRecordAccessDialog.java @@ -36,7 +36,6 @@ import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Msg; -import org.zkoss.zk.ui.HtmlBasedComponent; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; @@ -153,28 +152,12 @@ public class WRecordAccessDialog extends Window implements EventListener */ private void jbInit() throws Exception { - //devCoffee #6142 - if(ThemeManager.isUseFontIconForImage()) - bDelete.setIconSclass("z-icon-Delete"); - else bDelete.setImage(ThemeManager.getThemeResource("images/Delete16.png")); bDelete.setTooltiptext(Msg.getMsg(Env.getCtx(), "Delete")); - //devCoffee #6142 - if(ThemeManager.isUseFontIconForImage()) - bNew.setIconSclass("z-icon-New"); - else bNew.setImage(ThemeManager.getThemeResource("images/New16.png")); bNew.setTooltiptext(Msg.getMsg(Env.getCtx(), "New")); - //devCoffee #6142 - if(ThemeManager.isUseFontIconForImage()) - bUp.setIconSclass("z-icon-Previous"); - else bUp.setImage(ThemeManager.getThemeResource("images/Previous16.png")); bUp.setTooltiptext(Msg.getMsg(Env.getCtx(), "Previous")); - //devCoffee #6142 - if(ThemeManager.isUseFontIconForImage()) - bDown.setIconSclass("z-icon-Next"); - else bDown.setImage(ThemeManager.getThemeResource("images/Next16.png")); bDown.setTooltiptext(Msg.getMsg(Env.getCtx(), "Next")); @@ -203,8 +186,6 @@ public class WRecordAccessDialog extends Window implements EventListener rows.appendChild(row); row.appendChild(roleLabel); row.appendChild(roleField); - //devCoffee #6142 - ZKUpdateUtil.setHflex((HtmlBasedComponent) row.getLastChild(), "1"); row.appendChild(cbActive); row.appendChild(cbExclude); row.appendChild(cbReadOnly); diff --git a/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp b/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp index ee6f3d7165..b16964fceb 100644 --- a/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp +++ b/org.adempiere.ui.zk/theme/default/css/fragment/font-icons.css.dsp @@ -280,6 +280,4 @@ .z-icon-CSVImport:before { content: "\f0f6"; } -.z-icon-GetMail:before { - content: "\f0e0"; -} +