bibliothek.gui.dock.station.split
Class SplitSpanStrategy

java.lang.Object
  extended by bibliothek.gui.dock.station.split.SplitSpanStrategy

public class SplitSpanStrategy
extends Object

This class is responsible for accessing and updating all Spans of a SplitDockStation.

Author:
Benjamin Sigg

Constructor Summary
SplitSpanStrategy(SplitDockStation station)
          Creates a new strategy
 
Method Summary
 Span[] createSpans(SpanSplitNode node)
          Creates four Spans, one for each side of leaf.
 StationSpanFactoryValue getFactory()
          Gets the factory which is responsible for creating new Spans.
 Span[] getSpans(PutInfo put)
          Gets the Spans that are used when put is active.
 Rectangle modifyBounds(Rectangle bounds, SpanSplitNode node)
          Creates a new Rectangle within bounds, using spans to create some insets.
 int putToPosition(PutInfo.Put put)
          Tells the index of the Span at side put.
 void setController(DockController controller)
          Sets the DockController which is used by the SplitDockStation.
 void setPut(PutInfo info)
          Mutates the Spans such that info shows up.
 void unsetPut()
          Immediatelly resets all Spans to have a size of 0.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SplitSpanStrategy

public SplitSpanStrategy(SplitDockStation station)
Creates a new strategy

Parameters:
station - the owner of this strategy, not null
Method Detail

setPut

public void setPut(PutInfo info)
Mutates the Spans such that info shows up.

Parameters:
info - the current drop information or null

putToPosition

public int putToPosition(PutInfo.Put put)
Tells the index of the Span at side put.

Parameters:
put - one of the non-combining puts
Returns:
the index of the span
Throws:
IllegalArgumentException - if put does not desribe one of the sides of a SplitNode

getSpans

public Span[] getSpans(PutInfo put)
Gets the Spans that are used when put is active.

Parameters:
put - the drag and drop operation which may be active
Returns:
the Spans that would expand if put is active, can be null

unsetPut

public void unsetPut()
Immediatelly resets all Spans to have a size of 0.


getFactory

public StationSpanFactoryValue getFactory()
Gets the factory which is responsible for creating new Spans.

Returns:
the factory

setController

public void setController(DockController controller)
Sets the DockController which is used by the SplitDockStation.

Parameters:
controller - the controller in whose realm this strategy works

createSpans

public Span[] createSpans(SpanSplitNode node)
Creates four Spans, one for each side of leaf.

Parameters:
node - the node which requires Spans
Returns:
the new set of Spans or null

modifyBounds

public Rectangle modifyBounds(Rectangle bounds,
                              SpanSplitNode node)
Creates a new Rectangle within bounds, using spans to create some insets.

Parameters:
bounds - the boundaries to shrink
node - the node to evaluate
Returns:
the smaller boundaries