IDEMPIERE-724 Zk: Make iDempiere theme more easily customizable. Added theme preference support. Added toolbar button size preference.

This commit is contained in:
Heng Sin Low 2013-05-21 23:43:22 +08:00
parent c155937c9e
commit a1fdf9420e
7 changed files with 46 additions and 47 deletions

View File

@ -43,6 +43,7 @@ import org.compiere.model.X_AD_ToolBarButton;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Msg; import org.compiere.util.Msg;
import org.compiere.util.Util;
import org.compiere.util.ValueNamePair; import org.compiere.util.ValueNamePair;
import org.zkoss.image.AImage; import org.zkoss.image.AImage;
import org.zkoss.zk.au.out.AuScript; import org.zkoss.zk.au.out.AuScript;
@ -220,7 +221,15 @@ public class ADWindowToolbar extends FToolbar implements EventListener<Event>
btn.setName(BTNPREFIX+name); btn.setName(BTNPREFIX+name);
btn.setId(btn.getName()); btn.setId(btn.getName());
if (image != null) if (image != null)
btn.setImage(ThemeManager.getThemeResource("images/"+image + "24.png")); {
String size = Env.getContext(Env.getCtx(), "#ZK_Toolbar_Button_Size");
String suffix = "24.png";
if (!Util.isEmpty(size))
{
suffix = size + ".png";
}
btn.setImage(ThemeManager.getThemeResource("images/"+image + suffix));
}
btn.setTooltiptext(Msg.getMsg(Env.getCtx(),tooltip)); btn.setTooltiptext(Msg.getMsg(Env.getCtx(),tooltip));
btn.setSclass("toolbar-button"); btn.setSclass("toolbar-button");

View File

