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

📄 optionutil.java

📁 java写的qq代码实现qq的部分功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
* LumaQQ - Java QQ Client
*
* Copyright (C) 2004 luma <stubma@163.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package edu.tsinghua.lumaqq.utils;

import java.io.File;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import edu.tsinghua.lumaqq.qq.Util;
import edu.tsinghua.lumaqq.xml.sysopts.GUIOptionImpl;
import edu.tsinghua.lumaqq.xml.sysopts.LoginOptionImpl;
import edu.tsinghua.lumaqq.xml.sysopts.MessageOptionImpl;
import edu.tsinghua.lumaqq.xml.sysopts.Options;
import edu.tsinghua.lumaqq.xml.sysopts.OtherOptionImpl;
import edu.tsinghua.lumaqq.xml.sysopts.SyncOptionImpl;

/**
 * 管理系统设置的工具类,因为系统设置是一块比较大的部分,所以在这里用一个类
 * 来处理他
 * 
 * @author 马若劼
 */
public class OptionUtil {
	private Options options;
	private String fileName;
    // Log对象
    private static Log log = LogFactory.getLog(OptionUtil.class);
	// singleton模式
	private static OptionUtil instance = new OptionUtil();
	
	public static final String TRUE = "true";
	public static final String FALSE = "false";
	public static final String ALWAYS = "always";
	public static final String NEVER = "never";
	public static final String PROMPT = "prompt";
	
	/**
	 * @return 单一实例
	 */
	public static OptionUtil getInstance() {
		return instance;
	}
	
	/**
	 * 构造函数
	 * @param options
	 */
	private OptionUtil() {
	    // 没什么要做的
	}
	
	/**
	 * 设置系统设置文件的根元素对象
	 * @param options
	 */
	public void setOptionsModel(Options options) {
		this.options = options;
		if(options.getLoginOption() == null)
		    options.setLoginOption(new LoginOptionImpl());
		if(options.getGUIOption() == null)
		    options.setGUIOption(new GUIOptionImpl());
		if(options.getMessageOption() == null)
		    options.setMessageOption(new MessageOptionImpl());
		if(options.getOtherOption() == null)
		    options.setOtherOption(new OtherOptionImpl());
		if(options.getSyncOption() == null)
		    options.setSyncOption(new SyncOptionImpl());
	}
	
	/**
	 * @return options元素对象
	 */
	public Options getOptionsModel() {
		return options;
	}
	
	/**
	 * @return 是否是自动选择服务器
	 */
	public boolean isAutoSelect() {
		return TRUE.equalsIgnoreCase(options.getLoginOption().getAutoSelect());
	}
	
	/**
	 * @return 是否使用tcp方式登陆
	 */
	public boolean isUseTcp() {
		return TRUE.equalsIgnoreCase(options.getLoginOption().getUseTcp());
	}
	
	/**
	 * 设置是否是自动选择服务器
	 * @param b
	 */
	public void setAutoSelect(boolean b) {
		options.getLoginOption().setAutoSelect(String.valueOf(b));
	}
	
	/**
	 * 设置是否用tcp方式登陆
	 * @param b
	 */
	public void setUseTcp(boolean b) {
		options.getLoginOption().setUseTcp(String.valueOf(b));
	}
	
	/**
	 * @return 代理服务器地址
	 */
	public String getProxyServer() {
	    return options.getLoginOption().getProxyServer();
	}
	
	/**
	 * 设置代理服务器地址
	 * @param s
	 */
	public void setProxyServer(String s) {
	    options.getLoginOption().setProxyServer(s);
	}
	
	/**
	 * @return 代理服务器端口
	 */
	public int getProxyPort() {
        return Util.getInt(options.getLoginOption().getProxyPort(), 0);
	}
	
	/**
	 * 设置代理服务器端口
	 * @param port
	 */
	public void setProxyPort(int port) {
	    options.getLoginOption().setProxyPort(String.valueOf(port));
	}
	
	/**
	 * @return 代理服务器类型
	 */
	public String getProxyType() {
	    return options.getLoginOption().getProxyType();
	}
	
	/**
	 * 设置代理服务器类型
	 * @param s
	 */
	public void setProxyType(String s) {
	    options.getLoginOption().setProxyType(s);
	}
	
	/**
	 * @return 代理进行验证的用户名
	 */
	public String getProxyUsername() {
	    return options.getLoginOption().getProxyUsername();
	}
	
	/**
	 * 设置代理服务器的验证用户名
	 * @param u
	 */
	public void setProxyUsername(String u) {
	    options.getLoginOption().setProxyUsername(u);
	}
	
	/**
	 * @return 代理服务器的验证密码
	 */
	public String getProxyPassword() {
	    return options.getLoginOption().getProxyPassword();
	}
	
	/**
	 * 设置代理服务器的验证密码
	 * @param p
	 */
	public void setProxyPassword(String p) {
	    options.getLoginOption().setProxyPassword(p);
	}
	
	/**
	 * 得到TCP服务器缺省连接端口,因为TCP服务器有两个端口可用,如果失败,返回80
	 */
	public int getTcpPort() {
	    return Util.getInt(options.getLoginOption().getTcpPort(), 80);
	}
	
