uk.ac.starlink.table.join
Class RangeModelProgressIndicator

java.lang.Object
  extended by javax.swing.DefaultBoundedRangeModel
      extended by uk.ac.starlink.table.join.RangeModelProgressIndicator
All Implemented Interfaces:
java.io.Serializable, java.lang.Runnable, javax.swing.BoundedRangeModel, ProgressIndicator

public class RangeModelProgressIndicator
extends javax.swing.DefaultBoundedRangeModel
implements ProgressIndicator, java.lang.Runnable

ProgressIndicator implementation that can serve as the model for a JProgressBar. Calls to startStage, setLevel and endStage cause the state of the BoundedRangeModel that this implements to be updated accordingly (asynchronously of course). The string messages passed to startStage and logMessage are ignored - subclasses should override these methods (calling the superclass implementations as well) to do something with these strings.

Since:
24 Mar 2004
See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.swing.DefaultBoundedRangeModel
changeEvent, listenerList
 
Constructor Summary
RangeModelProgressIndicator(boolean profile)
           
 
Method Summary
 void endStage()
          Indicates that no more ProgressIndicator.setLevel(double) calls will be made until the next ProgressIndicator.startStage(java.lang.String).
 void logMessage(java.lang.String msg)
          Registers a comment about the progress of the algorithm.
 void run()
          Updates the state of the BoundedRangeModel - should only be called from the event dispatch thread.
 void setLevel(double lev)
          Specifies that the work of the most recently-started stage is a certain proportion complete.
 void startStage(java.lang.String stage)
          Indicates that a number of ProgressIndicator.setLevel(double) calls may follow, followed by a ProgressIndicator.endStage() call.
 
Methods inherited from class javax.swing.DefaultBoundedRangeModel
addChangeListener, fireStateChanged, getChangeListeners, getExtent, getListeners, getMaximum, getMinimum, getValue, getValueIsAdjusting, removeChangeListener, setExtent, setMaximum, setMinimum, setRangeProperties, setValue, setValueIsAdjusting, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RangeModelProgressIndicator

public RangeModelProgressIndicator(boolean profile)
Method Detail

startStage

public void startStage(java.lang.String stage)
Description copied from interface: ProgressIndicator
Indicates that a number of ProgressIndicator.setLevel(double) calls may follow, followed by a ProgressIndicator.endStage() call.

Specified by:
startStage in interface ProgressIndicator
Parameters:
stage - name/description of the processing stage

setLevel

public void setLevel(double lev)
              throws java.lang.InterruptedException
Description copied from interface: ProgressIndicator
Specifies that the work of the most recently-started stage is a certain proportion complete. Calls to this method must take place between paired calls to ProgressIndicator.startStage(java.lang.String) and ProgressIndicator.endStage(), preferably with non-decreasing values of level.

The method may throw an InterruptedException as a message to the caller that the work should be interrupted. A caller which receives such an exception should stop using resources and tidy up as soon as is convenient.

Specified by:
setLevel in interface ProgressIndicator
Parameters:
lev - value between 0. and 1. indicating amount of completion
Throws:
java.lang.InterruptedException - as a message to the caller that the work is no longer required Is this abuse of InterruptedException??

endStage

public void endStage()
Description copied from interface: ProgressIndicator
Indicates that no more ProgressIndicator.setLevel(double) calls will be made until the next ProgressIndicator.startStage(java.lang.String).

Specified by:
endStage in interface ProgressIndicator

logMessage

public void logMessage(java.lang.String msg)
Description copied from interface: ProgressIndicator
Registers a comment about the progress of the algorithm. This should not be called between calls to ProgressIndicator.startStage(java.lang.String) and ProgressIndicator.endStage().

Specified by:
logMessage in interface ProgressIndicator
Parameters:
msg - message

run

public void run()
Updates the state of the BoundedRangeModel - should only be called from the event dispatch thread.

Specified by:
run in interface java.lang.Runnable

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.