@ -384,7 +384,13 @@ public class BreadCrumb extends Div implements EventListener<Event> {
ToolBarButton btn = new ToolBarButton(""); ToolBarButton btn = new ToolBarButton("");
btn.setName(BTNPREFIX+name); btn.setName(BTNPREFIX+name);
btn.setId(name); btn.setId(name);
btn.setImage(ThemeManager.getThemeResource("images/"+image + "24.png")); String size = Env.getContext(Env.getCtx(), "#ZK_Toolbar_Button_Size");
String suffix = "24.png";
if (!Util.isEmpty(size))
{
suffix = size + ".png";
}
btn.setImage(ThemeManager.getThemeResource("images/"+image + suffix));
btn.setTooltiptext(Msg.getMsg(Env.getCtx(),tooltip)); btn.setTooltiptext(Msg.getMsg(Env.getCtx(),tooltip));
btn.setSclass("breadcrumb-toolbar-button"); btn.setSclass("breadcrumb-toolbar-button");

View File

@ -41,17 +41,6 @@ public interface ITheme {
public static final String LOGIN_LABEL_CLASS = "login-label"; public static final String LOGIN_LABEL_CLASS = "login-label";
public static final String LOGIN_FIELD_CLASS = "login-field"; public static final String LOGIN_FIELD_CLASS = "login-field";
//optional top, bottom, left, right content for the login page
public static final String LOGIN_NORTH_PANEL_CLASS = "login-north-panel";
public static final String LOGIN_SOUTH_PANEL_CLASS = "login-south-panel";
public static final String LOGIN_WEST_PANEL_CLASS = "login-west-panel";
public static final String LOGIN_EAST_PANEL_CLASS = "login-east-panel";
public static final String LOGIN_TOP_PANEL_ZUL = "/login-top.zul";
public static final String LOGIN_BOTTOM_PANEL_ZUL = "/login-bottom.zul";
public static final String LOGIN_LEFT_PANEL_ZUL = "/login-left.zul";
public static final String LOGIN_RIGHT_PANEL_ZUL = "/login-right.zul";
//logo //logo
public static final String LOGIN_LOGO_IMAGE = "/images/login-logo.png"; public static final String LOGIN_LOGO_IMAGE = "/images/login-logo.png";
public static final String HEADER_LOGO_IMAGE = "/images/header-logo.png"; public static final String HEADER_LOGO_IMAGE = "/images/header-logo.png";
@ -60,4 +49,7 @@ public interface ITheme {
//stylesheet url //stylesheet url
public static final String THEME_STYLESHEET = "/css/theme.css.dsp"; public static final String THEME_STYLESHEET = "/css/theme.css.dsp";
public static final String THEME_STYLESHEET_BY_BROWSER = "/css/theme*.css.dsp*"; public static final String THEME_STYLESHEET_BY_BROWSER = "/css/theme*.css.dsp*";
//theme preference
public static final String THEME_PREFERENCE = "/preference.zul";
} }

View File

@ -67,6 +67,13 @@ public final class ThemeManager {
return ITheme.THEME_PATH_PREFIX + getTheme() + ITheme.THEME_STYLESHEET_BY_BROWSER; return ITheme.THEME_PATH_PREFIX + getTheme() + ITheme.THEME_STYLESHEET_BY_BROWSER;
} }
/**
* @return url of theme preference page
*/
public static String getPreference() {
return ITheme.THEME_PATH_PREFIX + getTheme() + ITheme.THEME_PREFERENCE;
}
/** /**
* @return title text for the browser window * @return title text for the browser window
*/ */
@ -74,38 +81,6 @@ public final class ThemeManager {
return MSysConfig.getValue(MSysConfig.ZK_BROWSER_TITLE, AdempiereWebUI.APP_NAME); return MSysConfig.getValue(MSysConfig.ZK_BROWSER_TITLE, AdempiereWebUI.APP_NAME);
} }
/**
* @return url for right panel
*/
public static String getLoginRightPanel() {
String theme = getTheme();
return ITheme.THEME_PATH_PREFIX + theme + ITheme.LOGIN_RIGHT_PANEL_ZUL;
}
/**
* @return url for left panel
*/
public static String getLoginLeftPanel() {
String theme = getTheme();
return ITheme.THEME_PATH_PREFIX + theme + ITheme.LOGIN_LEFT_PANEL_ZUL;
}
/**
* @return url for top panel
*/
public static String getLoginTopPanel() {
String theme = getTheme();
return ITheme.THEME_PATH_PREFIX + theme + ITheme.LOGIN_TOP_PANEL_ZUL;
}
/**
* @return url for bottom panel
*/
public static String getLoginBottomPanel() {
String theme = getTheme();
return ITheme.THEME_PATH_PREFIX + theme + ITheme.LOGIN_BOTTOM_PANEL_ZUL;
}
/** /**
* @return url for browser icon * @return url for browser icon
*/ */

View File

@ -11,5 +11,6 @@ Copyright (C) 2007 Ashley G Ramdass.
<?link rel="stylesheet" type="text/css" href="${themeStyleSheetByBrowser}"?> <?link rel="stylesheet" type="text/css" href="${themeStyleSheetByBrowser}"?>
<?link rel="stylesheet" type="text/css" href="css/PAPanel.css"?> <?link rel="stylesheet" type="text/css" href="css/PAPanel.css"?>
<zk> <zk>
<include src="${themePreference}"/>
<window use="org.adempiere.webui.AdempiereWebUI"/> <window use="org.adempiere.webui.AdempiereWebUI"/>
</zk> </zk>

View File

@ -2,3 +2,4 @@ import org.adempiere.webui.theme.ThemeManager;
var themeStyleSheet = ThemeManager.getStyleSheet(); var themeStyleSheet = ThemeManager.getStyleSheet();
var themeStyleSheetByBrowser = ThemeManager.getStyleSheetByBrowser(); var themeStyleSheetByBrowser = ThemeManager.getStyleSheetByBrowser();
var browserIcon = ThemeManager.getBrowserIcon(); var browserIcon = ThemeManager.getBrowserIcon();
var themePreference = ThemeManager.getPreference();

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<zk>
<script defer="true">
<![CDATA[
adempiere.store.set("zkTimeoutURL", "sessiontimeout.zul");
]]>
</script>
<zscript>
<![CDATA[
import org.compiere.util.Env;
Env.setContext(Env.getCtx(), "#ZK_Toolbar_Button_Size", "24");
]]>
</zscript>
</zk>