iconattachmentdemo.java
来自「全面实现ilog地功能,没有使用第三方lib.」· Java 代码 · 共 149 行
JAVA
149 行
/*
* 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.network;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Random;
import javax.swing.ButtonGroup;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import twaver.AlarmSeverity;
import twaver.Link;
import twaver.Node;
import twaver.TDataBox;
import twaver.TWaverConst;
import twaver.TaskAdapter;
import twaver.TaskScheduler;
import twaver.network.TNetwork;
import twaver.network.layout.FlexionLinkLayouter;
import demo.DemoPane;
public class IconAttachmentDemo extends DemoPane implements ActionListener{
TDataBox box = new TDataBox();
TNetwork network = new TNetwork(box);
public IconAttachmentDemo(){
network.setLinkLayout(new FlexionLinkLayouter(network));
JPanel panel = new JPanel(new FlowLayout());
ButtonGroup group = new ButtonGroup();
JRadioButton button = new JRadioButton("consider transparent Area");
button.setForeground(Color.RED);
button.addActionListener(this);
group.add(button);
panel.add(button);
button = new JRadioButton("ignore transparent Area");
button.setForeground(Color.BLUE);
button.addActionListener(this);
group.add(button);
panel.add(button);
network.setTransparentAreaSelectable(true);
button.setSelected(true);
this.add(network, BorderLayout.CENTER);
this.add(panel, BorderLayout.SOUTH);
Node node1 = new Node();
box.addElement(node1);
node1.setImage("/demo/resource/logo.png");
node1.setLocation(250, 50);
node1.putClientProperty("severity", AlarmSeverity.INDETERMINATE);
Node node2 = new Node();
box.addElement(node2);
node2.setImage("/demo/resource/logo.png");
node2.setLocation(20, 150);
node2.putClientProperty("severity", AlarmSeverity.MAJOR);
Node node3 = new Node();
box.addElement(node3);
node3.setImage("/demo/resource/logo.png");
node3.setLocation(500, 150);
node3.putClientProperty("severity", AlarmSeverity.MINOR);
Node node4 = new Node();
box.addElement(node4);
node4.setImage("/demo/resource/logo.png");
node4.setLocation(250, 250);
node4.putClientProperty("severity", AlarmSeverity.WARNING);
Link link = new Link(node1, node2);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_3D, Boolean.TRUE);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_WIDTH, new Integer(6));
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_COLOR, Color.RED);
box.addElement(link);
link = new Link(node4, node3);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_3D, Boolean.TRUE);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_WIDTH, new Integer(6));
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_COLOR, Color.YELLOW);
box.addElement(link);
link = new Link(node3, node1);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_3D, Boolean.TRUE);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_WIDTH, new Integer(6));
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_COLOR, Color.BLUE);
box.addElement(link);
link = new Link(node4, node2);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_3D, Boolean.TRUE);
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_WIDTH, new Integer(6));
link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_COLOR, Color.GREEN);
box.addElement(link);
TaskScheduler.getInstance().register(new TaskAdapter(){
Random random = new Random();
public void run(long clock) {
String prefix = TWaverConst.ELEMENT_STATE_ICON_PREFIX;
Iterator it = box.iterator(Node.class);
while(it.hasNext()){
Node node = (Node)it.next();
for(int i=1; i<=6; i++){
boolean display = random.nextBoolean();
node.putClientProperty(prefix + "attachment" + i, Boolean.valueOf(display));
}
AlarmSeverity severity = (AlarmSeverity)node.getClientProperty("severity");
node.getAlarmState().addNewAlarm(severity);
node.putClientProperty(TWaverConst.PROPERTYNAME_ELEMENT_IMAGE_ALPHA, new Float(random.nextFloat()));
}
}
public int getInterval() {
return 500;
}
});
}
public void actionPerformed(ActionEvent e) {
if(((JRadioButton)e.getSource()).getText().startsWith("ignore")){
network.setTransparentAreaSelectable(true);
}else{
network.setTransparentAreaSelectable(false);
}
}
public String getTitle() {
return "Icon Attachment Demo";
}
public String getHelp() {
return "This demo shows how to use attachment icons";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?