ludc
2025-01-16 986aa62ed00bee39363bab41b4eeb8259d446efd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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]);
    }
}