Class TaskDialog
- java.lang.Object
-
- docking.DialogComponentProvider
-
- ghidra.util.task.TaskDialog
-
- All Implemented Interfaces:
ActionContextProvider
,StatusListener
,TaskListener
,TaskMonitor
public class TaskDialog extends DialogComponentProvider implements TaskMonitor
Dialog that is displayed to show activity for a Task that is running outside of the Swing Thread.Implementation note: if this class is constructed with a
hasProgress
value offalse
, then an activity component will be shown, not a progress monitor. Any calls to update progress will not affect the display. However, the display can be converted to use progress by first callingsetIndeterminate(boolean)
with afalse
value and then callinginitialize(long)
. Once this has happened, this dialog will no longer use the activity display--the progress bar is in effect for the duration of this dialog's usage.This dialog can be toggled between indeterminate mode and progress mode via calls to
setIndeterminate(boolean)
.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_WIDTH
-
Fields inherited from class docking.DialogComponentProvider
applyButton, buttonPanel, cancelButton, dismissButton, okButton, rootPanel
-
Fields inherited from interface ghidra.util.task.TaskMonitor
DUMMY, NO_PROGRESS_VALUE
-
-
Constructor Summary
Constructors Constructor Description TaskDialog(Task task)
ConstructorTaskDialog(java.lang.String title, boolean canCancel, boolean isModal, boolean hasProgress)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCancelledListener(CancelledListener listener)
Add cancelled listenervoid
cancel()
Cancel the taskprotected void
cancelCallback()
The callback method for when the "Cancel" button is pressed.void
checkCanceled()
Check to see if this monitor has been canceledvoid
clearCanceled()
Clear the cancellation so that this TaskMonitor may be reusedvoid
dispose()
Cancels the task and closes this dialogprotected void
doShow()
long
getMaximum()
Returns the current maximum value for progressjava.lang.String
getMessage()
Gets the last set message of this monitorlong
getProgress()
Returns the current progress value orTaskMonitor.NO_PROGRESS_VALUE
if there is no value setvoid
incrementProgress(long incrementAmount)
A convenience method to increment the current progress by the given valuevoid
initialize(long max)
Initialized this TaskMonitor to the given max values.boolean
isCancelEnabled()
Returns true if the cancel button is enabledboolean
isCancelled()
Returns true if the user has cancelled the operationboolean
isCompleted()
Returns true if this dialog's task has completed normally or been cancelledboolean
isIndeterminate()
Returns true if this monitor shows no progressvoid
removeCancelledListener(CancelledListener listener)
Remove cancelled listenervoid
setCancelEnabled(boolean enable)
Sets the enablement state of the "CANCEL" button.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(java.lang.String str)
Sets the message displayed on the task monitorvoid
setProgress(long progress)
Sets the current progress valuevoid
setShowProgressValue(boolean showProgressValue)
True (the default) signals to paint the progress information inside of the progress barvoid
show(int delay)
Shows the dialog window centered on the parent window.void
taskProcessed()
Called after the task has been executed or when the task is cancelledboolean
wasShown()
Returns true if this dialog was ever made visible-
Methods inherited from class docking.DialogComponentProvider
addAction, addApplyButton, addButton, addCancelButton, addDismissButton, addOKButton, addWorkPanel, alertMessage, alertMessage, applyCallback, cancelCurrentTask, clearScheduledTask, clearStatusText, close, dialogClosed, dialogShown, dismissCallback, doInitialize, escapeCallback, executeProgressTask, getActionContext, getActions, getBackground, getBounds, getComponent, getDefaultButton, getDefaultSize, getDialogSize, getFocusComponent, getGlassPane, getHelpLocatdion, getId, getIntialLocation, getLocationOnScreen, getParent, getPreferredSize, getRemberSize, getRememberLocation, getStatusColor, getStatusLabel, getStatusText, getTaskMonitorComponent, getTaskScheduler, getTitle, getUseSharedLocation, hideTaskMonitorComponent, isApplyEnabled, isModal, isOKEnabled, isResizeable, isRunningTask, isShowing, isTransient, isVisible, notifyContextChanged, okCallback, removeAction, removeButton, removeWorkPanel, repack, setApplyEnabled, setApplyToolTip, setBackground, setCancelButtonText, setCancelToolTip, setCursor, setDefaultButton, setDefaultSize, setDialogSize, setDismissToolTip, setFocusComponent, setGlassPane, setHelpLocation, setInitialLocation, setMinimumSize, setMinimumSize, setOkButtonText, setOkEnabled, setOkToolTip, setPreferredSize, setRememberLocation, setRememberSize, setResizable, setStatusJustification, setStatusText, setStatusText, setStatusText, setTitle, setTransient, setUseSharedLocation, showProgressBar, showTaskMonitorComponent, stopProgressTimer, taskCancelled, taskCompleted, toFront, toString, waitForCurrentTask
-
-
-
-
Field Detail
-
DEFAULT_WIDTH
public static final int DEFAULT_WIDTH
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TaskDialog
public TaskDialog(Task task)
Constructor- Parameters:
task
- the Task that this dialog will be associated with
-
TaskDialog
public TaskDialog(java.lang.String title, boolean canCancel, boolean isModal, boolean hasProgress)
Constructor- Parameters:
title
- title for the dialogcanCancel
- true if the task can be canceledisModal
- true if the dialog should be modalhasProgress
- true if the dialog should show a progress bar
-
-
Method Detail
-
cancelCallback
protected void cancelCallback()
Description copied from class:DialogComponentProvider
The callback method for when the "Cancel" button is pressed. The default behavior is to call setVisible(false) and dispose() on the dialog.- Overrides:
cancelCallback
in classDialogComponentProvider
-
setCancelEnabled
public void setCancelEnabled(boolean enable)
Description copied from class:DialogComponentProvider
Sets the enablement state of the "CANCEL" button.- Specified by:
setCancelEnabled
in interfaceTaskMonitor
- Overrides:
setCancelEnabled
in classDialogComponentProvider
- Parameters:
enable
- true to enable the button, false to disable the button.
-
isCancelEnabled
public boolean isCancelEnabled()
Description copied from class:DialogComponentProvider
Returns true if the cancel button is enabled- Specified by:
isCancelEnabled
in interfaceTaskMonitor
- Overrides:
isCancelEnabled
in classDialogComponentProvider
- Returns:
- true if the cancel button is enabled
-
taskProcessed
public void taskProcessed()
Called after the task has been executed or when the task is cancelled
-
isCompleted
public boolean isCompleted()
Returns true if this dialog's task has completed normally or been cancelled- Returns:
- true if this dialog's task has completed normally or been cancelled
-
show
public void show(int delay)
Shows the dialog window centered on the parent window. Dialog display is delayed if delay greater than zero.
-
wasShown
public boolean wasShown()
Returns true if this dialog was ever made visible- Returns:
- true if shown
-
doShow
protected void doShow()
-
dispose
public void dispose()
Cancels the task and closes this dialog- Overrides:
dispose
in classDialogComponentProvider
-
setMessage
public void setMessage(java.lang.String str)
Description copied from interface:TaskMonitor
Sets the message displayed on the task monitor- Specified by:
setMessage
in interfaceTaskMonitor
- Parameters:
str
- the message to display
-
getMessage
public java.lang.String getMessage()
Description copied from interface:TaskMonitor
Gets the last set message of this monitor- Specified by:
getMessage
in interfaceTaskMonitor
- Returns:
- the message
-
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
-
setProgress
public void setProgress(long progress)
Description copied from interface:TaskMonitor
Sets the current progress value- Specified by:
setProgress
in interfaceTaskMonitor
- Parameters:
progress
- 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
-
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
-
cancel
public void cancel()
Description copied from interface:TaskMonitor
Cancel the task- Specified by:
cancel
in interfaceTaskMonitor
-
clearCanceled
public void clearCanceled()
Description copied from interface:TaskMonitor
Clear the cancellation so that this TaskMonitor may be reused- Specified by:
clearCanceled
in interfaceTaskMonitor
-
checkCanceled
public void checkCanceled() throws CancelledException
Description copied from interface:TaskMonitor
Check to see if this monitor has been canceled- Specified by:
checkCanceled
in interfaceTaskMonitor
- Throws:
CancelledException
- if monitor has been cancelled
-
incrementProgress
public void incrementProgress(long incrementAmount)
Description copied from interface:TaskMonitor
A convenience method to increment the current progress by the given value- 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
-
addCancelledListener
public void addCancelledListener(CancelledListener listener)
Description copied from interface:TaskMonitor
Add cancelled listener- Specified by:
addCancelledListener
in interfaceTaskMonitor
- Parameters:
listener
- the cancel listener
-
removeCancelledListener
public void removeCancelledListener(CancelledListener listener)
Description copied from interface:TaskMonitor
Remove cancelled listener- Specified by:
removeCancelledListener
in interfaceTaskMonitor
- Parameters:
listener
- the cancel listener
-
-