⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fontsizethemeprovider.java

📁 ZK是一个Ajax Java Web框架
💻 JAVA
字号:
/* FontSizeThemeProvider.java

{{IS_NOTE
	Purpose:
		
	Description:
		
	History:
		Nov 1, 2007 7:06:57 PM     2007, Created by Dennis.Chen
}}IS_NOTE

Copyright (C) 2007 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
	This program is distributed under GPL Version 2.0 in the hope that
	it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zkdemo.userguide;

import java.util.Collection;
import java.util.List;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.util.ThemeProvider;

/**
 * @author Dennis.Chen / Jumper Chen
 *
 */
public class FontSizeThemeProvider implements ThemeProvider{

	private static String _cssPrefix = "~./zul/css/norm";
	private static String _fsCookieName = "zkdemotfs";
	private static String _skinCookieName = "zkdemoskin";
	
	public Collection getThemeURIs(Execution exe, List uris) {
		int size = uris.size();
		for(int i=0;i<size;i++){
			String uri = (String)uris.get(i);
			if(uri.startsWith(_cssPrefix)){
				uri = _cssPrefix+getFontSizeCookie(exe)+uri.substring(_cssPrefix.length());
				uris.set(i,uri);
			}
		}
		if ("silvergray".equals(getSkinCookie(exe))) {
			uris.add("~./silvergray/color.css.dsp");
			uris.add("~./silvergray/img.css.dsp");
		}
		return uris;
	}

	/**
	 * get font size value from cookie
	 * @param exe Execution
	 * @return "lg" for larger font, "sm" for smaller font or "" for normal font.
	 */
	public static  String getFontSizeCookie(Execution exe) {
		Cookie[] cookies = ((HttpServletRequest)exe.getNativeRequest()).getCookies();
		if(cookies!=null){
			for(int i=0;i<cookies.length;i++){
				if(_fsCookieName.equals(cookies[i].getName())){
					String fs = cookies[i].getValue();
					if("lg".equals(fs)){
						return "lg";
					}else if("sm".equals(fs)){
						return "sm";
					}
				}
			}
		}
		return "";
	}
	
	/**
	 * set font size value to cookie
	 * @param exe Execution
	 * @param fontSize "lg" for larger font, "sm" for smaller font or other string for normal font.
	 */
	public static void setFondSizeCookie(Execution exe,String fontSize){
		String fs = "";
		if("lg".equals(fontSize)){
			fs = "lg";
		}else if("sm".equals(fontSize)){
			fs = "sm";
		}
		Cookie cookie = new Cookie(_fsCookieName,fs);
		cookie.setMaxAge(60*60*24*30);//store 30 days
		String cp = exe.getContextPath();
		cookie.setPath(cp);
		((HttpServletResponse)exe.getNativeResponse()).addCookie(cookie);
	}

	/**
	 * get skin value from cookie
	 */
	public static String getSkinCookie(Execution exe) {
		Cookie[] cookies = ((HttpServletRequest)exe.getNativeRequest()).getCookies();
		if(cookies!=null){
			for(int i=0;i<cookies.length;i++){
				if(_skinCookieName.equals(cookies[i].getName())){
					String fs = cookies[i].getValue();
					if (fs != null)
						return fs;
				}
			}
		}
		return "";
	}

	/**
	 * set skin value to cookie
	 */
	public static void setSkinCookie(Execution exe,String skin){
		Cookie cookie = new Cookie(_skinCookieName, skin);
		cookie.setMaxAge(60*60*24*30);//store 30 days
		String cp = exe.getContextPath();
		cookie.setPath(cp);
		((HttpServletResponse)exe.getNativeResponse()).addCookie(cookie);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -