gifimagedemo.java

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

JAVA
132
字号
/*
 * 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.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

import twaver.AlarmSeverity;
import twaver.FlexionLink;
import twaver.Link;
import twaver.Node;
import twaver.SubNetwork;
import twaver.TDataBox;
import twaver.TWaverConst;
import twaver.TaskAdapter;
import twaver.TaskScheduler;
import twaver.background.ColorBackground;
import twaver.network.TNetwork;
import twaver.network.ui.IconAttachmentHolder;
import demo.DemoPane;

public class GIFImageDemo extends DemoPane implements ActionListener{
    TDataBox box = new TDataBox();
    TNetwork network = new TNetwork(box);

    public GIFImageDemo() {
		JPanel panel = new JPanel(new FlowLayout());
		ButtonGroup group = new ButtonGroup();
		
		JRadioButton button = new JRadioButton("enable mouse wheel zoom");
		button.setForeground(Color.RED);
		button.addActionListener(this);
		group.add(button);
		panel.add(button);
		
		button = new JRadioButton("disable mouse wheel zoom");
		button.setForeground(Color.BLUE);
		button.addActionListener(this);
		button.setSelected(true);
		group.add(button);
		panel.add(button);
		
		this.add(panel, BorderLayout.SOUTH);
        this.add(network, BorderLayout.CENTER);

        network.setNetworkBackground(new ColorBackground(Color.white));

        Node printer = new Node();
        printer.setLocation(100, 80);
        printer.getAlarmState().addNewAlarm(AlarmSeverity.CRITICAL);
        printer.setImage("/demo/resource/gif/printer.gif");
        printer.setName("Printer");
        printer.putClientProperty("label.color", Color.green.darker());
        printer.putClientProperty("label.font", new Font("Forte", Font.BOLD, 20));
        network.getDataBox().addElement(printer);

        final Node computer = new Node();
        computer.setLocation(300, 100);
        computer.setImage("/demo/resource/gif/computer.gif");
        computer.setName("Computer");
        computer.putClientProperty("label.color", Color.blue.darker());
        computer.putClientProperty("label.font", new Font("Forte", Font.BOLD, 20));
        network.getDataBox().addElement(computer);

        final Node man = new Node();
        man.setLocation(100, 200);
        man.setImage("/demo/resource/gif/man.gif");
        man.setName("Ooh, come on ...");
        man.putClientProperty("label.color", Color.black);
        man.putClientProperty("label.font", new Font("Forte", Font.PLAIN, 15));
        network.getDataBox().addElement(man);

        Link link1 = new FlexionLink(computer, printer);
        link1.putClientProperty("link.width", new Integer(6));
        link1.putClientProperty("link.color", Color.white);
        link1.putClientProperty("link.outline.color", Color.black);
        link1.putClientProperty("link.flowing", Boolean.TRUE);
        link1.putClientProperty("link.flowing.width", new Integer(5));
        link1.putClientProperty("link.flowing.color", Color.black);
        network.getDataBox().addElement(link1);

        Link link2 = new twaver.OrthogonalLink(computer, man);
        link2.putClientProperty("link.width", new Integer(8));
        link2.putClientProperty("link.color", Color.orange);
        link2.putClientProperty("link.outline.color", Color.red.brighter());
        link2.putClientProperty("link.flowing", Boolean.TRUE);
        link2.putClientProperty("link.flowing.converse", Boolean.TRUE);
        link2.putClientProperty("link.flowing.width", new Integer(8));
        link2.putClientProperty("link.flowing.color", Color.red);
        network.getDataBox().addElement(link2);
        
        IconAttachmentHolder.addAttachment("fireworks", "/demo/resource/gif/fireworks.gif");
        String[] twavers = new String[]{"T", "W", "A", "V", "E", "R"}; 
        for(int i=0; i<twavers.length; i++){
        	IconAttachmentHolder.addAttachment(twavers[i], "/demo/resource/gif/" + twavers[i] + ".gif");
        	man.putClientProperty(TWaverConst.ELEMENT_STATE_ICON_PREFIX + twavers[i], Boolean.TRUE);
        }
        
        computer.putClientProperty(TWaverConst.ELEMENT_STATE_ICON_PREFIX + "fireworks", Boolean.valueOf(true));
      
    }

	public void actionPerformed(ActionEvent e) {
		if(((JRadioButton)e.getSource()).getText().startsWith("enable")){
			network.setEnableMouseWheelToZoom(true);
		}else{
			network.setEnableMouseWheelToZoom(false);
		}
	}
    
    public String getHelp() {
        return "This demo creates simple network elements with animate gif pictures.";
    }

    public String getTitle() {
        return "GIF Image Demo";
    }
}

⌨️ 快捷键说明

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