routtracedemo.java

来自「全面实现ilog地功能,没有使用第三方lib.」· Java 代码 · 共 80 行

JAVA
80
字号
package demo.network;

import java.awt.BorderLayout;
import java.awt.Color;
import java.io.IOException;

import twaver.AlarmSeverity;
import twaver.FlexionLink;
import twaver.Link;
import twaver.Node;
import twaver.TDataBox;
import twaver.TWaverConst;
import twaver.base.LinkType;
import twaver.network.TNetwork;
import demo.DemoPane;

public class RoutTraceDemo extends DemoPane {
    TDataBox box = new TDataBox();
    TNetwork network = new TNetwork(box);

    public RoutTraceDemo() {
        initRoute1();
        initRoute2();
        this.add(network, BorderLayout.CENTER);
    }

    private void initRoute1() {
        int count = 8;
        for (int i = 0; i < count; i++) {
            Node node = new Node("Node" + i);
            node.setName(node.getID().toString());
            if (i == 0 || i == count - 1) {
                node.setImage("/demo/resource/path/pathNode1.png");
                node.setLocation(20 + i * 100, 56);
            } else {
                node.setImage("/demo/resource/path/pathNode2.png");
                node.setLocation(20 + i * 100, 60);
            }
            if (i % 2 == 1) {
                node.setLocation(node.getLocation().x, node.getLocation().y + 20);
            }
            if (i == 5) {
                node.getAlarmState().addNewAlarm(AlarmSeverity.MINOR);
            }
            box.addElement(node);
        }
        for (int i = 1; i < count; i++) {
            Node fromNode = (Node) box.getElementByID("Node" + (i - 1));
            Node toNode = (Node) box.getElementByID("Node" + i);
            Link link = new FlexionLink("Link" + i, fromNode, toNode);
            link.setType(LinkType.FIBER);
            link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_WIDTH, new Integer(6));
            link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_COLOR, Color.cyan.darker());
            link.putClientProperty(TWaverConst.PROPERTYNAME_LINK_3D, Boolean.TRUE);
            box.addElement(link);
            if (i == 2) {
                link.putClientProperty("link.dash", Boolean.valueOf(true));
                link.getAlarmState().addNewAlarm(AlarmSeverity.CRITICAL);
            }
        }
    }

    private void initRoute2() {
        try {
            box.parse("/demo/resource/path/path.xml");
        }
        catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public String getTitle() {
        return "Route Trace Demo";
    }

    public String getHelp() {
        return "This demo creates network to show the trace of route path.";
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?