numbercelleditor.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 66 行
JAVA
66 行
package net.sf.freenote.mindmap;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.widgets.Composite;
/**
* @author levin
*/
public class NumberCellEditor extends TextCellEditor {
private Class subClass;
public NumberCellEditor() {
super();
}
public NumberCellEditor(Composite parent) {
super(parent);
}
public NumberCellEditor(Composite parent,Class subClass) {
this(parent);
this.subClass=subClass;
}
public NumberCellEditor(Composite parent, int style) {
super(parent, style);
}
@Override
protected Object doGetValue() {
String value=text.getText();
return getNumberValue(subClass,value);
}
static Object getNumberValue(Class subClass,String value) {
if(value == null || value.equals("")) value ="0";
if(subClass.isPrimitive()){
if(short.class == subClass) subClass=Short.class;
else if(int.class == subClass)subClass=Integer.class;
else if(long.class == subClass)subClass=Long.class;
else if(float.class == subClass)subClass=Float.class;
else if(double.class == subClass)subClass=Double.class;
}
//假设相关类都有此方法valueOf(String)
try {
return subClass.getMethod("valueOf",new Class[]{String.class}).invoke(null,new Object[]{value});
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void doSetValue(Object value) {
assert(text != null && (value instanceof Number));
if(value == null)
text.setText("");
else
text.setText(String.valueOf(value));
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?