mailcheckconfigeditor.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 91 行
JAVA
91 行
package net.sf.pim.scheduler;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import net.sf.component.config.DialogStringMapEditor;
import net.sf.component.config.IConfigItemEditor;
import net.sf.util.StringUtil;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
/**
* 处理邮件提醒的参数设置 [server,port,username,password,app]
* 稍作处理,即可成为另一个通用的StringListEditor
* TODO:解决TreeMap的排序问题,目前key是34512能满足按顺序显示
* @author levin
* @since 2008-1-12 下午12:56:09
*/
public class MailCheckConfigEditor implements IConfigItemEditor{
private DialogStringMapEditor editor;
private String configKey;
private static String[] keys={"k3","k4","k5","k1","k2"};
private static String[] promps={"服务器地址,String","端口号,Integer","用户名,String","密码,String","邮件客户端,File"};
public MailCheckConfigEditor() {
super();
}
@Override
public Text getTextControl() {
return null;
}
@Override
public Map<String, String> getValues() {
HashMap<String,String> map=new HashMap<String,String>();
map.put(configKey, editor.getStringValue());
return map;
}
@SuppressWarnings("serial")
@Override
public void init(Composite parent, String configKey, String configPromp, final String defaultValue,
Map<String, String> params) {
this.configKey=configKey;
PreferenceStore ps=new PreferenceStore();
ps.putValue(configKey, defaultValue);
//组定义,按顺序输出keySet
Map<String,String> mapConfig=new TreeMap<String,String>();
for(int i=0;i<keys.length;i++){
mapConfig.put(keys[i], promps[i]);
}
//创建控件
Label dummy=new Label(parent,SWT.NULL);
dummy.setText(configPromp);
Composite composite = new Composite(parent,SWT.NULL);
GridDataFactory.fillDefaults().grab(true, true).applyTo(composite);
editor=new DialogStringMapEditor(configKey,configPromp,mapConfig,composite){
@Override
protected String map2String(Map<String, String> map) {
StringBuffer sb=new StringBuffer();
for(String key:keys){
sb.append(",").append(map.get(key));
}
sb.deleteCharAt(0);
return sb.toString();
}
@Override
protected Map<String, String> string2Map(String str) {
String[] values=StringUtil.toArray(str);
//组定义及组值
HashMap<String,String> map=new HashMap<String,String>();
for(int i=0;i<keys.length;i++){
map.put(keys[i], values[i]);
}
return map;
}
};
editor.getLabelControl(composite).dispose();
editor.setChangeButtonText("定制...");
editor.setPreferenceStore(ps);
editor.load();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?