examples.random
Class RandomDataSourceCollection

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by java.util.Vector
              extended by simtools.data.DataSourceCollection
                  extended by simtools.data.DynamicDataSourceCollection
                      extended by examples.random.RandomDataSourceCollection
All Implemented Interfaces:
java.awt.event.ActionListener, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.EventListener, java.util.List, java.util.RandomAccess, ContextualActionProvider

public class RandomDataSourceCollection
extends DynamicDataSourceCollection
implements java.awt.event.ActionListener, ContextualActionProvider

This example class can serves as the basis to create your own dynamic data sources. It creates data sources of random data between 0 and 100 on demand. The following optional interfaces are implemented as an example. - ContextualActionProvider : adds a contextual popup menu when right-clicking on the collection in the source pane

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class simtools.data.DynamicDataSourceCollection
DynamicDataSourceCollection.SourceInfo
 
Nested classes/interfaces inherited from class simtools.data.DataSourceCollection
DataSourceCollection.Container
 
Field Summary
protected  javax.swing.Timer timer
          We use a timer to produce values periodically
 
Fields inherited from class simtools.data.DynamicDataSourceCollection
ourInfo, sourceInfo
 
Fields inherited from class simtools.data.DataSourceCollection
buffers, endNotificationListeners, lastIndex, listeners, map, startIndex
 
Fields inherited from class java.util.Vector
capacityIncrement, elementCount, elementData
 
Fields inherited from class java.util.AbstractList
modCount
 
Fields inherited from interface jsynoptic.base.ContextualActionProvider
EDITOR_CONTEXT, MOUSE_OUT_CONTEXT, MOUSE_OVER_CONTEXT, MOUSE_PRESSED_CONTEXT, SHAPELIST_CONTEXT, SOURCELIST_CONTEXT
 
Constructor Summary
RandomDataSourceCollection()
          This constructor sets up the timer and one time source.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          This method is called by the timer each time it triggers (that is, every half second for us)
 void addSource()
          Adds a new data source to the collection
 boolean canDoAction(double x, double y, java.lang.Object o, java.lang.String action, int context)
          Returns true if, and only if, it is possible to do the action right now
 boolean doAction(double x, double y, java.lang.Object o, java.lang.String action, javax.swing.undo.CompoundEdit undoableEdit)
          Do one of the actions previously declared by getAction.
 java.lang.String[] getActions(double x, double y, java.lang.Object o, int context)
          Return the list of possible actions The contect information may be used, or not.
 DataInfo getInformation()
          Returns information about the collection itself
 int sortedOrder(int i)
          If a source is sorted, this can lead to some optimization.
 void start()
          Starts producing data automatically
 void step()
          Produce exactly one data in each source
 void stop()
          Stops producing data automatically
 
Methods inherited from class simtools.data.DynamicDataSourceCollection
bufferize, bufferize, bufferize, changeDataSourceInfo, changeInfo, computeLastIndex, computeMax, computeMin, computeStartIndex, createDataSource, createDataSource, getByteMax, getByteMin, getDoubleMax, getDoubleMin, getFloatMax, getFloatMin, getInformation, getIntegerMax, getIntegerMin, getKind, getLastIndex, getLongMax, getLongMin, getMax, getMin, getShortMax, getShortMin, getStartIndex, getValue, isComparable, registerNewValues, removeDataSource, removeDataSource, setByteValue, setDoubleValue, setFloatValue, setIntegerValue, setLongValue, setObjectValue, setShortValue, valueClass
 
Methods inherited from class simtools.data.DataSourceCollection
addEndNotificationListener, addListener, attachBuffer, computeLastIndex, computeStartIndex, get, getByteValue, getCollectionContainers, getDoubleValue, getFloatValue, getIntegerValue, getLastIndex, getLongValue, getShortValue, getStartIndex, hashCode, isCompound, notifyEndNotificationListeners, notifyListenersForCollectionRemoved, notifyListenersForDataSourceAdded, notifyListenersForDataSourceRemoved, notifyListenersForInfoChange, removeAllElements, removeEndNotificationListener, removeListener, setSlice
 
Methods inherited from class java.util.Vector
add, add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, remove, removeAll, removeElement, removeElementAt, removeRange, retainAll, set, setElementAt, setSize, size, subList, toArray, toArray, toString, trimToSize
 
Methods inherited from class java.util.AbstractList
iterator, listIterator, listIterator
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
iterator, listIterator, listIterator
 

Field Detail

timer

protected javax.swing.Timer timer
We use a timer to produce values periodically

Constructor Detail

RandomDataSourceCollection

public RandomDataSourceCollection()
This constructor sets up the timer and one time source. The time source is used to create XY plots, so we can see the evolution of random variables over time.

Method Detail

start

public void start()
Starts producing data automatically


stop

public void stop()
Stops producing data automatically


step

public void step()
Produce exactly one data in each source


addSource

public void addSource()
Adds a new data source to the collection


sortedOrder

public int sortedOrder(int i)
If a source is sorted, this can lead to some optimization.

Overrides:
sortedOrder in class DataSourceCollection

getInformation

public DataInfo getInformation()
Returns information about the collection itself

Overrides:
getInformation in class DynamicDataSourceCollection

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
This method is called by the timer each time it triggers (that is, every half second for us)

Specified by:
actionPerformed in interface java.awt.event.ActionListener

getActions

public java.lang.String[] getActions(double x,
                                     double y,
                                     java.lang.Object o,
                                     int context)
Return the list of possible actions The contect information may be used, or not. In the case of a popup menu in the source pane, the context is SOURCELIST_CONTEXT

Specified by:
getActions in interface ContextualActionProvider
Parameters:
x - Coordinate, mouse position in the same unit as contains(x,y)
y - Coordinate, mouse position in the same unit as contains(x,y)
o - Object the actions should work on. Possibly null => default or all actions
context - one of the context defined in the ContextualActionProvider class
Returns:
The list of possible actions, possibly null or an empty array

doAction

public boolean doAction(double x,
                        double y,
                        java.lang.Object o,
                        java.lang.String action,
                        javax.swing.undo.CompoundEdit undoableEdit)
Do one of the actions previously declared by getAction.

Specified by:
doAction in interface ContextualActionProvider
Parameters:
x - Coordinate, for example mouse position
y - Coordinate, for example mouse position
o - Object the action should work on.
action - An action returned by a previous getActions call with the same x, y, o parameters It may be null, in which case the default action is requested for this x,y,o.
undoableEdit - current edit for undo/redo operation If not null, this action is undoable.
Returns:
true if the action could be performed

canDoAction

public boolean canDoAction(double x,
                           double y,
                           java.lang.Object o,
                           java.lang.String action,
                           int context)
Returns true if, and only if, it is possible to do the action right now

Specified by:
canDoAction in interface ContextualActionProvider
Parameters:
x - Coordinate, for example mouse position
y - Coordinate, for example mouse position
o - Object the action should work on.
action - An action returned by a previous getActions call with the same x, y, o parameters It may be null, in which case the default action is requested for this x,y,o.
context - one of the context defined in the ContextualActionProvider class
Returns:
true if the action can be performed