	/**
	 * 设置TCP服务器端口
	 * 
	 * @param port
	 * 			端口的字符串形式
	 */
	public void setTcpPort(String port) {
	    options.getLoginOption().setTcpPort(port);
	}
	
	/**
	 * 设置TCP服务器端口
	 * 
	 * @param port
	 * 			端口的整数形式
	 */
	public void setTcpPort(int port) {
	    options.getLoginOption().setTcpPort(String.valueOf(port));
	}
	
	/**
	 * 检查是否在最小化时隐藏窗口
	 * @return
	 */
	public boolean isAutoHide() {
		return TRUE.equalsIgnoreCase(options.getGUIOption().getAutoHide());
	}
	
	/**
	 * @return 主窗口上次关闭时的x位置
	 */
	public int getLocationX() {
		String s = options.getGUIOption().getLocationX();
		return Util.getInt(s, 0);
	}
	
	/**
	 * @return 主窗口的宽度,如果为-1,表示使用缺省值
	 */
	public int getWidth() {
		String s = options.getGUIOption().getWidth();
		return Util.getInt(s, -1);
	}
	
	/**
	 * @return 主窗口的高度,如果为-1,表示使用缺省值
	 */
	public int getHeight() {
		String s = options.getGUIOption().getHeight();
		return Util.getInt(s, -1);
	}
	
	/**
	 * 设置主窗口宽度
	 * @param width
	 */
	public void setWidth(int width) {
	    options.getGUIOption().setWidth(String.valueOf(width));
	}
	
	/**
	 * 设置主窗口高度
	 * @param height
	 */
	public void setHeight(int height) {
	    options.getGUIOption().setHeight(String.valueOf(height));
	}
	
	/**
	 * @return true表示显示小头像
	 */
	public boolean isSmallFace() {
		return TRUE.equalsIgnoreCase(options.getGUIOption().getSmallFace());
	}
	
	/**
	 * @return true表示鼠标移动到好友上时显示提示
	 */
	public boolean isShowTip() {
		return TRUE.equalsIgnoreCase(options.getGUIOption().getShowTip());
	}
	
	/**
	 * 设置是否鼠标在好友上面时显示提示
	 * @param b
	 */
	public void setShowTip(boolean b) {
		options.getGUIOption().setShowTip(String.valueOf(b));
	}
	
	/**
	 * @return true表示显示好友上线提示
	 */
	public boolean isShowOnlineTip() {
	    return TRUE.equalsIgnoreCase(options.getGUIOption().getShowOnlineTip());
	}
	
	/**
	 * @return 好友上线提示窗口的x坐标位置,如果为-1,表示使用缺省值
	 */
	public int getOnlineTipLocationX() {
		String s = options.getGUIOption().getOnlineTipLocationX();
		return Util.getInt(s, -1);
	}
	
	/**
	 * @return 好友上线提示窗口的y坐标位置,如果为-1,表示使用缺省值
	 */
	public int getOnlineTipLocationY() {
		String s = options.getGUIOption().getOnlineTipLocationY();
		return Util.getInt(s, -1);
	}
	
	/**
	 * 设置好友上线提示窗口的x坐标位置
	 * @param x 
	 */
	public void setOnlineTipLocationX(int x) {
	    options.getGUIOption().setOnlineTipLocationX(String.valueOf(x));
	}
	
	/**
	 * 设置好友上线提示窗口的y坐标位置
	 * @param y
	 */
	public void setOnlineTipLocationY(int y) {
	    options.getGUIOption().setOnlineTipLocationY(String.valueOf(y));
	}
	
	/**
	 * 设置是否显示好友上线提示
	 * @param b
	 */
	public void setShowOnlineTip(boolean b) {
	    options.getGUIOption().setShowOnlineTip(String.valueOf(b));
	}
	
	/**
	 * 设置显示大头像还是小头像
	 * @param b
	 */
	public void setSmallFace(boolean b) {
		options.getGUIOption().setSmallFace(String.valueOf(b));
	}
	
	/**
	 * @return 主窗口上次关闭时的y位置
	 */
	public int getLocationY() {
		String s = options.getGUIOption().getLocationY();
		return Util.getInt(s, 0);
	}
	
	/**
	 * 检查是否自动弹出消息
	 * @return
	 */
	public boolean isAutoEject() {
		return TRUE.equalsIgnoreCase(options.getMessageOption().getAutoEject());
	}
	
	/**
	 * 检查是否拒绝陌生人消息
	 * @return
	 */
	public boolean isRejectStranger() {
		return TRUE.equalsIgnoreCase(options.getMessageOption().getRejectStranger());
	}
	
	/**
	 * 设置是否最下化时隐藏
	 * @param b
	 */
	public void setAutoHide(boolean b) {
		options.getGUIOption().setAutoHide(String.valueOf(b));
	}
	
	/**
	 * 保存主窗口关闭时的x位置
	 * @param x
	 */
	public void setLocationX(int x) {
		options.getGUIOption().setLocationX(String.valueOf(x));
	}
	
	/**
	 * 保存主窗口关闭时的y位置
	 * @param y

⌨️ 快捷键说明

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