package com.vci.client.omd.statepool.ui;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.Toolkit;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
|
import javax.swing.JButton;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTextField;
|
import javax.swing.event.DocumentEvent;
|
import javax.swing.event.DocumentListener;
|
import javax.swing.table.JTableHeader;
|
|
import org.jdesktop.swingx.JXTable;
|
import org.jdesktop.swingx.decorator.HighlighterFactory;
|
|
import com.vci.client.omd.statepool.itf.InterState;
|
import com.vci.client.omd.statepool.pubimpl.InterStateManager;
|
|
|
public class UsedToDialog extends JDialog{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 6928791524390088183L;
|
private JXTable utTable;
|
private UtTableModel utTableModel;
|
private JPanel northPanel;
|
private JScrollPane scrollPane;
|
private JTextField tfFilter;
|
private JButton sel;
|
private final int TABLE_HEADER_HEIGHT = 25;
|
private final int ROW_HEIGHT = 30;
|
private ArrayList<InterState> interVerList;
|
private InterState interState;
|
private ArrayList<String> usedList = null;
|
private String name;
|
public UsedToDialog(String name){
|
initUI();
|
this.name = name;
|
initData();
|
//addListener();
|
}
|
|
private void initUI(){
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
this.setSize(700,400);
|
setTitle("应用范围");
|
this.setModal(true);
|
this.setLocationRelativeTo(null);
|
northPanel = new JPanel();
|
scrollPane = new JScrollPane();
|
this.setLayout(new BorderLayout());
|
|
this.add(northPanel, BorderLayout.NORTH);
|
this.add(scrollPane, BorderLayout.CENTER);
|
|
tfFilter = new JTextField(20);
|
sel = new JButton("查询");
|
northPanel.add(new JLabel("来源"));
|
northPanel.add(tfFilter);
|
northPanel.add(sel);
|
//add by caill start 2015.11.24 将输入框自动过滤事件改为查询按钮点击事件
|
//给查询按钮添加点击事件
|
sel.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
initData();
|
}
|
});
|
//add by caill end
|
utTableModel = new UtTableModel();
|
utTable = new JXTable(utTableModel);
|
|
utTable.setRowHeight(ROW_HEIGHT);
|
utTable.setHorizontalScrollEnabled(true);
|
utTable.setHighlighters(HighlighterFactory.createAlternateStriping());
|
//排序后,引起其他页面的数据不显示
|
utTable.setSortable(false);
|
//设置表头高度
|
JTableHeader tableHeader = utTable.getTableHeader();
|
Dimension size = tableHeader.getPreferredSize();
|
size.height = TABLE_HEADER_HEIGHT;
|
tableHeader.setPreferredSize(size);
|
|
scrollPane.setViewportView(utTable);
|
}
|
|
public void initData(){
|
if(name == null){
|
return;
|
}
|
usedList = new ArrayList<String>();
|
String filter = tfFilter.getText();
|
interVerList = InterStateManager.getInstance().getInterVerList();
|
for(Iterator i = interVerList.iterator(); i.hasNext();){
|
interState = (InterState) i.next();
|
ArrayList<String> usedNameList = interState.getUsedNameList(name);
|
if(usedNameList == null){
|
continue;
|
}
|
for(int k = 0; k < usedNameList.size(); k++){
|
String usedName = usedNameList.get(k);
|
if(usedName.startsWith(filter)){
|
usedList.add(usedName);
|
}
|
}
|
|
}
|
|
utTableModel.setRowCount(usedList.size());
|
utTable.setEditable(true);
|
for(int i = 0; i < usedList.size(); i++){
|
utTable.setValueAt(name, i, 0);
|
utTable.setValueAt(usedList.get(i), i, 1);
|
}
|
}
|
|
private void addListener(){
|
tfFilter.getDocument().addDocumentListener(new DocumentListener() {
|
|
@Override
|
public void removeUpdate(DocumentEvent e) {
|
initData();
|
}
|
|
@Override
|
public void insertUpdate(DocumentEvent e) {
|
initData();
|
}
|
|
@Override
|
public void changedUpdate(DocumentEvent e) {
|
initData();
|
}
|
});
|
}
|
}
|