pamScrollSystem
Class RealTimeScrollManager

java.lang.Object
  extended by pamScrollSystem.AbstractScrollManager
      extended by pamScrollSystem.RealTimeScrollManager

public class RealTimeScrollManager
extends AbstractScrollManager


Field Summary
 
Fields inherited from class pamScrollSystem.AbstractScrollManager
pamScrollers
 
Constructor Summary
RealTimeScrollManager()
           
 
Method Summary
 void centreDataAt(PamDataBlock dataBlock, long menuMouseTime)
          Centre all data in all data blocks at the given time
 long checkGapPos(AbstractPamScroller abstractPamScroller, long oldMin, long oldMax, long newMin, long newMax, int i)
          Check to see whether or not we are scrolling into a data gap.
 long checkMaximumTime(long requestedTime)
          Check the maximum time requested by a scroll bar doesn't go beyond the end of the data
 long checkMinimumTime(long requestedTime)
          Check the minimum time requested by a scroll bar doesn't go below the start of the data
 void moveInnerScroller(AbstractPamScroller scroller, long newValue)
          Move the scroll bar component of a scroller.
 void moveOuterScroller(AbstractPamScroller scroller, long newMin, long newMax)
          Move the data load component of a scroller.
 void notifyModelChanged(int changeType)
           
 void reLoad()
          Command telling manager to reload it's data.
 void startDataAt(PamDataBlock dataBlock, long menuMouseTime)
          Start all data in all data blocks at the given time
 
Methods inherited from class pamScrollSystem.AbstractScrollManager
addPamScroller, coupleScroller, getScrollManager, getStandardOptionsMenu, isInGap, removePamScroller, uncoupleScroller
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RealTimeScrollManager

public RealTimeScrollManager()
Method Detail

checkMaximumTime

public long checkMaximumTime(long requestedTime)
Description copied from class: AbstractScrollManager
Check the maximum time requested by a scroll bar doesn't go beyond the end of the data

Specified by:
checkMaximumTime in class AbstractScrollManager
Parameters:
requestedTime - requested time in millis.
Returns:
the minimum of the requested time and the actual end time of the data

checkMinimumTime

public long checkMinimumTime(long requestedTime)
Description copied from class: AbstractScrollManager
Check the minimum time requested by a scroll bar doesn't go below the start of the data

Specified by:
checkMinimumTime in class AbstractScrollManager
Returns:
the maximum of the requested time and the actual start time of the data

moveInnerScroller

public void moveInnerScroller(AbstractPamScroller scroller,
                              long newValue)
Description copied from class: AbstractScrollManager
Move the scroll bar component of a scroller. This should not cause the reloading of any data, but other scroll bars should be notified of any changes.

Specified by:
moveInnerScroller in class AbstractScrollManager
Parameters:
scroller - scroller that moved
newValue - new value (time in milliseconds).

moveOuterScroller

public void moveOuterScroller(AbstractPamScroller scroller,
                              long newMin,
                              long newMax)
Description copied from class: AbstractScrollManager
Move the data load component of a scroller. This should cause data to be reloaded and will need to notify all other scrollers incase they also need to shuffle along a bit.

Specified by:
moveOuterScroller in class AbstractScrollManager
Parameters:
scroller - scroller that changed
newMin - new data min value in millis
newMax - new data max value in millis

notifyModelChanged

public void notifyModelChanged(int changeType)
Specified by:
notifyModelChanged in class AbstractScrollManager

startDataAt

public void startDataAt(PamDataBlock dataBlock,
                        long menuMouseTime)
Description copied from class: AbstractScrollManager
Start all data in all data blocks at the given time

Specified by:
startDataAt in class AbstractScrollManager
menuMouseTime - time in milliseconds

centreDataAt

public void centreDataAt(PamDataBlock dataBlock,
                         long menuMouseTime)
Description copied from class: AbstractScrollManager
Centre all data in all data blocks at the given time

Specified by:
centreDataAt in class AbstractScrollManager
menuMouseTime - time in milliseconds

reLoad

public void reLoad()
Description copied from class: AbstractScrollManager
Command telling manager to reload it's data.

Specified by:
reLoad in class AbstractScrollManager

checkGapPos

public long checkGapPos(AbstractPamScroller abstractPamScroller,
                        long oldMin,
                        long oldMax,
                        long newMin,
                        long newMax,
                        int i)
Description copied from class: AbstractScrollManager
Check to see whether or not we are scrolling into a data gap. Rules exist for stopping / starting / jumping over gaps depending on the current state and the new position of the scroller.

Specified by:
checkGapPos in class AbstractScrollManager
Parameters:
abstractPamScroller - PamScroller that moved
oldMin - old minimum time
oldMax - old maximum time
newMin - new minimum time
newMax - new maximum time
i - direction of scroll +1 = forward, -1 = backward, 0 = plonked down by mouse on datamap.
Returns:
new minimum position. Calling function must then work out the new maximum position.