📄 mailboxconfigtabitem.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 + -