net.sourceforge.toscanaj.controller.fca
Class DiagramHistory

java.lang.Object
  extended byjavax.swing.AbstractListModel
      extended bynet.sourceforge.toscanaj.controller.fca.DiagramHistory
All Implemented Interfaces:
ChangeObservable, javax.swing.ListModel, java.io.Serializable

public class DiagramHistory
extends javax.swing.AbstractListModel
implements ChangeObservable

This stores the diagram references for visited, shown and forthcoming diagrams and can be used as a model for JList components.

See Also:
Serialized Form
To do:
Use event broker instead of being an observable.

Nested Class Summary
static interface DiagramHistory.ConceptVisitor
           
 
Field Summary
 
Fields inherited from class javax.swing.AbstractListModel
listenerList
 
Constructor Summary
DiagramHistory()
          Creates an empty list of diagrams.
 
Method Summary
 void addDiagram(Diagram2D diagram)
           
 void addObserver(ChangeObserver observer)
          Implements ChangeObservable.addObserver(ChangeObserver).
 void back()
           
 boolean canMoveUp()
           
 Diagram2D getCurrentDiagram(int pos)
           
 java.lang.Object getElementAt(int position)
          Implements AbstractListModel.getElementAt(int).
 int getFirstCurrentDiagramPosition()
           
 int getNestingLevel()
          Returns the number of diagrams nested in an outer diagram.
 int getNumberOfCurrentDiagrams()
           
 DiagramReference getReferenceAt(int elementPosition)
           
 int getSize()
          Implements AbstractListModel.getSize().
 java.lang.String getTextualDescription()
           
 boolean hasFutureDiagrams()
           
 boolean hasPastDiagrams()
           
 void insertDiagram(int index, Diagram2D diagram2D)
           
 boolean isEmpty()
           
 boolean isInCurrent(DiagramReference diagram)
          Returns true if the diagram is in the list of displayed diagrams.
 boolean isInCurrent(int elementPosition)
           
 boolean isInFuture(DiagramReference diagram)
          Returns true if the diagram is in the list of diagrams still to be visited.
 boolean isInFuture(int elementPosition)
           
 boolean isInPast(int elementPosition)
          Returns true if the diagram is in the list of visited diagrams.
 void moveDiagram(int from, int to)
           
 void next(Concept zoomedConcept)
           
protected  void notifyObservers()
          Notifies all observers of an update that changes the current diagram.
 void removeLastDiagram()
           
 void removeObserver(ChangeObserver observer)
          Implements ChangeObservable.removeObserver(ChangeObserver).
 void reset()
           
 void setNestingLevel(int level)
           
 java.lang.String toString()
          Debug output.
 void visitZoomedConcepts(DiagramHistory.ConceptVisitor visitor)
           
 
Methods inherited from class javax.swing.AbstractListModel
addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DiagramHistory

public DiagramHistory()
Creates an empty list of diagrams.

Method Detail

setNestingLevel

public void setNestingLevel(int level)

getNestingLevel

public int getNestingLevel()
Returns the number of diagrams nested in an outer diagram.


hasPastDiagrams

public boolean hasPastDiagrams()

getSize

public int getSize()
Implements AbstractListModel.getSize().

Specified by:
getSize in interface javax.swing.ListModel

isEmpty

public boolean isEmpty()

getElementAt

public java.lang.Object getElementAt(int position)
Implements AbstractListModel.getElementAt(int).

Specified by:
getElementAt in interface javax.swing.ListModel

getReferenceAt

public DiagramReference getReferenceAt(int elementPosition)

isInPast

public boolean isInPast(int elementPosition)
Returns true if the diagram is in the list of visited diagrams.


isInCurrent

public boolean isInCurrent(DiagramReference diagram)
Returns true if the diagram is in the list of displayed diagrams.


isInCurrent

public boolean isInCurrent(int elementPosition)

isInFuture

public boolean isInFuture(DiagramReference diagram)
Returns true if the diagram is in the list of diagrams still to be visited.


isInFuture

public boolean isInFuture(int elementPosition)

hasFutureDiagrams

public boolean hasFutureDiagrams()

getNumberOfCurrentDiagrams

public int getNumberOfCurrentDiagrams()

getFirstCurrentDiagramPosition

public int getFirstCurrentDiagramPosition()

getCurrentDiagram

public Diagram2D getCurrentDiagram(int pos)

toString

public java.lang.String toString()
Debug output.


addDiagram

public void addDiagram(Diagram2D diagram)

removeLastDiagram

public void removeLastDiagram()

moveDiagram

public void moveDiagram(int from,
                        int to)

reset

public void reset()

next

public void next(Concept zoomedConcept)

back

public void back()

visitZoomedConcepts

public void visitZoomedConcepts(DiagramHistory.ConceptVisitor visitor)

addObserver

public void addObserver(ChangeObserver observer)
Implements ChangeObservable.addObserver(ChangeObserver).

Specified by:
addObserver in interface ChangeObservable

removeObserver

public void removeObserver(ChangeObserver observer)
Implements ChangeObservable.removeObserver(ChangeObserver).

Specified by:
removeObserver in interface ChangeObservable

notifyObservers

protected void notifyObservers()
Notifies all observers of an update that changes the current diagram. This should not be called if the changes affect only future diagrams.


canMoveUp

public boolean canMoveUp()

getTextualDescription

public java.lang.String getTextualDescription()

insertDiagram

public void insertDiagram(int index,
                          Diagram2D diagram2D)


The ToscanaJ project