|
From: Lukas P. <pe...@us...> - 2002-07-26 09:32:44
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views
In directory usw-pr-cvs1:/tmp/cvs-serv13254
Modified Files:
TimeSeriesModel.java
Log Message:
added shift method
Index: TimeSeriesModel.java
===================================================================
RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/views/TimeSeriesModel.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** TimeSeriesModel.java 15 Jul 2002 11:16:29 -0000 1.1
--- TimeSeriesModel.java 26 Jul 2002 09:32:39 -0000 1.2
***************
*** 1,105 ****
! package net.sourceforge.javaprofiler.module.views;
!
! import javax.swing.event.EventListenerList;
! import javax.swing.event.ChangeListener;
! import javax.swing.event.ChangeEvent;
!
! /** Holds data of a time series. Data are stored in an <code>int</code> array.
! * @author Lukas Petru
! */
! public class TimeSeriesModel {
! /** Holds time series values. */
! private int[] data;
!
! private transient ChangeEvent changeEvent = null;
! private EventListenerList listenerList = new EventListenerList();
!
! public TimeSeriesModel() {
! // test data
! data=new int[20];
! for (int i=0; i<10; i++)
! data[i]=i;
! for (int i=10; i<20; i++)
! data[i]=20-i;
! }
!
! /** Sets new time series values. */
! public void setData(int[] series) {
! if (series==null)
! throw new IllegalArgumentException("null");
! data=series;
! fireStateChanged();
! }
!
! /** Returns current time series values. You must not modify the
! returned value. Returned value is not null.
! */
! public int[] getData() {
! return data;
! }
!
! /** Returns a copy of time series values. You can freely
! modify returned value.
! */
! public int[] copyData() {
! int[] r=new int[data.length];
! System.arraycopy(data, 0, r, 0, data.length);
! return r;
! }
!
! // event firing
!
! /**
! * Adds a <code>ChangeListener</code> to the TimeSeriesModel.
! *
! * @param l the listener to add
! */
! public void addChangeListener(ChangeListener l) {
! listenerList.add(ChangeListener.class, l);
! }
!
! /**
! * Removes a <code>ChangeListener</code> from the TimeSeriesModel.
! *
! * @param l the listener to remove
! */
! public void removeChangeListener(ChangeListener l) {
! listenerList.remove(ChangeListener.class, l);
! }
!
! /**
! * Returns an array of all the change listeners
! * registered on this <code>TimeSeriesModel</code>.
! *
! * @return all of this model's <code>ChangeListener</code>s
! * or an empty
! * array if no change listeners are currently registered
! */
! public ChangeListener[] getChangeListeners() {
! return (ChangeListener[])listenerList.getListeners(
! ChangeListener.class);
! }
!
! /**
! * Notifies all listeners that have registered interest for
! * notification on this event type. The event instance
! * is created lazily.
! *
! * @see EventListenerList
! */
! protected void fireStateChanged() {
! // Guaranteed to return a non-null array
! Object[] listeners = listenerList.getListenerList();
! // Process the listeners last to first, notifying
! // those that are interested in this event
! for (int i = listeners.length-2; i>=0; i-=2) {
! if (listeners[i]==ChangeListener.class) {
! // Lazily create the event:
! if (changeEvent == null)
! changeEvent = new ChangeEvent(this);
! ((ChangeListener)listeners[i+1]).stateChanged(changeEvent);
! }
! }
! }
!
}
--- 1,137 ----
! package net.sourceforge.javaprofiler.module.views;
!
! import javax.swing.event.EventListenerList;
! import javax.swing.event.ChangeListener;
! import javax.swing.event.ChangeEvent;
!
! /** Holds data of a time series. Data are stored in an <code>int</code> array.
! * @author Lukas Petru
! */
! public class TimeSeriesModel {
! /** Holds time series values. */
! private int[] data;
! /** Maximum value of the data. */
! private int max;
!
! private transient ChangeEvent changeEvent = null;
! private EventListenerList listenerList = new EventListenerList();
!
! public TimeSeriesModel() {
! // test data
! data=new int[20];
! for (int i=0; i<10; i++)
! data[i]=i;
! for (int i=10; i<20; i++)
! data[i]=20-i;
! recompute();
! }
!
! /** Shifts current values of time series by one position to left and adds new
! value to be the rightmost one.
! */
! public void shift(int addVal) {
! System.arraycopy(data, 1, data, 0, data.length-1);
! data[data.length-1]=addVal;
! recompute();
! fireStateChanged();
! }
!
! /** Sets new time series values to a copy of a given argument. */
! public void setData(int[] series) {
! if (series==null)
! throw new IllegalArgumentException("null");
! data=new int[series.length];
! System.arraycopy(series, 0, data, 0, series.length);
! recompute();
! fireStateChanged();
! }
!
! /** Returns current time series values. You must not modify the
! returned value. Returned value is not null.
! */
! public int[] getData() {
! return data;
! }
!
! /** Returns a copy of time series values. You can freely
! modify returned value.
! */
! public int[] copyData() {
! int[] r=new int[data.length];
! System.arraycopy(data, 0, r, 0, data.length);
! return r;
! }
!
! /** Returns value of the largest data sample. */
! public int getMax() {
! return max;
! }
!
! /** Returns value of the last (i.e. rightmost) data sample. */
! public int getLast() {
! return data[data.length-1];
! }
!
! /** Recalculates the max value. */
! private void recompute() {
! max = 0;
! for (int i=0; i<data.length; i++)
! if (data[i] > max) max=data[i];
! }
!
! // event firing
!
! /**
! * Adds a <code>ChangeListener</code> to the TimeSeriesModel.
! *
! * @param l the listener to add
! */
! public void addChangeListener(ChangeListener l) {
! listenerList.add(ChangeListener.class, l);
! }
!
! /**
! * Removes a <code>ChangeListener</code> from the TimeSeriesModel.
! *
! * @param l the listener to remove
! */
! public void removeChangeListener(ChangeListener l) {
! listenerList.remove(ChangeListener.class, l);
! }
!
! /**
! * Returns an array of all the change listeners
! * registered on this <code>TimeSeriesModel</code>.
! *
! * @return all of this model's <code>ChangeListener</code>s
! * or an empty
! * array if no change listeners are currently registered
! */
! public ChangeListener[] getChangeListeners() {
! return (ChangeListener[])listenerList.getListeners(
! ChangeListener.class);
! }
!
! /**
! * Notifies all listeners that have registered interest for
! * notification on this event type. The event instance
! * is created lazily.
! *
! * @see EventListenerList
! */
! protected void fireStateChanged() {
! // Guaranteed to return a non-null array
! Object[] listeners = listenerList.getListenerList();
! // Process the listeners last to first, notifying
! // those that are interested in this event
! for (int i = listeners.length-2; i>=0; i-=2) {
! if (listeners[i]==ChangeListener.class) {
! // Lazily create the event:
! if (changeEvent == null)
! changeEvent = new ChangeEvent(this);
! ((ChangeListener)listeners[i+1]).stateChanged(changeEvent);
! }
! }
! }
!
}
|