package pipe.gui.reachability; import net.sourceforge.jpowergraph.Edge; import net.sourceforge.jpowergraph.Node; /** * Creates an edge with with text capabilities * <p> * To be used instead of {@link net.sourceforge.jpowergraph.defaults.DefaultEdge} and {@link net.sourceforge.jpowergraph.defaults.TextEdge} * because they consider two edges equal if: * from1 = from2 and to1 = to2 OR * from1 = to2 and to1 = from2 * </p><p> * The second behaviour is not correct in directed edges * </p> */ public class DirectedTextEdge implements Edge { private final String text; /** * The node from the edge. */ protected Node from; /** * The node to the edge. */ protected Node to; /** * Creates an instance of this class. * * @param from the node from * @param to the node to * @param text the edge text */ public DirectedTextEdge(Node from, Node to, String text) { this.from = from; this.to = to; this.text = text; } /** * Returns the node from which this edge points. * * @return the node from which this edge points */ @Override public Node getFrom() { return from; } /** * Returns the node from which to edge points. * * @return the node to which this edge points */ @Override public Node getTo() { return to; } /** * Sets the node from which to edge points. * * @param to node to which this edge points */ public void setTo(Node to) { this.to = to; } /** * Returns the label of this node. * * @return the label of the node */ @Override public String getLabels() { return toString(); } /** * Returns the length of this edge. * * @return the ledge of the edge */ @Override public double getLength() { return 40; } /** * Sets the node from which this edge points. * * @param from node from which this edge points */ public void setFrom(Node from) { this.from = from; } /** * * @return text to display on edge */ public String getText() { return text; } }