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

📄 mailboxconfigtabitem.java

📁 mywork是rcp开发的很好的例子
💻 JAVA
字号:
package net.sf.pim.mail.config;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.mail.URLName;

import net.sf.component.config.EclipseFieldEditorFactory;
import net.sf.component.config.IConfigItemEditor;
import net.sf.pim.mail.MailUtil;
import net.sf.util.StringUtil;

import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;

/**
 * 设置邮箱信息
 		显示名称:showname
		邮件地址:address
		用户名:username
		密码:password
		POP3服务器地址:pop3server     端口:pop3port     需要SSL连接:     其他参数:pop3other
		SMTP服务器地址:smtpserver    端口:smtpport    需要SSL连接:     其他参数:smtpother
		SMTP需要密码验证:smtpauth
 * @author levin
 * @since 2008-1-6 下午01:26:55
 */
public class MailboxConfigTabItem extends Composite {
	private Composite main;
	private PreferenceStore ps;
	private List<IConfigItemEditor> list;
	public MailboxConfigTabItem(Composite parent,String[] config) {
		super(parent, SWT.NULL);
		setLayout(new FillLayout());
        ps=new PreferenceStore();
        main = new Composite(this, SWT.NONE);
        list=new ArrayList<IConfigItemEditor>();
        createStore(config);
		createEditor();
	}

	private void createEditor() {
        createEditor("showname", "显示名称","String");
        createEditor("address", "邮件地址*","String");
        createEditor("username", "用户名","String");
        createEditor("password", "密码","String");
        createEditor("pop3server", "pop3服务器","String");
        createEditor("smtpserver", "SMTP服务器地址","String");
        createEditor("pop3port", "pop3端口","Integer");
        createEditor("pop3other", "pop3其他参数","String");
        createEditor("smtpauth", "SMTP需要密码验证","Boolean");
        createEditor("smtpport", "smtp端口","Integer");
        createEditor("smtpother", "smpt其他参数","String");
	}

	private void createEditor(String key, String promp,String type) {
		EclipseFieldEditorFactory editor = new EclipseFieldEditorFactory();
		editor.init(main, key, promp, ps.getString(key), StringUtil.toMap("type="+type));
		list.add(editor);
	}
	
	private void createStore(String[] config) {
		try{
			if(StringUtil.isNull(config) || config.length != 3)
				return ;
			String[][] address = MailUtil.spliteAddress(config[0]);
			ps.putValue("showname", address[0][0]);
			ps.putValue("address",address[0][1]);
			
			URLName pop3=new URLName(config[1]);
			ps.putValue("username", pop3.getUsername());
			ps.putValue("password", pop3.getPassword());
			ps.putValue("pop3server", pop3.getHost());
			if(pop3.getPort() != 0)
				ps.setValue("pop3port",pop3.getPort());
			int indexPop3=config[1].indexOf("?");
			if(indexPop3 != -1 && config[1].length() > indexPop3 +1)
				ps.putValue("pop3other", config[1].substring(indexPop3+1));
			
			URLName smtp=new URLName(config[2]);
			if(StringUtil.isNotNull(smtp.getUsername()))
				ps.setValue("smtpauth", true);
			ps.putValue("smtpserver", smtp.getHost());
			if(smtp.getPort() !=0)
				ps.setValue("smtpport", smtp.getPort());
			int indexSmtp=config[2].indexOf("?");
			if(indexSmtp != -1 && config[2].length() > indexSmtp +1)
				ps.putValue("smtpother", config[2].substring(indexSmtp+1));
		}catch(Exception e){
			e.printStackTrace();
		}
	}	
	//获取配置信息
	public String[] getConfig(){
		Map<String,String> map=new HashMap<String,String>();
		//回写一下值
		for(IConfigItemEditor editor:list){
			map.putAll(editor.getValues());
		}
		//如果不填写显示名,则设置无效
		if(StringUtil.isNull(map.get("address")))
			return null;
		String[] ss=new String[3];
		ss[0]=map.get("showname")+"<"+map.get("address")+">";
		
		//TODO:利用URL规范进行正确性检查
		ss[1]="pop3://"+map.get("username")+":"+map.get("password")+"@"+map.get("pop3server");
		if(StringUtil.parseInt(map.get("pop3port"))> 0)
			ss[1] += ":"+map.get("pop3port");
		if(StringUtil.isNotNull(map.get("pop3other")))
			ss[1] += "/?"+map.get("pop3other");
		
		ss[2]="smtp://";
		if("true".equals(map.get("smtpauth")))
			ss[2] += map.get("username")+":"+map.get("password")+"@";
		ss[2] += map.get("smtpserver");
		if(StringUtil.parseInt(map.get("smtpport"))> 0)
			ss[2] += ":"+map.get("smtpport");
		if(StringUtil.isNotNull(map.get("smtpother")))
			ss[2] += "/?"+map.get("smtpother");
		
		return ss;
	}
}

⌨️ 快捷键说明

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