org.crosswire.common.history
Class History

java.lang.Object
  extended by org.crosswire.common.history.History

public class History
extends Object

Maintains a navigable history of objects. This maintains a dated list of objects and a current navigation list.

Author:
DM Smith
See Also:
The GNU Lesser General Public License for details.

Field Summary
private  int backCount
          The number of elements in the "back" list.
private  Map<Object,Long> history
          A map of elements that have been seen so far to when they have been seen.
private  List<HistoryListener> listeners
          Listeners that are interested when history has changed.
private  List<Object> nav
          The elements that can be navigated.
 
Constructor Summary
History()
          Create an empty navigation and history list.
 
Method Summary
 void add(Object obj)
          Add an element to history.
 void addHistoryListener(HistoryListener li)
          Add a listener for history events.
private  void fireHistoryChanged()
          Kick of an event sequence
 Object getCurrent()
          Get the current item in the "back" list
 List<Object> getNextList()
          Get all the elements in the "forward" list.
 List<Object> getPreviousList()
          Get all the elements in "back" list.
 Object go(int i)
          Increments the current history item by the given amount.
private  Object peek(int i)
          Get the current item in the "back" list
 void removeHistoryListener(HistoryListener li)
          Remove a listener of history events.
 Object select(int index)
          Make a particular element in the navigation list the current item in history.
private  void visit(Object obj)
          Note that this object has been seen at this time.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nav

private List<Object> nav
The elements that can be navigated.


history

private Map<Object,Long> history
A map of elements that have been seen so far to when they have been seen.


backCount

private int backCount
The number of elements in the "back" list.


listeners

private List<HistoryListener> listeners
Listeners that are interested when history has changed.

Constructor Detail

History

public History()
Create an empty navigation and history list.

Method Detail

select

public Object select(int index)
Make a particular element in the navigation list the current item in history.

Parameters:
index - the index of item to make the last one in the back list, -1 (or lower) will put everything in the forward list. Indexes beyond the end of the list will put everything in the back list.
Returns:
the specified item in history

add

public void add(Object obj)
Add an element to history. If the element is in the forward list, then it replaces everything in the forward list upto it. Otherwise, it replaces the forward list.

Parameters:
obj - the object to add

getPreviousList

public List<Object> getPreviousList()
Get all the elements in "back" list.

Returns:
the elements in the back list.

getNextList

public List<Object> getNextList()
Get all the elements in the "forward" list.

Returns:
the elements in the forward list.

go

public Object go(int i)
Increments the current history item by the given amount. Positive numbers are forward. Negative numbers are back.

Parameters:
i - the distance to travel
Returns:
the item at the requested location, or at the end of the list if i is too big, or at the beginning of the list if i is too small, otherwise null.

getCurrent

public Object getCurrent()
Get the current item in the "back" list

Returns:
the current item in the back list.

peek

private Object peek(int i)
Get the current item in the "back" list

Parameters:
i - the distance to travel
Returns:
the requested item in the navigation list.

addHistoryListener

public void addHistoryListener(HistoryListener li)
Add a listener for history events.

Parameters:
li - the interested listener

removeHistoryListener

public void removeHistoryListener(HistoryListener li)
Remove a listener of history events.

Parameters:
li - the disinterested listener

visit

private void visit(Object obj)
Note that this object has been seen at this time.

Parameters:
obj - the object that has been seen

fireHistoryChanged

private void fireHistoryChanged()
Kick of an event sequence


Copyright ยจ 2003-2015