📄 mailboxconfigeditor.java
字号:
package net.sf.pim.mail.config;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.component.config.ConfigHelper;
import net.sf.component.config.EclipseFieldEditorFactory;
import net.sf.component.config.IConfigItemEditor;
import net.sf.util.TousleUtil;
import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.jface.preference.StringButtonFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
/**
* 邮箱配置器
* @author levin
* @since 2008-1-6 下午08:35:47
*/
public class MailboxConfigEditor extends StringButtonFieldEditor implements IConfigItemEditor {
private Map<String, String> mailConfig;
@Override
public Text getTextControl() {
return super.getTextControl();
}
@Override
public Map<String, String> getValues() {
if(mailConfig == null){
mailConfig=new HashMap<String, String>();
mailConfig.put("mail.address",this.getStringValue());
}
return mailConfig;
}
@Override
public void init(Composite parent, String configKey, String configPromp, String defaultValue,Map<String, String> params) {
PreferenceStore ps=new PreferenceStore();
ps.putValue(configKey, defaultValue);
this.setPreferenceStore(ps);
Label dummy=new Label(parent,SWT.NULL);
dummy.setText(configPromp);
Composite composite = new Composite(parent,SWT.NULL);
this.setPreferenceName(configKey);
this.setLabelText(configPromp);
this.setChangeButtonText("配置...");
createControl(composite);
getLabelControl(composite).dispose();
this.load();
}
@Override
protected String changePressed() {
MailboxConfigDialog dialog=new MailboxConfigDialog(getShell());
dialog.create();
dialog.open();
mailConfig = dialog.getMailConfig();
//TODO:投机一下,直接在此刷新pop3及smtp的设置
List configItems = ConfigHelper.getConfigItems();
for(Object o:configItems){
String code=(String) TousleUtil.getPrivateProperty(o,"code");
if(code.equals("mail.pop3") || code.equals("mail.smtp")){
EclipseFieldEditorFactory editorFactory=(EclipseFieldEditorFactory) TousleUtil.getPrivateProperty(o,"editor");
if(code.equals("mail.pop3"))
editorFactory.getTextControl().setText(mailConfig.get("mail.pop3"));
else if(code.equals("mail.smtp"))
editorFactory.getTextControl().setText(mailConfig.get("mail.smtp"));
}
}
return mailConfig.get("mail.address");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -