Package uk.ac.starlink.table.join
Class RangeModelProgressIndicator
java.lang.Object
javax.swing.DefaultBoundedRangeModel
uk.ac.starlink.table.join.RangeModelProgressIndicator
- All Implemented Interfaces:
Serializable
,Runnable
,BoundedRangeModel
,ProgressIndicator
public class RangeModelProgressIndicator
extends DefaultBoundedRangeModel
implements ProgressIndicator, 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
- Author:
- Mark Taylor (Starlink)
- See Also:
-
Field Summary
Fields inherited from class javax.swing.DefaultBoundedRangeModel
changeEvent, listenerList
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
endStage()
Indicates that no moreProgressIndicator.setLevel(double)
calls will be made until the nextProgressIndicator.startStage(java.lang.String)
.void
logMessage
(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
(String stage) Indicates that a number ofProgressIndicator.setLevel(double)
calls may follow, followed by aProgressIndicator.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
-
Constructor Details
-
RangeModelProgressIndicator
public RangeModelProgressIndicator(boolean profile)
-
-
Method Details
-
startStage
Description copied from interface:ProgressIndicator
Indicates that a number ofProgressIndicator.setLevel(double)
calls may follow, followed by aProgressIndicator.endStage()
call.- Specified by:
startStage
in interfaceProgressIndicator
- Parameters:
stage
- name/description of the processing stage
-
setLevel
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 toProgressIndicator.startStage(java.lang.String)
andProgressIndicator.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 interfaceProgressIndicator
- Parameters:
lev
- value between 0. and 1. indicating amount of completion- Throws:
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 moreProgressIndicator.setLevel(double)
calls will be made until the nextProgressIndicator.startStage(java.lang.String)
.- Specified by:
endStage
in interfaceProgressIndicator
-
logMessage
Description copied from interface:ProgressIndicator
Registers a comment about the progress of the algorithm. This should not be called between calls toProgressIndicator.startStage(java.lang.String)
andProgressIndicator.endStage()
.- Specified by:
logMessage
in interfaceProgressIndicator
- Parameters:
msg
- message
-
run
public void run()Updates the state of the BoundedRangeModel - should only be called from the event dispatch thread.
-