package com.vci.client.omd.btm.toOutside;
|
|
import java.awt.Dimension;
|
import java.util.ArrayList;
|
import java.util.List;
|
import javax.swing.JCheckBox;
|
import javax.swing.table.JTableHeader;
|
import javax.swing.table.TableColumn;
|
import org.jdesktop.swingx.JXTable;
|
import org.jdesktop.swingx.decorator.HighlighterFactory;
|
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.client.omd.attribpool.ui.BtmSelectDialog;
|
import com.vci.client.omd.btm.ui.BtmClient;
|
import com.vci.client.ui.table.CheckBoxEditor;
|
import com.vci.client.ui.table.CheckBoxRenderer;
|
import com.vci.corba.common.VCIError;
|
|
public class BtmTableForOut extends JXTable{
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -483194770273076948L;
|
private BtmItem[] btmArray = null;
|
private final int TABLE_HEADER_HEIGHT = 25;
|
private final int ROW_HEIGHT = 30;
|
private BtmTableModelForOut model = new BtmTableModelForOut();
|
private List<String> btNameList;
|
//add by caill 为BtmTableForOut构造方法增加一个textValue参数,用来传递查询框中的内容
|
public BtmTableForOut(List<String> btNameList, String filter){
|
this.btNameList = btNameList;
|
this.setHorizontalScrollEnabled(true);
|
this.setAutoscrolls(true);
|
this.setSortable(false);
|
this.setHighlighters(HighlighterFactory.createAlternateStriping());
|
this.setRowHeight(ROW_HEIGHT);
|
//设置表头高度
|
JTableHeader tableHeader = this.getTableHeader();
|
Dimension size = tableHeader.getPreferredSize();
|
size.height = TABLE_HEADER_HEIGHT;
|
tableHeader.setPreferredSize(size);
|
this.setModel(model);
|
TableColumn column = this.getColumn(0);
|
column.setCellEditor(new CheckBoxEditor(new JCheckBox()));
|
column.setCellRenderer(new CheckBoxRenderer());
|
|
//initBtmTable("");
|
//add by caill 为initBtmTable方法添加textValue参数,
|
initBtmTable(filter);
|
}
|
|
public void initBtmTable(String filter){
|
BtmItem btmItem;
|
try {
|
this.removeAll();
|
|
btmArray = BtmClient.getService().getAllBtmItem(filter);
|
BtmItem[] bts = getRemainedBts(btmArray);
|
model.setRowCount(bts.length);
|
//重新设置table的Cell的可编辑性
|
model.setInitFlag(false);
|
for(int i = 0; i < bts.length; i++){
|
btmItem = bts[i];
|
this.setValueAt(new JCheckBox(), i, 0);
|
this.setValueAt(btmItem.name, i, 1);
|
this.setValueAt(btmItem.label, i, 2);
|
this.setValueAt(btmItem.fName, i, 3);
|
this.setValueAt(btmItem.revRuleName, i, 4);
|
this.setValueAt(btmItem.lifeCycle, i, 5);
|
}
|
//重新设置table的Cell的可编辑性
|
model.setInitFlag(true);
|
this.updateUI();
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
/**
|
* 获取剩余(btNameList以外的)bts
|
* @param btmArray
|
* @return
|
*/
|
private BtmItem[] getRemainedBts(BtmItem[] btmArray){
|
List<BtmItem> list = new ArrayList<BtmItem>();
|
if(btmArray == null || btmArray.length == 0){
|
return list.toArray(new BtmItem[0]);
|
}
|
if(btNameList == null || btNameList.size() == 0){
|
return btmArray;
|
}
|
for(BtmItem bt : btmArray){
|
if(!btNameList.contains(bt.name)){
|
list.add(bt);
|
}
|
}
|
return list.toArray(new BtmItem[0]);
|
}
|
}
|