|
@@ -37,6 +37,13 @@ public class Compaction implements AlgorithmStep{
|
|
|
actions = new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
+ public double calcSpacing()
|
|
|
+ {
|
|
|
+ double max = 0;
|
|
|
+ for( LayeredGraphNode n : graph.getContainedNodes() )
|
|
|
+ max = Math.max( max, n.getWidth() );
|
|
|
+ return max + 50;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public StepStatus forwardStep() {
|
|
@@ -149,9 +156,9 @@ public class Compaction implements AlgorithmStep{
|
|
|
boolean oldDef = !sf.v.isXUndefined();
|
|
|
sf.v.setSelected();
|
|
|
if( sf.v.getSink() != sf.u.getSink() )
|
|
|
- sf.u.getSink().setShift( Math.min( sf.u.getSink().getShift(), sf.v.getX() - sf.u.getX() - 50 ) );
|
|
|
+ sf.u.getSink().setShift( Math.min( sf.u.getSink().getShift(), sf.v.getX() - sf.u.getX() - calcSpacing() ) );
|
|
|
else
|
|
|
- sf.v.setX( Math.max( sf.v.getX(), sf.u.getX() + 50 ), true );
|
|
|
+ sf.v.setX( Math.max( sf.v.getX(), sf.u.getX() + calcSpacing() ), true );
|
|
|
LayeredGraphNode oldW = sf.w;
|
|
|
sf.w = sf.w.getAlignedTo();
|
|
|
if( sf.w == sf.v )
|