net.sourceforge.java.util.gui.swt
Class ProgressMonitor

java.lang.Object
  extended bynet.sourceforge.java.util.gui.swt.ProgressMonitor
All Implemented Interfaces:
IProgressMonitor

public class ProgressMonitor
extends Object
implements IProgressMonitor

Default IProgressMonitor implementation that reports the progress of a long running operation to a ProgressBar component.

Author:
Sebastian Machhausen

Field Summary
private  boolean canceled
           true if the ProgressMonitor has been canceled; false if running
private  ProgressBar progressBar
           The ProgressBar to report to
private  int totalWork
           The total number of work units to process
private  double worked
           The number of work units done
 
Fields inherited from interface org.eclipse.core.runtime.IProgressMonitor
UNKNOWN
 
Constructor Summary
ProgressMonitor(ProgressBar progressBar)
           Creates a new ProgressMonitor which updates the specified ProgressBar of any change in the reported progress.
 
Method Summary
 void beginTask(String name, int totalWork)
           This method has to be called to indicate that the task that reports its progress to this ProgressMonitor has begun its work.
 void done()
           Notifies that the work is done; that is, either the main task is completed or the user canceled it.
 void internalWorked(double work)
           Internal method to handle scaling correctly.
 boolean isCanceled()
           Returns whether cancelation of current operation has been requested.
 void setCanceled(boolean value)
          Sets the cancel state to the given value.
 void setProgress(int progress)
           Sets the current progress.
 void setProgressMaximum(int maximum)
           Sets the progress maximum.
 void setProgressMinimum(int minimum)
           Sets the progress minimum.
 void setTaskName(String name)
           Sets the task name to the given value.
 void subTask(String name)
           Notifies that a subtask of the main task is beginning.
 void worked(int work)
           Notifies that a given number of work unit of the main task has been completed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

progressBar

private ProgressBar progressBar

The ProgressBar to report to


canceled

private boolean canceled

true if the ProgressMonitor has been canceled; false if running


totalWork

private int totalWork

The total number of work units to process


worked

private double worked

The number of work units done

Constructor Detail

ProgressMonitor

public ProgressMonitor(ProgressBar progressBar)

Creates a new ProgressMonitor which updates the specified ProgressBar of any change in the reported progress.

Parameters:
progressBar - the ProgressBar to notify of any progress updates
Method Detail

beginTask

public void beginTask(String name,
                      int totalWork)

This method has to be called to indicate that the task that reports its progress to this ProgressMonitor has begun its work.

Specified by:
beginTask in interface IProgressMonitor
Parameters:
name - the name (or description) of the main task
totalWork - the total number of work units into which the main task is been subdivided. If the value is UNKNOWN the implementation is free to indicate progress in a way which doesn't require the total number of work units in advance.

done

public void done()

Notifies that the work is done; that is, either the main task is completed or the user canceled it. This method may be called more than once (implementations should be prepared to handle this case).

Specified by:
done in interface IProgressMonitor

internalWorked

public void internalWorked(double work)

Internal method to handle scaling correctly. This method must not be called by a client. Clients should always use the method worked(int).

Specified by:
internalWorked in interface IProgressMonitor
Parameters:
work - the amount of work done

isCanceled

public boolean isCanceled()

Returns whether cancelation of current operation has been requested. Long-running operations should poll to see if cancelation has been requested.

Specified by:
isCanceled in interface IProgressMonitor
Returns:
true if cancellation has been requested, and false otherwise
See Also:
setCanceled(boolean)

setCanceled

public void setCanceled(boolean value)
Sets the cancel state to the given value.

Specified by:
setCanceled in interface IProgressMonitor
Parameters:
value - true indicates that cancelation has been requested (but not necessarily acknowledged); false clears this flag
See Also:
isCanceled()

setTaskName

public void setTaskName(String name)

Sets the task name to the given value. This method is used to restore the task label after a nested operation was executed. Normally there is no need for clients to call this method.

Specified by:
setTaskName in interface IProgressMonitor
Parameters:
name - the name (or description) of the main task
See Also:
beginTask(java.lang.String, int)

subTask

public void subTask(String name)

Notifies that a subtask of the main task is beginning. Subtasks are optional; the main task might not have subtasks.

Specified by:
subTask in interface IProgressMonitor
Parameters:
name - the name (or description) of the subtask

worked

public void worked(int work)

Notifies that a given number of work unit of the main task has been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date.

Specified by:
worked in interface IProgressMonitor
Parameters:
work - the number of work units just completed

setProgressMinimum

public void setProgressMinimum(int minimum)

Sets the progress minimum.

Parameters:
minimum - the progress minimum

setProgressMaximum

public void setProgressMaximum(int maximum)

Sets the progress maximum.

Parameters:
maximum - the progress maximum

setProgress

public void setProgress(int progress)

Sets the current progress.

Parameters:
progress - the progress to set