alarmtabledemo.java
来自「全面实现ilog地功能,没有使用第三方lib.」· Java 代码 · 共 158 行
JAVA
158 行
/* * 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.alarm;
import java.awt.BorderLayout;
import java.awt.Component;
import java.util.Random;
import javax.swing.DefaultCellEditor;
import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import twaver.Alarm;
import twaver.AlarmProbableCause;
import twaver.AlarmSeverity;
import twaver.AlarmTrendIndication;
import twaver.Node;
import twaver.TDataBox;
import twaver.TWaverUtil;
import twaver.table.TAlarmTable;
import twaver.table.TTableColumn;
import demo.DemoPane;
public class AlarmTableDemo extends DemoPane {
private static Object[] values = AlarmProbableCause.LOW_HUMIDITY.getValues();
private static Random random = new Random();
public AlarmTableDemo() {
class Owner {
private String name = null;
private Icon icon = null;
Owner(String name, Icon icon) {
setName(name);
setIcon(icon);
}
String getName() {
return name;
}
void setName(String name) {
this.name = name;
}
Icon getIcon() {
return icon;
}
void setIcon(Icon icon) {
this.icon = icon;
}
}
TDataBox box = new TDataBox();
TAlarmTable table = new TAlarmTable(box);
table.setRowHeight(19);
add(new JScrollPane(table), BorderLayout.CENTER);
Node node = new Node("node1");
node.setName("Router-2");
box.addElement(node);
Icon peterIcon = TWaverUtil.getIcon("/demo/resource/alarm/peter.gif");
Icon maryIcon = TWaverUtil.getIcon("/demo/resource/alarm/mary.gif");
for (int i = 0; i < 5; i++) {
Alarm alarm = new Alarm("ALM00" + i);
if (i % 2 == 1) {
alarm.putClientProperty("owner", new Owner("Peter", peterIcon));
} else {
alarm.putClientProperty("owner", new Owner("Mary", maryIcon));
}
alarm.setElementID("node1");
alarm.setAcked(i % 2 == 1);
alarm.setAlarmSeverity(AlarmSeverity.getByValue( (i + 1) * 100));
alarm.setTrendIndication(AlarmTrendIndication.MORE_SEVERE);
alarm.setProbableCause(getRandomAlarmProbableCause());
box.getAlarmModel().addAlarm(alarm);
}
table.getTableModel().getColumnByName("probableCause").setPreferredWidth(200);
TTableColumn ownerColumn = new TTableColumn("owner", "Owner");
ownerColumn.setPreferredWidth(80);
ownerColumn.setEditable(true);
table.getTableModel().addColumn(ownerColumn);
ownerColumn.setRenderer(new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
JLabel label = (JLabel)super.getTableCellRendererComponent(table,
value,
isSelected,
hasFocus,
row,
column);
if (value instanceof Owner) {
Owner owner = (Owner) value;
label.setIcon(owner.getIcon());
label.setText(owner.getName());
}
return label;
}
});
JComboBox options = new JComboBox();
options.addItem(new Owner("Peter", peterIcon));
options.addItem(new Owner("Mary", maryIcon));
options.setRenderer(new DefaultListCellRenderer() {
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
super.getListCellRendererComponent(list,
value,
index,
isSelected,
cellHasFocus);
if (value instanceof Owner) {
Owner owner = (Owner) value;
this.setIcon(owner.getIcon());
this.setText(owner.getName());
}
return this;
}
});
ownerColumn.setEditor(new DefaultCellEditor(options));
}
public String getHelp() {
return "Customize alarm table component. <br>" +
"In this example, column 'owner' is editable," +
" and its editor/renderer are customized. "+
"Click this column and check it out.";
}
public String getTitle() {
return "Alarm Table Demo";
}
private AlarmProbableCause getRandomAlarmProbableCause() {
return (AlarmProbableCause) values[random.nextInt(values.length)];
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?