nodefigure.java

来自「一个eclipse插件源代码。用于web开发」· Java 代码 · 共 161 行

JAVA
161
字号
/*
 * $Header: /home/cvs/WEBPUMP2.0/WebPumpIDE_Src/WebPumpIDE/src/com/webpump/ui/gefmodule/figure/NodeFigure.java,v 1.1.1.1 2004/07/01 09:07:48 wang_j Exp $
 * $Revision: 1.1.1.1 $
 * $Date: 2004/07/01 09:07:48 $
 *
 * ====================================================================
 *
 * The NanJing HopeRun(IT-FOREST) Software License, Version 2.0.0
 *
 * Copyright 2003-2004 by NanJing HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and
 *                        IT Forest Corporation
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
 * You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into with
 * HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
 */

package com.webpump.ui.gefmodule.figure;

import org.eclipse.draw2d.*;
import org.eclipse.draw2d.geometry.*;

import java.util.*;

/**
 * Class for NodeFigure
 * 
 * @author shi_l
 * @version 2.0.0 2004-5-30
 */
public class NodeFigure extends Figure {

	/**connection anchors*/
	protected Hashtable connectionAnchors = new Hashtable(7);

	/**input connection anchors*/
	protected Vector inputConnectionAnchors = new Vector(2, 2);

	/**output connection anchors*/
	protected Vector outputConnectionAnchors = new Vector(2, 2);

	/**
	 * get connection anchor at the given point
	 * @param p Point
	 * @return ConnctionAnchor
	 */
	public ConnectionAnchor connectionAnchorAt(Point p) {
		ConnectionAnchor closest = null;
		long min = Long.MAX_VALUE;

		Enumeration e = getSourceConnectionAnchors().elements();
		while (e.hasMoreElements()) {
			ConnectionAnchor c = (ConnectionAnchor) e.nextElement();
			Point p2 = c.getLocation(null);
			long d = p.getDistance2(p2);
			if (d < min) {
				min = d;
				closest = c;
			}
		}
		e = getTargetConnectionAnchors().elements();
		while (e.hasMoreElements()) {
			ConnectionAnchor c = (ConnectionAnchor) e.nextElement();
			Point p2 = c.getLocation(null);
			long d = p.getDistance2(p2);
			if (d < min) {
				min = d;
				closest = c;
			}
		}
		return closest;
	}

	/**
	 * get connection anchor
	 * @param terminal String
	 * @return ConnectionAnchor
	 */
	public ConnectionAnchor getConnectionAnchor(String terminal) {
		return (ConnectionAnchor) connectionAnchors.get(terminal);
	}

	/**
	 * get connection anchor name
	 * @param c ConnectionAnchor
	 * @return anchor name String
	 */
	public String getConnectionAnchorName(ConnectionAnchor c) {
		Enumeration enum = connectionAnchors.keys();
		String key;
		while (enum.hasMoreElements()) {
			key = (String) enum.nextElement();
			if (connectionAnchors.get(key).equals(c))
				return key;
		}
		return null;
	}

	/**
	 * get source connection anchor at the given point
	 * @param p Point
	 * @return ConnectionAnchor
	 */
	public ConnectionAnchor getSourceConnectionAnchorAt(Point p) {
		ConnectionAnchor closest = null;
		long min = Long.MAX_VALUE;

		Enumeration e = getSourceConnectionAnchors().elements();
		while (e.hasMoreElements()) {
			ConnectionAnchor c = (ConnectionAnchor) e.nextElement();
			Point p2 = c.getLocation(null);
			long d = p.getDistance2(p2);
			if (d < min) {
				min = d;
				closest = c;
			}
		}
		return closest;
	}

	/**
	 * get source connection anchors
	 * @return output connection anchors Vector
	 */
	public Vector getSourceConnectionAnchors() {
		return outputConnectionAnchors;
	}

	/**
	 * get source connection anchor at the given point
	 * @param p Point
	 * @return ConnectionAnchor
	 */
	public ConnectionAnchor getTargetConnectionAnchorAt(Point p) {
		ConnectionAnchor closest = null;
		long min = Long.MAX_VALUE;

		Enumeration e = getTargetConnectionAnchors().elements();
		while (e.hasMoreElements()) {
			ConnectionAnchor c = (ConnectionAnchor) e.nextElement();
			Point p2 = c.getLocation(null);
			long d = p.getDistance2(p2);
			if (d < min) {
				min = d;
				closest = c;
			}
		}
		return closest;
	}

	/**
	 * get target connection anchors
	 * @return input connection anchors Vector
	 */
	public Vector getTargetConnectionAnchors() {
		return inputConnectionAnchors;
	}
}

⌨️ 快捷键说明

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