stateui.java

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

JAVA
62
字号
/*
 * 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.customui;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;

import twaver.ImageManager;
import twaver.Node;
import twaver.network.TNetwork;
import twaver.network.ui.NodeUI;

public class StateUI extends NodeUI {
    public StateUI(TNetwork network, final Node node) {
        super(network, node);
    }

    public void paintBody() {
        super.paintBody();
        Graphics2D g2 = (Graphics2D)this.getNetwork().getCanvasGraphics();
        Boolean state = (Boolean)this.getElement().getClientProperty("equipment.state");
        if (state != null && state.booleanValue()) {
            g2.setColor(Color.darkGray);
            Shape shape = ImageManager.getInstance().getImageShape(getNode().getImageURL());
            Point location = getNode().getLocation();
            AffineTransform at = AffineTransform.getTranslateInstance(location.getX(), location.getY());
            shape = at.createTransformedShape(shape);
            g2.fill(shape);
        } else {
            Integer value = (Integer)this.getElement().getClientProperty("equipment.value");
            if (value != null) {
                if (value.intValue() > 15) {
                    g2.setColor(Color.RED);
                } else {
                    g2.setColor(Color.GREEN);
                }
                Point p = this.getElement().getLocation();
                double r = 5;
                double y = 61;
                double x = 46;
                double xOffset = 10;
                double yOffset = -2.6;
                g2.fill(new Ellipse2D.Double(p.x + x, p.y + y, r, r));
                g2.fill(new Ellipse2D.Double(p.x + x + 1 * xOffset, p.y + y + 1 * yOffset, r, r));
                g2.fill(new Ellipse2D.Double(p.x + x + 2 * xOffset, p.y + y + 2 * yOffset, r, r));
                g2.fill(new Ellipse2D.Double(p.x + x + 3 * xOffset, p.y + y + 3 * yOffset, r, r));
                g2.fill(new Ellipse2D.Double(p.x + x + 4 * xOffset, p.y + y + 4 * yOffset, r, r));
                g2.fill(new Ellipse2D.Double(p.x + x + 5 * xOffset, p.y + y + 5 * yOffset, r, r));
            }
        }
    }
}

⌨️ 快捷键说明

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