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

📄 mailboxconfigeditor.java

📁 mywork是rcp开发的很好的例子
💻 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 + -