📄 abstractbindedtablemodel.java
字号:
package net.sf.component.table;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import net.sf.component.table.orderable.OrderAbleModel;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.swt.widgets.Listener;
/**
* 自动做绑定的 Table Model 的 Adaptor
* $Id: AbstractBindedTableModel.java 850 2005-09-12 05:19:25Z yflei $
* Created Date: 2005-9-9
* @author SimonLei
*/
public abstract class AbstractBindedTableModel
extends OrderAbleModel implements IBindedTableModel {
protected List datas = null;
protected List<String> propertyNames;
private List<String> columnOrders = new ArrayList<String>();
/**
* Property and it's show name mapping
*/
private TreeMap<String, BindedTableColumn> columns = null;
private boolean editable=true;
private boolean dirty=false;
private String chunkId;
public AbstractBindedTableModel( List datas ) {
super(datas);
this.datas = datas;
columns = new TreeMap<String, BindedTableColumn>(
new ListBasedComparator( columnOrders));
}
public void addColumn( BindedTableColumn column) {
addColumn( columnOrders.size(), column);
}
public synchronized void addColumn( int index, BindedTableColumn column) {
if ( columnOrders.contains( column.getName()))
throw new IllegalArgumentException( "列名不能重复");
columnOrders.add( index, column.getName());
columns.put( column.getName(), column);
}
public void addRow(Object object) {
datas.add( object);
}
public void removeRow(int index) {
datas.remove( index);
}
public List getRows() {
return datas;
}
public BindedTableColumn getColumn(String name) {
return columns.get( name);
}
public BindedTableColumn getColumn(int index) {
return columns.get( columnOrders.get(index));
}
public int getColumnCount() {
return columnOrders.size();
}
public void setColumns(List<Map> columnLists) {
// 先将原来的 TreeMap 里面的内容全部拷贝到一个缓存
Map<String,BindedTableColumn> tmpMap = new HashMap<String,BindedTableColumn>();
tmpMap.putAll( columns);
columnOrders.clear();
for (Map map: columnLists) {
columnOrders.add( (String)map.get( "name"));
}
columns.clear();
for (Map map : columnLists) {
String name = (String)map.get( "name");
BindedTableColumn column = tmpMap.get( name);
column.setEditable( (Boolean)map.get( "editable"));
column.setVisible( (Boolean)map.get( "visible"));
columns.put( name, column);
}
}
public IBaseLabelProvider getLabelProvider(List<String> propertyNames) {
this.propertyNames = propertyNames;
return new BindedTableLabelProvider( this);
}
public Listener getSortedListener(BindedTableViewer viewer) {
return null;
}
public boolean isEditable() {
return editable;
}
public void setEditable(boolean editable) {
this.editable = editable;
}
public boolean isDirty() {
return dirty;
}
public void setDirty(boolean dirty) {
this.dirty = dirty;
}
public String getChunkId() {
return chunkId;
}
public void setChunkId(String chunkId) {
this.chunkId = chunkId;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -