Package ghidra.util.task
Class WrappingTaskMonitor
java.lang.Object
ghidra.util.task.WrappingTaskMonitor
- All Implemented Interfaces:
TaskMonitor
- Direct Known Subclasses:
CancelOnlyWrappingTaskMonitor
,PreserveStateWrappingTaskMonitor
,UnknownProgressWrappingTaskMonitor
An implementation of the
TaskMonitor
interface that simply wraps a delegate task
monitor. This is useful for classes that wish to wrap a task monitor, changing behavior
as needed by overriding a subset of methods.
Synchronization Policy:
We wish for this class to be performant. Thus, we do not synchronize the methods of this
class. The setDelegate(TaskMonitor)
is synchronized to ensure thread visibility
for the state of the delegate monitor.
When calling setDelegate(TaskMonitor)
there is the potential for the values being
transferred to become inconsistent with any new values being set. We have decided that this
does not much matter for the overall progress or the messages on the monitor. However, most
of the other setter methods could lead to bad behavior if they are inconsistent.
-
Field Summary
Fields inherited from interface ghidra.util.task.TaskMonitor
DUMMY, NO_PROGRESS_VALUE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addCancelledListener
(CancelledListener listener) Add cancelled listenervoid
cancel()
Cancel the taskvoid
Deprecated.void
Check to see if this monitor has been cancelledvoid
Clear the cancellation so that this TaskMonitor may be reusedlong
Returns the current maximum value for progressGets the last set message of this monitorlong
Returns the current progress value orTaskMonitor.NO_PROGRESS_VALUE
if there is no value setvoid
incrementProgress
(long incrementAmount) Changes the progress value by the specified amount.void
initialize
(long max) Initialized this TaskMonitor to the given max values.boolean
Returns true if cancel ability is enabledboolean
Returns true if the user has cancelled the operationboolean
Returns true if this monitor shows no progressvoid
removeCancelledListener
(CancelledListener listener) Remove cancelled listenervoid
setCancelEnabled
(boolean enable) Set the enablement of the Cancel buttonvoid
setDelegate
(TaskMonitor newDelegate) Sets the delegate of this wrapper to be the new value.void
setIndeterminate
(boolean indeterminate) An indeterminate task monitor may choose to show an animation instead of updating progressvoid
setMaximum
(long max) Set the progress maximum valuevoid
setMessage
(String message) Sets the message displayed on the task monitorvoid
setProgress
(long value) Sets the current progress valuevoid
setShowProgressValue
(boolean showProgressValue) True (the default) signals to paint the progress information inside of the progress barMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ghidra.util.task.TaskMonitor
clearCancelled, increment, increment, incrementProgress, initialize
-
Field Details
-
delegate
-
-
Constructor Details
-
WrappingTaskMonitor
Constructor- Parameters:
delegate
- the delegate task monitor
-
-
Method Details
-
setDelegate
Sets the delegate of this wrapper to be the new value. The new delegate will be initialized with the current values of the existing delegate.- Parameters:
newDelegate
- the new delegate
-
isCancelled
public boolean isCancelled()Description copied from interface:TaskMonitor
Returns true if the user has cancelled the operation- Specified by:
isCancelled
in interfaceTaskMonitor
- Returns:
- true if the user has cancelled the operation
-
setShowProgressValue
public void setShowProgressValue(boolean showProgressValue) Description copied from interface:TaskMonitor
True (the default) signals to paint the progress information inside of the progress bar- Specified by:
setShowProgressValue
in interfaceTaskMonitor
- Parameters:
showProgressValue
- true to paint the progress value; false to not
-
setMessage
Description copied from interface:TaskMonitor
Sets the message displayed on the task monitor- Specified by:
setMessage
in interfaceTaskMonitor
- Parameters:
message
- the message to display
-
getMessage
Description copied from interface:TaskMonitor
Gets the last set message of this monitor- Specified by:
getMessage
in interfaceTaskMonitor
- Returns:
- the message
-
setProgress
public void setProgress(long value) Description copied from interface:TaskMonitor
Sets the current progress value- Specified by:
setProgress
in interfaceTaskMonitor
- Parameters:
value
- progress value
-
initialize
public void initialize(long max) Description copied from interface:TaskMonitor
Initialized this TaskMonitor to the given max values. The current value of this monitor will be set to zero.- Specified by:
initialize
in interfaceTaskMonitor
- Parameters:
max
- maximum value for progress
-
setMaximum
public void setMaximum(long max) Description copied from interface:TaskMonitor
Set the progress maximum valueNote: setting this value will reset the progress to be the max if the progress is currently greater than the new new max value.
- Specified by:
setMaximum
in interfaceTaskMonitor
- Parameters:
max
- maximum value for progress
-
getMaximum
public long getMaximum()Description copied from interface:TaskMonitor
Returns the current maximum value for progress- Specified by:
getMaximum
in interfaceTaskMonitor
- Returns:
- the maximum progress value
-
setIndeterminate
public void setIndeterminate(boolean indeterminate) Description copied from interface:TaskMonitor
An indeterminate task monitor may choose to show an animation instead of updating progress- Specified by:
setIndeterminate
in interfaceTaskMonitor
- Parameters:
indeterminate
- true if indeterminate
-
isIndeterminate
public boolean isIndeterminate()Description copied from interface:TaskMonitor
Returns true if this monitor shows no progress- Specified by:
isIndeterminate
in interfaceTaskMonitor
- Returns:
- true if this monitor shows no progress
-
checkCanceled
Deprecated.Description copied from interface:TaskMonitor
Check to see if this monitor has been cancelled- Specified by:
checkCanceled
in interfaceTaskMonitor
- Throws:
CancelledException
- if monitor has been cancelled
-
checkCancelled
Description copied from interface:TaskMonitor
Check to see if this monitor has been cancelled- Specified by:
checkCancelled
in interfaceTaskMonitor
- Throws:
CancelledException
- if monitor has been cancelled
-
incrementProgress
public void incrementProgress(long incrementAmount) Description copied from interface:TaskMonitor
Changes the progress value by the specified amount.- Specified by:
incrementProgress
in interfaceTaskMonitor
- Parameters:
incrementAmount
- The amount by which to increment the progress
-
getProgress
public long getProgress()Description copied from interface:TaskMonitor
Returns the current progress value orTaskMonitor.NO_PROGRESS_VALUE
if there is no value set- Specified by:
getProgress
in interfaceTaskMonitor
- Returns:
- the current progress value or
TaskMonitor.NO_PROGRESS_VALUE
if there is no value set
-
cancel
public void cancel()Description copied from interface:TaskMonitor
Cancel the task- Specified by:
cancel
in interfaceTaskMonitor
-
addCancelledListener
Description copied from interface:TaskMonitor
Add cancelled listener- Specified by:
addCancelledListener
in interfaceTaskMonitor
- Parameters:
listener
- the cancel listener
-
removeCancelledListener
Description copied from interface:TaskMonitor
Remove cancelled listener- Specified by:
removeCancelledListener
in interfaceTaskMonitor
- Parameters:
listener
- the cancel listener
-
setCancelEnabled
public void setCancelEnabled(boolean enable) Description copied from interface:TaskMonitor
Set the enablement of the Cancel button- Specified by:
setCancelEnabled
in interfaceTaskMonitor
- Parameters:
enable
- true means to enable the cancel button
-
isCancelEnabled
public boolean isCancelEnabled()Description copied from interface:TaskMonitor
Returns true if cancel ability is enabled- Specified by:
isCancelEnabled
in interfaceTaskMonitor
- Returns:
- true if cancel ability is enabled
-
clearCanceled
public void clearCanceled()Description copied from interface:TaskMonitor
Clear the cancellation so that this TaskMonitor may be reused- Specified by:
clearCanceled
in interfaceTaskMonitor
-