com.eliad.model
Class AbstractRulerModel

java.lang.Object
  |
  +--com.eliad.model.AbstractGenericModel
        |
        +--com.eliad.model.AbstractRulerModel
Direct Known Subclasses:
BasicRulerModel

public abstract class AbstractRulerModel
extends com.eliad.model.AbstractGenericModel
implements RulerModel

An extension of the RulerModel interface that provides basic listener handling.

Version:
1.0 00/05/20
Author:
Patrick Mérissert-Coffinières
See Also:
Serialized Form

Fields inherited from class com.eliad.model.AbstractGenericModel
listeners_
 
Constructor Summary
AbstractRulerModel()
           
 
Method Summary
 void addRulerModelListener(RulerModelListener l)
          Adds a listener to the list that's notified each time a change to the data model occurs.
 java.lang.Object clone()
          Exposing clone publicly.
protected abstract  void doInsertEntries(int start, int length, int value, boolean visible)
          The actual job of insertEntries(int, int, int, boolean), without the notifications.
protected abstract  void doRemoveEntries(int start, int length)
          The actual job of removeEntries(int, int), without the notifications.
 void fireRulerBeforeItemsMoved(int fromIndex, int count, int toIndex)
          Sends a prenotification that ruler items are to be moved.
protected  void fireRulerDataChanged(int type, int index, int other0, int other1)
          Forwards the given notification event to all RulerModelListeners that registered themselves as listeners for this ruler model.
 void fireRulerDraggingChanged(int old, int value)
          Forwards a "dragging changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerItemsDeleted(int index, int count)
          Forwards a "items deleted" notification event to all RulerListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerItemsInserted(int index, int count)
          Forwards an "items inserted" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerItemsMoved(int fromIndex, int count, int toIndex)
          Forwards a "items moved" notification event to all RulerListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerMarginChanged(int old, int value)
          Forwards a "margin changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerMaxSizeChanged(int index, int old, int value)
          Forwards a "maximun size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerMinSizeChanged(int index, int old, int value)
          Forwards a "minimum size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerModelChanged()
          Forwards an "everything changed" notification event to all RulerListeners that registered themselves as listeners for this ruler model.
 void fireRulerPreferredSizeChanged(int index, int old, int value)
          Forwards a "preferred size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerResizableChanged(int index)
          Forwards a "resizable changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerSizeChanged(int index, int old, int value)
          Forwards a "size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void fireRulerSizesChanged()
          Forwards a "sizes changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
protected  void fireRulerStructureChanged(int type, int index, int count, int extra)
          Forwards the given notification event to all RulerModelListeners that registered themselves as listeners for this ruler model.
 void fireRulerVisibilityChanged(int index, int size)
          Forwards a "visibility changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
 void gridDataChanged(GridModelEvent e)
          The general shape of the model did not change, but some data was updated.
 void gridModelChanged(GridModelEvent e)
          The entire model has changed.
 void gridStructureChanged(GridModelEvent e)
          The structure of the model changed, but the information is incremental (insertion or removal of a continuous set or row or columns).
 void insertEntries(int start, int length, int value)
          This is the version of insertEntries which is part of the Intervals API.
 void insertEntries(int start, int length, int value, boolean visible)
          Adds a continuous group of entries to this RulerModel.
protected  void propagateDataChange(RulerModelEvent e)
           
protected  void propagateModelChange(RulerModelEvent e)
           
protected  void propagateStructureChange(RulerModelEvent e)
           
 void propertyChange(java.beans.PropertyChangeEvent e)
           
 void removeEntries(int start, int length)
          Removes a continuous group of entries from this RulerModel.
 void removeRulerModelListener(RulerModelListener l)
          Removes a listener from the list that's notified each time a change to the data model occurs.
 
Methods inherited from class com.eliad.model.AbstractGenericModel
getListenerCount, getListeners
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractRulerModel

public AbstractRulerModel()
Method Detail

addRulerModelListener

public void addRulerModelListener(RulerModelListener l)
Adds a listener to the list that's notified each time a change to the data model occurs.
Specified by:
addRulerModelListener in interface RulerModel
Parameters:
l - the RulerModelListener
See Also:
RulerModelEvent, RulerModelListener

removeRulerModelListener

public void removeRulerModelListener(RulerModelListener l)
Removes a listener from the list that's notified each time a change to the data model occurs. This is part of the RulerModelEventSource contract, and should respect an obvious relation with the addXXX function. An implementation class is of course responsible for the firing of events, but the fireRulerModelEvent methods may be private.
Specified by:
removeRulerModelListener in interface RulerModel
Parameters:
l - the RulerModelListener
See Also:
RulerModelEvent, RulerModelListener

propagateDataChange

protected void propagateDataChange(RulerModelEvent e)

propagateModelChange

protected void propagateModelChange(RulerModelEvent e)

propagateStructureChange

protected void propagateStructureChange(RulerModelEvent e)

fireRulerModelChanged

public void fireRulerModelChanged()
Forwards an "everything changed" notification event to all RulerListeners that registered themselves as listeners for this ruler model.
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerStructureChanged

protected void fireRulerStructureChanged(int type,
                                         int index,
                                         int count,
                                         int extra)
