diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/BreadCrumb.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/BreadCrumb.java index 49af13801e..e54a91e23f 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/BreadCrumb.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/BreadCrumb.java @@ -290,8 +290,12 @@ public class BreadCrumb extends Div implements EventListener { pathLabel.addEventListener(Events.ON_MOUSE_OVER, listener); pathLabel.addEventListener(Events.ON_MOUSE_OUT, listener); pathLabel.addEventListener(ON_MOUSE_OVER_ECHO_EVENT, listener); - String imageUrl = Executions.getCurrent().encodeURL(ThemeManager.getThemeResource("images/downarrow.png")); - ZkCssHelper.appendStyle(pathLabel, "background: transparent url('" + imageUrl + "') no-repeat right center"); + if (ThemeManager.isUseFontIconForImage()) { + pathLabel.setSclass("adwindow-breadcrumb-menu"); + } else { + String imageUrl = Executions.getCurrent().encodeURL(ThemeManager.getThemeResource("images/downarrow.png")); + ZkCssHelper.appendStyle(pathLabel, "background: transparent url('" + imageUrl + "') no-repeat right center"); + } } @Override diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/BusyDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/BusyDialog.java index cc26006b4c..45e0e6a699 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/BusyDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/BusyDialog.java @@ -16,6 +16,7 @@ package org.adempiere.webui.apps; import org.adempiere.webui.LayoutUtils; import org.adempiere.webui.component.Label; import org.adempiere.webui.component.Window; +import org.adempiere.webui.theme.ThemeManager; import org.compiere.util.Env; import org.compiere.util.Msg; import org.zkoss.zul.Div; @@ -40,7 +41,10 @@ public class BusyDialog extends Window { appendChild(box); Span image = new Span(); - LayoutUtils.addSclass("busy-dialog-img", image); + if (ThemeManager.isUseFontIconForImage()) + LayoutUtils.addSclass("z-icon-spinner z-icon-spin", image); + else + LayoutUtils.addSclass("busy-dialog-img", image); box.appendChild(image); label = new Label(Msg.getMsg(Env.getCtx(), "Processing")); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java index 37ee9064d3..0ba47e335b 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/AutoComplete.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; +import org.adempiere.webui.theme.ThemeManager; import org.zkoss.zk.ui.event.InputEvent; import org.zkoss.zul.Comboitem; @@ -185,7 +186,10 @@ public class AutoComplete extends Combobox if (images != null && i < images.length && images[i] != null && images[i].trim().length() > 0) { - comboitem.setImage(images[i]); + if (ThemeManager.isUseFontIconForImage()) + comboitem.setIconSclass(ThemeManager.getIconSclass(images[i])); + else + comboitem.setImage(images[i]); } if (contents != null && i < contents.length && contents[i] != null && contents[i].trim().length() > 0) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java index ce41edad5c..978d62287e 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/ConfirmPanel.java @@ -282,7 +282,12 @@ public final class ConfirmPanel extends Div Button btProcess = createButton(btName); // replace default image with image set at info process if (m_withImage && imgName != null && imgName.trim().length() > 0) - btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); + { + if (ThemeManager.isUseFontIconForImage()) + btProcess.setIconSclass(ThemeManager.getIconSclass(imgName)); + else + btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); + } addComponentsCenter(btProcess); return btProcess; } @@ -291,7 +296,12 @@ public final class ConfirmPanel extends Div Button btProcess = createButton(btName, imgName, null); // replace default image with image set at info process if (m_withImage && imgName != null && imgName.trim().length() > 0) - btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); + { + if (ThemeManager.isUseFontIconForImage()) + btProcess.setIconSclass(ThemeManager.getIconSclass(imgName)); + else + btProcess.setImage(ThemeManager.getThemeResource("images/" + imgName)); + } addComponentsCenter(btProcess); return btProcess; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java index 8076b6173c..6f412903af 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/FolderBrowser.java @@ -29,6 +29,7 @@ import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Borderlayout; import org.zkoss.zul.Center; +import org.zkoss.zul.Listcell; import org.zkoss.zul.North; import org.zkoss.zul.South; @@ -129,7 +130,10 @@ public class FolderBrowser extends Window implements EventListener if(!dir.getParent().equals(root.getParent())) { ListItem li = new ListItem(dir.getName(), dir.getParent()); - li.setImage(ThemeManager.getThemeResource("images/Undo16.png")); + if (ThemeManager.isUseFontIconForImage()) + ((Listcell)li.getFirstChild()).setIconSclass("z-icon-Undo"); + else + li.setImage(ThemeManager.getThemeResource("images/Undo16.png")); listDir.appendChild(li); } @@ -141,7 +145,10 @@ public class FolderBrowser extends Window implements EventListener if(file.isDirectory()) { ListItem li = new ListItem(file.getName(), file.getAbsolutePath()); - li.setImage(ThemeManager.getThemeResource("images/Folder16.png")); + if (ThemeManager.isUseFontIconForImage()) + ((Listcell)li.getFirstChild()).setIconSclass("z-icon-Folder"); + else + li.setImage(ThemeManager.getThemeResource("images/Folder16.png")); listDir.appendChild(li); } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java index 6c4ebbdb02..8f492b5784 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WAppsAction.java @@ -22,6 +22,7 @@ import java.net.URI; import org.adempiere.webui.LayoutUtils; import org.adempiere.webui.apps.AEnv; +import org.adempiere.webui.theme.ThemeManager; import org.compiere.util.Env; import org.compiere.util.Msg; @@ -95,15 +96,19 @@ public class WAppsAction m_button.setName("btn" + action); m_button.setId(action); - //Image only if image is available - if (large != null) - { - m_button.setImage(large.getPath()); - m_button.setLabel(null); - } - else - { - m_button.setLabel(newToolTipText); + if (ThemeManager.isUseFontIconForImage()) { + m_button.setIconSclass(ThemeManager.getIconSclass(large.getPath())); + } else { + //Image only if image is available + if (large != null) + { + m_button.setImage(large.getPath()); + m_button.setLabel(null); + } + else + { + m_button.setLabel(newToolTipText); + } } LayoutUtils.addSclass("img-btn", m_button); } // Action diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/ButtonFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/ButtonFactory.java index fc90992b08..62fca603d6 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/ButtonFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/ButtonFactory.java @@ -117,7 +117,10 @@ public class ButtonFactory { button.setLabel(label); if (!Util.isEmpty(image)) { - button.setImage(image); + if (ThemeManager.isUseFontIconForImage()) + button.setIconSclass(ThemeManager.getIconSclass(image)); + else + button.setImage(image); LayoutUtils.addSclass("img-txt-btn", button); } else @@ -127,7 +130,10 @@ public class ButtonFactory { } else if (!Util.isEmpty(image)) { - button.setImage(image); + if (ThemeManager.isUseFontIconForImage()) + button.setIconSclass(ThemeManager.getIconSclass(image)); + else + button.setImage(image); LayoutUtils.addSclass("img-btn", button); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java index 2769ff35b5..93d4536f52 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java @@ -399,7 +399,10 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL item.setValue(process); item.setLabel(process.get_Translation(MProcess.COLUMNNAME_Name)); if (!Util.isEmpty(data.getImageURL(), true)) { - item.setImage(ThemeManager.getThemeResource("images/" + data.getImageURL())); + if (ThemeManager.isUseFontIconForImage()) + item.setIconSclass(ThemeManager.getIconSclass(data.getImageURL())); + else + item.setImage(ThemeManager.getThemeResource("images/" + data.getImageURL())); } } }); @@ -522,7 +525,10 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL Menuitem ipMenuItem = new Menuitem(); ipMenuItem.setLabel(process.get_Translation(MProcess.COLUMNNAME_Name)); if (!Util.isEmpty(infoProcess.getImageURL(), true)) { - ipMenuItem.setImage(ThemeManager.getThemeResource("images/" + infoProcess.getImageURL())); + if (ThemeManager.isUseFontIconForImage()) + ipMenuItem.setIconSclass(ThemeManager.getIconSclass(infoProcess.getImageURL())); + else + ipMenuItem.setImage(ThemeManager.getThemeResource("images/" + infoProcess.getImageURL())); } ipMenuItem.setAttribute(PROCESS_ID_KEY, infoProcess.getAD_Process_ID()); ipMenuItem.addEventListener(Events.ON_CLICK, this); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/theme/ThemeManager.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/theme/ThemeManager.java index 892516e144..d93f3d40b4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/theme/ThemeManager.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/theme/ThemeManager.java @@ -231,4 +231,23 @@ public final class ThemeManager { return ZK_PREFIX_FOR_CLASSPATH_RESOURCE+zkResourceURL.substring(2); } + + public static String getIconSclass(String imagePath) { + String iconSclass = null; + if (!Util.isEmpty(imagePath, true)) { + // remove path and extension + iconSclass = imagePath.substring(imagePath.lastIndexOf("/") + 1, imagePath.lastIndexOf(".")); + + // remove prefix m + if (iconSclass.length() > 2) + iconSclass = iconSclass.startsWith("m") && Character.isUpperCase(iconSclass.charAt(1)) ? iconSclass.substring(1) : iconSclass; + + // remove image size + iconSclass = iconSclass.replaceAll("(\\d\\d)$", ""); + + iconSclass = "z-icon-" + iconSclass; + } + + return iconSclass; + } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/adwindow.css.dsp b/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/adwindow.css.dsp index 2339190263..9fbd19b952 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/adwindow.css.dsp +++ b/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/adwindow.css.dsp @@ -119,6 +119,14 @@ .adwindow-breadcrumb .z-toolbarbutton-content { line-height: inherit; } +.adwindow-breadcrumb-menu::after { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + font-size: 12px; + content: "\f0d7"; + margin-left: 3px; +} .adwindow-detailpane { width: 100%; diff --git a/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/font-icons.css.dsp b/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/font-icons.css.dsp index 071c6b2eb3..66593413da 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/font-icons.css.dsp +++ b/org.adempiere.ui.zk/WEB-INF/src/web/theme/default/css/fragment/font-icons.css.dsp @@ -319,6 +319,9 @@ .z-icon-UnprocessedDoc:before { content: "\f044"; } +.z-icon-Undo:before { + content: "\f0e2"; +} .z-icon-UnSort:before { content: "\f074"; }