blob: d10902719869de4fd69bd4a3b9659f11a5bd1955 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.draw2d.graph;
import org.eclipse.draw2d.geometry.Insets;
/**
* @deprecated virtual nodes of an edge should be cast to Node.
* @author Randy Hudson
* @since 2.1.2
*/
public class VirtualNode extends Node {
/**
* The next node.
*/
public Node next;
/**
* The previous node.
*/
public Node prev;
/**
* Constructs a virtual node.
*
* @deprecated This class is for internal use only.
* @param e
* the edge
* @param i
* the row
*/
public VirtualNode(Edge e, int i) {
super(e);
incoming.add(e);
outgoing.add(e);
width = e.width;
height = 0;
rank = i;
setPadding(new Insets(0, e.padding, 0, e.padding));
}
/**
* Constructor.
*
* @param o
* object
* @param parent
* subgraph
*/
public VirtualNode(Object o, Subgraph parent) {
super(o, parent);
}
/**
* Returns the index of {@link #prev}.
*
* @return median
*/
public double medianIncoming() {
return prev.index;
}
/**
* Returns the index of {@link #next}.
*
* @return outgoing
*/
public double medianOutgoing() {
return next.index;
}
/**
* For internal use only. Returns the original edge weight multiplied by the
* omega value for the this node and the node on the previous rank.
*
* @return the weighted weight, or omega
*/
public int omega() {
Edge e = (Edge) data;
if (e.source.rank + 1 < rank && rank < e.target.rank)
return 8 * e.weight;
return 2 * e.weight;
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
if (data instanceof Edge)
return "VN[" + (((Edge) data).vNodes.indexOf(this) + 1) //$NON-NLS-1$
+ "](" + data + ")"; //$NON-NLS-1$ //$NON-NLS-2$
return super.toString();
}
}