?? mainpanel.java
字號:
/* * This source code is part of TWaver 1.3.1 * * SERVA Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * Copyright 2000-2005 SERVA Software, Inc. All rights reserved. */package demo.table;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.ListSelectionModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import twaver.AlarmSeverity;
import twaver.TWaverUtil;
import twaver.table.TTable;
import twaver.table.TTableNavigator;
import twaver.table.TTableRowFilter;
public class MainPanel extends JPanel {
public MainPanel(final TTable table){
TTableNavigator navigator = new TTableNavigator(table.getTableModel(), new int[]{10, 20, 30, 100, 0});
final JTextArea textArea = new JTextArea(){
public void append(String str) {
super.append(str);
this.setCaretPosition(getDocument().getLength());
}
};
final JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
JToolBar toolbar = new JToolBar();
final Map displaySeverityMap = new HashMap();
final QueryFilter queryFilter = new QueryFilter(table);
final TTableRowFilter miscellaneousFilter = new TTableRowFilter(){
public boolean isVisible(TTable table, Vector rowData) {
if(rowData.get(2) == null){
return false;
}
if(rowData.get(7) instanceof Number){
if(((Number)rowData.get(7)).doubleValue() < slider.getValue() / 100.0){
return false;
}
}
if(rowData.get(5) instanceof AlarmSeverity){
if(!displaySeverityMap.containsKey(rowData.get(5))){
return false;
}
}
return true;
}
};
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setMinorTickSpacing(1);
slider.setMajorTickSpacing(10);
slider.setSnapToTicks(true);
slider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e) {
textArea.append("\npercent filter:" + slider.getValue() / 100.0);
table.getTableModel().publishData();
}
});
textArea.setBackground(Color.BLACK);
textArea.setForeground(Color.GREEN);
final JCheckBox checkFilter = new JCheckBox("Enable Filter");
checkFilter.setSelected(true);
checkFilter.setFont(TWaverUtil.getDefaultFont());
checkFilter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(checkFilter.isSelected()){
table.getTableModel().addRowFilter(miscellaneousFilter);
table.getTableModel().addRowFilter(queryFilter);
}else{
table.getTableModel().removeRowFilter(miscellaneousFilter);
table.getTableModel().removeRowFilter(queryFilter);
}
}
});
toolbar.add(checkFilter);
toolbar.addSeparator();
toolbar.add(queryFilter);
Iterator it = AlarmSeverity.getAllSeverity().iterator();
while(it.hasNext()){
final AlarmSeverity severity = (AlarmSeverity)it.next();
final JCheckBox check = new JCheckBox(severity.getDisplayName());
check.setSelected(true);
check.setFont(TWaverUtil.getDefaultFont());
displaySeverityMap.put(severity, null);
check.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(check.isSelected()){
displaySeverityMap.put(severity, null);
}else{
displaySeverityMap.remove(severity);
}
table.getTableModel().publishData();
}
});
check.setForeground(severity.getColor());
toolbar.add(check);
}
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.getTableModel().addRowFilter(miscellaneousFilter);
table.getTableModel().addRowFilter(queryFilter);
table.getTableModel().addTableListener(new TableListener(table, textArea));
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
PopupMenuFactory.initTablePopupMenu(table);
JPanel leftPanel = new JPanel(new BorderLayout());
leftPanel.add(navigator, BorderLayout.NORTH);
leftPanel.add(new JScrollPane(table), BorderLayout.CENTER);
leftPanel.add(slider, BorderLayout.SOUTH);
JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, leftPanel, new JScrollPane(textArea));
split.setDividerLocation(300);
split.setOneTouchExpandable(true);
this.setLayout(new BorderLayout());
this.add(toolbar, BorderLayout.NORTH);
this.add(split, BorderLayout.CENTER);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -