subnetworkdemo.java

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

JAVA
80
字号
/*
 * 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.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import java.io.IOException;

import twaver.PolySubNetwork;
import twaver.SubNetwork;
import twaver.TDataBox;
import twaver.TWaverConst;
import twaver.background.ImageBackground;
import twaver.background.TextureBackground;
import twaver.network.TNetwork;
import demo.DemoPane;

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

    public SubNetworkDemo() {
        this.add(network, BorderLayout.CENTER);

        network.setNetworkBackground(new ImageBackground("/demo/resource/europe.gif"));

        //create subnetwork by API.
        Ellipse2D ellipse = new Ellipse2D.Float(100, 100, 200, 100);
        PolySubNetwork subnetwork = new PolySubNetwork(ellipse);
        subnetwork.setLocation(100, 100);
        subnetwork.setName("Double click me to drill down.");
        subnetwork.putClientProperty(TWaverConst.PROPERTYNAME_POLY_OUTLINE_COLOR, Color.orange.darker());
        subnetwork.putClientProperty(TWaverConst.PROPERTYNAME_LABEL_FONT, new Font("Forte", Font.BOLD, 20));
        subnetwork.putClientProperty(TWaverConst.PROPERTYNAME_LABEL_COLOR, Color.orange.darker());
        subnetwork.setBackground(new ImageBackground("/demo/resource/usa.gif"));
        box.addElement(subnetwork);
        //load subnetwork from XML.
        try {
            box.parse("/demo/resource/usa.xml", subnetwork);
            SubNetwork child = (SubNetwork) subnetwork.getChildren().get(0);
            child.setName("<html><center>Click me to drill down.<br>" +
                          "Or click blank area to drill up.</center></html>");
            child.putClientProperty(TWaverConst.PROPERTYNAME_LABEL_FONT, new Font("Arial", Font.BOLD, 20));
            child.putClientProperty(TWaverConst.PROPERTYNAME_LABEL_COLOR, Color.white);
            child.putClientProperty(TWaverConst.PROPERTYNAME_LABEL_YOFFSET, new Integer( -200));
            child.putClientProperty(TWaverConst.PROPERTYNAME_LABEL_BORDER, Boolean.TRUE);
            child.putClientProperty(TWaverConst.PROPERTYNAME_POLY_OUTLINE_COLOR, Color.magenta.darker());
            child.setBackground(new TextureBackground("/demo/resource/texture.jpg") {
                public void paint(Graphics g, double zoom, Rectangle viewportRect) {
                    super.paint(g, zoom, viewportRect);
                    g.setColor(Color.red);
                    g.setFont(new Font("Dialog", Font.ITALIC, 20));
                    g.drawString("Nothing here. Let's double click to go back.", 10, 100);
                }
            });
        }
        catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public String getTitle() {
        return "Subnetwork Demo";
    }

    public String getHelp() {
        return "This demo creates subnetwork object with customized shape." +
            " You can double click the network object to drill down.";
    }
}

⌨️ 快捷键说明

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