package com.vci.client.oq.ui;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.Toolkit;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.swing.JDialog;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.table.JTableHeader;
|
|
import org.jdesktop.swingx.JXTable;
|
import org.jdesktop.swingx.decorator.HighlighterFactory;
|
|
import com.vci.corba.omd.data.AttributeValue;
|
import com.vci.corba.omd.data.BusinessObject;
|
import com.vci.corba.omd.data.LinkObject;
|
|
public class QueryResultDialog extends JDialog{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 9126978154035466868L;
|
|
private JXTable qrTable ;
|
private QResultTableModel tableModel;
|
private JPanel northPanel;
|
private JPanel centerPanel;
|
private JPanel southPanel;
|
private JScrollPane scrollPane;
|
private BusinessObject[] boResult;
|
private boolean boFlag = false;
|
private LinkObject[] loResult;
|
private boolean loFlag = false;
|
private List<String> clauseList;
|
private final int TABLE_HEADER_HEIGHT = 25;
|
private final int ROW_HEIGHT = 30;
|
|
public QueryResultDialog(BusinessObject[] boResult, List<String> clauseList){
|
this.boResult = boResult;
|
this.boFlag = true;
|
if(clauseList.contains("*")){
|
clauseList = new ArrayList<String>();
|
clauseList.add("OID");
|
clauseList.add("REVISIONOID");
|
clauseList.add("NAMEOID");
|
clauseList.add("BTMNAME");
|
}
|
this.clauseList = clauseList;
|
initUI();
|
initTable();
|
}
|
|
public QueryResultDialog(LinkObject[] ltResult, List<String> clauseList){
|
this.loResult = ltResult;
|
this.loFlag = true;
|
if(clauseList.contains("*")){
|
clauseList = new ArrayList<String>();
|
clauseList.add("OID");
|
clauseList.add("CREATOR");
|
clauseList.add("CREATETIME");
|
}
|
this.clauseList = clauseList;
|
initUI();
|
initTable();
|
}
|
|
private void initUI(){
|
this.setTitle("查询结果");
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
this.setSize(screenSize.width/2, screenSize.height/2);
|
this.setModal(true);
|
this.setLocationRelativeTo(null);
|
this.setResizable(false);
|
|
this.setLayout(new BorderLayout(0, 0));
|
northPanel = new JPanel();
|
centerPanel = new JPanel();
|
southPanel = new JPanel();
|
|
this.add(northPanel, BorderLayout.NORTH);
|
this.add(centerPanel, BorderLayout.CENTER);
|
this.add(southPanel, BorderLayout.SOUTH);
|
|
centerPanel.setLayout(new BorderLayout(5, 5));
|
scrollPane = new JScrollPane();
|
centerPanel.add(scrollPane, BorderLayout.CENTER);
|
tableModel = new QResultTableModel();
|
qrTable = new JXTable(tableModel);
|
qrTable.setRowHeight(ROW_HEIGHT);
|
qrTable.setHorizontalScrollEnabled(true);
|
qrTable.setHighlighters(HighlighterFactory.createAlternateStriping());
|
//排序后,引起其他页面的数据不显示
|
qrTable.setSortable(true);
|
//设置表头高度
|
JTableHeader tableHeader = qrTable.getTableHeader();
|
Dimension size = tableHeader.getPreferredSize();
|
size.height = TABLE_HEADER_HEIGHT;
|
tableHeader.setPreferredSize(size);
|
scrollPane.setViewportView(qrTable);
|
}
|
|
private void initTable(){
|
qrTable.removeAll();
|
tableModel.setColumnCount(clauseList.size());
|
tableModel.setColumnIdentifiers(clauseList.toArray(new String[0]));
|
if(boFlag){
|
tableModel.setRowCount(boResult.length);
|
qrTable.setEditable(true);
|
for(int i = 0; i < boResult.length; i++){
|
BusinessObject bo = boResult[i];
|
AttributeValue[] attList = bo.hisAttrValList;
|
for(int j = 0; j < clauseList.size(); j++){
|
qrTable.setValueAt(attList[j].attrVal, i, j);
|
}
|
}
|
qrTable.setEditable(false);
|
}else if(loFlag){
|
tableModel.setRowCount(loResult.length);
|
qrTable.setEditable(true);
|
for(int i = 0; i < loResult.length; i++){
|
LinkObject lo = loResult[i];
|
AttributeValue[] attList = lo.hisAttrValList;
|
for(int j = 0; j < clauseList.size(); j++){
|
qrTable.setValueAt(attList[j].attrVal, i, j);
|
}
|
}
|
qrTable.setEditable(false);
|
}
|
qrTable.updateUI();
|
}
|
}
|