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 interVerList; private InterState interState; private ArrayList 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 filter = tfFilter.getText(); interVerList = InterStateManager.getInstance().getInterVerList(); for(Iterator i = interVerList.iterator(); i.hasNext();){ interState = (InterState) i.next(); ArrayList 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(); } }); } }