12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package model;
- import java.awt.Point;
- import java.util.ArrayList;
- import org.eclipse.elk.graph.ElkEdge;
- import algorithms.animated.bk.ExtremalLayoutCalc.LayoutType;
- /**
- * Ein Interface, welches die Methoden einer Kante aus einem gelayerten Graphen beschreibt
- * @author kolja
- *
- */
- public interface LayeredGraphEdge {
- /**
- * @return Gibt die originale Kante des Elk Graphen zur�ck
- */
- ElkEdge getOriginalEdge();
-
-
- public boolean isConflicted( LayoutType layout );
- public ArrayList<LayeredGraphEdge> calcConflictedEdges();
- public void setConflicted( boolean conflicted, LayoutType layout );
- /**
- * Entfernt diese Kante vom Graphen
- */
- void remove();
- /**
- * Gibt eine Liste mit Knoten zur�ck, von welchen die Kante beginnt
- * @return Liste mit Startknoten
- */
- ArrayList< LayeredGraphNode > getSources();
- /**
- * Gibt eine Liste mit Knoten zur�ck, bei welchen die Kante endet
- * @return Liste mit Endknoten
- */
- ArrayList< LayeredGraphNode > getTargets();
- /**
- * Pr�ft, ob die Kante �ber mehrere Layer hinweg geht
- * @return true, falls die Kante �ber mehrere Layer hinweg geht
- */
- boolean isCrossLayerEdge();
- /**
- * F�r jeden Layer �ber den die Kante geht wird ein Dummy Node erzeugt.
- * Diese werden durch Dummy Kanten verbunden, welche diese Kante ersetzen.
- * Die Kante wird automatisch aus dem Graphen entfernt
- */
- void replaceByDummyNodes();
- /**
- * Dreht die Kante um, indem die Startknoten mit den Endknoten getauscht werden
- */
- void reverse();
-
- void setStartPoint( int x, int y, LayoutType layout );
- void setEndPoint( int x, int y, LayoutType layout );
- void addBindPoint( int x, int y, LayoutType layout );
- ArrayList<Point> getLinePoints( LayoutType layout );
- /**
- * Pr�ft, ob die Kante umgedreht wurde
- * @return true, falls die Kante umgedreht wurde
- */
- boolean isReversedEdge();
- /**
- * Pr�ft, ob die Kante eine Dummy Kante ist (also ob sie von einem Dummy Knoten startet oder zu einem DummyKnoten hinf�hrt)
- * @return true, falls die Kante eine Dummy Kante ist
- */
- boolean isDummyEdge();
- /**
- * Ermittelt, welche f�r welche originale Kante diese Kante als Dummykante eingesetzt wurd
- * und entfernt all die Dummynodes und Dummykanten wieder. Anschlie�end wird die alte Kante wieder zum Graphen hinzugef�gt
- */
- void removeDummyNodes();
- /**
- * Legt fest, dass es sich bei dieser Kante um eine Dummykante handelt
- */
- void setDummyEdge();
- /**
- * Legt fest, dass es sich bei dieser Kante um eine umgedrehte Kante handelt
- */
- void setReversedEdge();
- /**
- * Legt den Graphen fest, zu dem diese Kante geh�rt
- * @param graph Der Graph, zu dem die Kante geh�rt
- */
- void setGraph( LayeredGraphNode graph );
- }
|