bindedtablecellmodifier.java

来自「Eclipse RCP下编写的工作管理软件代码」· Java 代码 · 共 45 行

JAVA
45
字号
/**
 * Simon Lei, CopyLeft 2005
 */
package net.sf.component.table;

import java.util.Map;

import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.swt.widgets.Item;

/**
 * $Id: BindedTableCellModifier.java 844 2005-09-12 03:18:14Z yflei $
 * Created Date: 2005-7-16
 * @author SimonLei
 */
public class BindedTableCellModifier implements ICellModifier {

	private IBindedTableModel model;
	private IBindedTableViewer tableViewer;
	
	public BindedTableCellModifier(IBindedTableModel model, IBindedTableViewer tableViewer) {
		this.model = model;
		this.tableViewer = tableViewer;
	}

	public boolean canModify(Object element, String property) {
		return model.getColumn( property).isEditable( element);
	}

	public Object getValue(Object element, String property) {
		Object obj = ((Map)element).get( property);
		return model.getColumn( property).getValue( obj);
	}

	public void modify(Object element, String property, Object value) {
		if (element instanceof Item) {
	         element = ((Item) element).getData();
	     }
		Object modifiedValue = model.getColumn( property).getModifiedValue( value);
		if ( modifiedValue != null) ((Map)element).put( property, modifiedValue);
		tableViewer.refresh( true);
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?