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

📄 bindedtablecolumn.java

📁 Eclipse RCP下编写的工作管理软件代码
💻 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 + -