Forwards the given notification event to all RulerModelListeners that registered themselves as listeners for this ruler model.
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerDataChanged

protected void fireRulerDataChanged(int type,
                                    int index,
                                    int other0,
                                    int other1)
Forwards the given notification event to all RulerModelListeners that registered themselves as listeners for this ruler model.
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerMarginChanged

public void fireRulerMarginChanged(int old,
                                   int value)
Forwards a "margin changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
old - the previous value
value - the new value
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerDraggingChanged

public void fireRulerDraggingChanged(int old,
                                     int value)
Forwards a "dragging changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerSizesChanged

public void fireRulerSizesChanged()
Forwards a "sizes changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerSizeChanged

public void fireRulerSizeChanged(int index,
                                 int old,
                                 int value)
Forwards a "size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item concerned by the change. -1 if many items are concerned, then old and value will be meaningless.
old - the previous value
value - the new value
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerPreferredSizeChanged

public void fireRulerPreferredSizeChanged(int index,
                                          int old,
                                          int value)
Forwards a "preferred size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item concerned by the change. -1 if many items are concerned, then old and value will be meaningless.
old - the previous value
value - the new value
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerMinSizeChanged

public void fireRulerMinSizeChanged(int index,
                                    int old,
                                    int value)
Forwards a "minimum size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item concerned by the change. -1 if many items are concerned, then old and value will be meaningless.
old - the previous value
value - the new value
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerMaxSizeChanged

public void fireRulerMaxSizeChanged(int index,
                                    int old,
                                    int value)
Forwards a "maximun size changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item concerned by the change. -1 if many items are concerned, then old and value will be meaningless.
old - the previous value
value - the new value
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerResizableChanged

public void fireRulerResizableChanged(int index)
Forwards a "resizable changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item concerned by the change. -1 if many items are concerned
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerVisibilityChanged

public void fireRulerVisibilityChanged(int index,
                                       int size)
Forwards a "visibility changed" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item concerned by the change. -1 if many items are concerned
size - the size of the item concerned by the change.
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerItemsInserted

public void fireRulerItemsInserted(int index,
                                   int count)
Forwards an "items inserted" notification event to all RulerModelListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item before which items were inserted
count - the number of inserted items
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerItemsDeleted

public void fireRulerItemsDeleted(int index,
                                  int count)
Forwards a "items deleted" notification event to all RulerListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
index - the index of the item from which items were deleted
count - the number of deleted items
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerItemsMoved

public void fireRulerItemsMoved(int fromIndex,
                                int count,
                                int toIndex)
Forwards a "items moved" notification event to all RulerListeners that registered themselves as listeners for this ruler presentation model.
Parameters:
fromIndex - the original index of the first moved item
count - the number of moved items
toIndex - the index the first item was moved to
See Also:
addRulerModelListener(com.eliad.model.RulerModelListener), RulerModelEvent

fireRulerBeforeItemsMoved

public void fireRulerBeforeItemsMoved(int fromIndex,
                                      int count,
                                      int toIndex)
                               throws java.beans.PropertyVetoException
Sends a prenotification that ruler items are to be moved. No action has yet been taken. Unless one of the handlers for the prenotification throws a PropertyVetoException, this should be followed by:

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)

gridModelChanged

public void gridModelChanged(GridModelEvent e)
The entire model has changed. This is a direct synchronization. All events are sent to require an immediate synchronization. This class provides a default implementation.

insertEntries

public void insertEntries(int start,
                          int length,
                          int value,
                          boolean visible)
Adds a continuous group of entries to this RulerModel. Here, we separate between doing the actual job, and firing the notifications.
Specified by:
insertEntries in interface RulerModel
Parameters:
start - the index to be assigned to the first entry in the group
length - the number of entries in the group
value - the size to be assigned to each new entry

insertEntries

public void insertEntries(int start,
                          int length,
                          int value)
This is the version of insertEntries which is part of the Intervals API. This class provides a default implementation as an overload of insertEntries(int, int, int, boolean) using true as the default value for the visible parameter.
Specified by:
insertEntries in interface RulerModel

doInsertEntries

protected abstract void doInsertEntries(int start,
                                        int length,
                                        int value,
                                        boolean visible)
The actual job of insertEntries(int, int, int, boolean), without the notifications.

removeEntries

public void removeEntries(int start,
                          int length)
Removes a continuous group of entries from this RulerModel. Here, we separate between doing the actual job, and firing the notifications.
Parameters:
start - the index of the first entry to be removed
length - the number of entries to be removed

doRemoveEntries

protected abstract void doRemoveEntries(int start,
                                        int length)
The actual job of removeEntries(int, int), without the notifications.

gridStructureChanged

public void gridStructureChanged(GridModelEvent e)
The structure of the model changed, but the information is incremental (insertion or removal of a continuous set or row or columns). This class provides a reasonable default implementation based on the rest of the API.

gridDataChanged

public void gridDataChanged(GridModelEvent e)
The general shape of the model did not change, but some data was updated. RulerModels are generally unconcerned.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Exposing clone publicly.
Specified by:
clone in interface RulerModel
Overrides:
clone in class java.lang.Object