animationdemo.java
来自「全面实现ilog地功能,没有使用第三方lib.」· Java 代码 · 共 168 行
JAVA
168 行
/* * 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.Color;import java.awt.GridLayout;import java.util.Iterator;import java.util.Random;import twaver.AlarmSeverity;import twaver.AnimatingRuler;import twaver.Element;import twaver.Link;import twaver.Node;import twaver.TDataBox;import twaver.TUIManager;import twaver.TWaverConst;import twaver.TWaverUtil;import twaver.TaskAdapter;import twaver.TaskScheduler;import twaver.background.TextureBackground;import twaver.network.TNetwork;import twaver.network.ui.ElementUI;import demo.DemoPane;
public class AnimationDemo extends DemoPane {
final Node finalNode;
TDataBox box = new TDataBox();
TNetwork network1 = new TNetwork(box);
TNetwork network2 = new TNetwork(box);
TNetwork network3 = new TNetwork(box);
TNetwork network4 = new TNetwork(box);
class CustomAnimatingRuler implements AnimatingRuler{
public boolean interested(TNetwork network, Element element, ElementUI ui) {
// don't blink at any condition
if(network == network1){
return false;
}
// blink when element have new alarm and element is visible
if(network == network2){
AlarmSeverity severity = element.getAlarmState().getHighestNewAlarmSeverity();
if(severity != null){
if(network.getCanvas().isVisible() && network.isVisible(element)){
return true;
}
}
return false;
}
// blink when element's new alarm severity is more urgent than
// warning level and element is visible
if(network == network3){
AlarmSeverity severity = element.getAlarmState().getHighestNewAlarmSeverity();
if(severity != null && severity.getValue() >= AlarmSeverity.VALUE_MINOR){
if(network.getCanvas().isVisible() && network.isVisible(element)){
return true;
}
}
return false;
}
// blink always except final node
if(network == network4){
if(finalNode != element){
return true;
}
return false;
}
return false;
}
}
public AnimationDemo() {
TUIManager.setAnimatingRuler(new CustomAnimatingRuler());
TUIManager.registerDefault(TWaverConst.PROPERTYNAME_ANIMATING_BLINK_INTERVAL, new Integer(500));
network1.setNetworkBackground(new TextureBackground("/demo/resource/background/DefaultTexture.jpg"));
network2.setNetworkBackground(new TextureBackground("/demo/resource/background/DefaultTexture.jpg"));
network3.setNetworkBackground(new TextureBackground("/demo/resource/background/DefaultTexture.jpg"));
network4.setNetworkBackground(new TextureBackground("/demo/resource/background/DefaultTexture.jpg"));
this.setLayout(new GridLayout(4, 1));
this.add(network1, null);
this.add(network2, null);
this.add(network3, null);
this.add(network4, null);
Iterator it = AlarmSeverity.getAllSeverity().iterator();
int x = 80;
Node node = null;
int i = 0;
while(it.hasNext()){
i++;
Node lastNode = node;
// add node
AlarmSeverity severity = (AlarmSeverity)it.next();
node = new Node();
node.setName(TWaverUtil.getString("Alarm.Severity." + severity.getName()));
node.setLocation(x, 50);
node.getAlarmState().addNewAlarm(severity);
box.addElement(node);
// custom blink interval
if(severity.getValue() > 0){
network4.getRenderer().getElementUI(node).setInterval(500 + i * 200);
}
// add link
if(lastNode != null){
Link link = new Link(lastNode, node);
link.getAlarmState().addNewAlarm(severity);
box.addElement(link);
// custom blink interval
if(severity.getValue() > 0){
network4.getRenderer().getElementUI(link).setInterval(500 + i * 200);
}
}
lastNode = node;
x += 120;
}
//simulate the status change event, change its body and outline color.
finalNode = node;
TaskScheduler.getInstance().register(new TaskAdapter() {
Random random = new Random();
public int getInterval() {
return 500;
}
public void run(long long0) {
finalNode.putClientProperty(
TWaverConst.PROPERTYNAME_ELEMENT_BODY_COLOR,
new Color(random.nextInt(255),
random.nextInt(255),
random.nextInt(255),
random.nextInt(255)));
finalNode.putClientProperty(
TWaverConst.PROPERTYNAME_ELEMENT_OUTLINE_COLOR,
new Color(random.nextInt(255),
random.nextInt(255),
random.nextInt(255)));
finalNode.putClientProperty(
TWaverConst.PROPERTYNAME_DRAW_IMAGE_SHAPE,
new Boolean(random.nextBoolean())
);
}
});
}
public String getTitle() {
return "Custom Animation Ruler";
}
public String getHelp() {
return "This demo creates four networks, each one has independent animating ruler.";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?