📄 bindedtablecolumn.java
字号:
/**
* Simon Lei, CopyLeft 2005
*/
package net.sf.component.table;
import java.util.ArrayList;
import java.util.List;
import net.sf.component.table.validator.IValidator;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ICellEditorListener;
import org.eclipse.swt.SWT;
/**
* $Id: BindedTableColumn.java 1006 2005-11-21 05:43:56Z xbhuang $
* Created Date: 2005-7-16
* @author SimonLei
*/
public abstract class BindedTableColumn {
private String name;
private String showName;
private int style = SWT.NULL;
private int width = 100;
private boolean editable = true;
private boolean visible = true;
protected Class valueClass = null;
private ICellEditorListener cellEditorListener = null;
public BindedTableColumn(String name) {
this.name = name;
}
public boolean isEditable() {
return editable;
}
/**
* 对于特定的行而言,该列是否可编辑的?
* @param element 当前行
* @return 是否可编辑
*/
public boolean isEditable( Object element) {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getShowName() {
return showName == null ? name : showName;
}
public void setShowName(String showName) {
this.showName = showName;
}
public int getStyle() {
return style;
}
public void setStyle(int style) {
this.style = style;
}
public boolean isVisible() {
return visible;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
/**
* 对一个Column而言,可以共用一个实例。
*/
private CellEditor defaultCellEditor = null;
/**
* @return 获得本列的默认 CellEditor
*/
public CellEditor getEditor(){
if ( defaultCellEditor == null){
defaultCellEditor = getDefaultCellEditor();
}
if(cellEditorListener!=null)defaultCellEditor.addListener(cellEditorListener);
return defaultCellEditor;
}
public void setEditor( CellEditor editor) {
this.defaultCellEditor = editor;
}
public void addListener(ICellEditorListener listener) {
this.cellEditorListener = listener;
}
/**
* @return 获得每个 Column 缺省的 CellEditor
*/
protected abstract CellEditor getDefaultCellEditor();
public abstract Object getValue(Object obj);
public abstract Object getModifiedValue(Object obj);
public String getLabelText( Object obj) {
return obj == null ? "" : obj.toString();
}
/**
* 获取当前列的值类型。 主要用于值保存时拼装 set 方法的参数。
*/
public abstract Class getValueClass();
public List<IValidator> validators = new ArrayList<IValidator>();
public void addValidator(IValidator validator) {
validators.add( validator);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -