Class AbstractProgressMonitor
- java.lang.Object
-
- org.openstreetmap.josm.gui.progress.AbstractProgressMonitor
-
- All Implemented Interfaces:
ProgressMonitor
- Direct Known Subclasses:
ChildProgress
,CLIProgressMonitor
,PleaseWaitProgressMonitor
,SwingRenderingProgressMonitor
public abstract class AbstractProgressMonitor extends java.lang.Object implements ProgressMonitor
This class contains the progress logic required to implement aProgressMonitor
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AbstractProgressMonitor.Request
static class
AbstractProgressMonitor.State
Progress monitor state-
Nested classes/interfaces inherited from interface org.openstreetmap.josm.gui.progress.ProgressMonitor
ProgressMonitor.CancelListener
-
-
Field Summary
Fields Modifier and Type Field Description private CancelHandler
cancelHandler
private int
childTicks
private AbstractProgressMonitor
currentChild
private java.lang.String
customText
private java.lang.String
extraText
private boolean
intermediateTask
private AbstractProgressMonitor.Request
requestedState
private java.util.Queue<AbstractProgressMonitor.Request>
requests
private java.lang.String
shownCustomText
private java.lang.String
shownTitle
protected AbstractProgressMonitor.State
state
private java.lang.String
taskTitle
private int
ticks
private int
ticksCount
-
Fields inherited from interface org.openstreetmap.josm.gui.progress.ProgressMonitor
ALL_TICKS, DEFAULT_TICKS
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractProgressMonitor(CancelHandler cancelHandler)
Create a newAbstractProgressMonitor
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addCancelListener(ProgressMonitor.CancelListener listener)
Add listener for user abort actionvoid
appendLogMessage(java.lang.String message)
Default implementation is empty.private void
applyChildRequest(AbstractProgressMonitor.Request request)
private void
applyThisRequest(AbstractProgressMonitor.Request request)
void
beginTask(java.lang.String title)
Starts this progress monitor.void
beginTask(java.lang.String title, int ticks)
Starts this progress monitor.void
cancel()
Abort current operation, usually called when user somehow requested an abortprotected void
checkState(AbstractProgressMonitor.State... expectedStates)
protected void
childFinished(AbstractProgressMonitor child)
protected void
childSetCustomText(AbstractProgressMonitor child, java.lang.String customText)
protected void
childSetIntermediate(AbstractProgressMonitor child, boolean value)
protected void
childSetProgress(AbstractProgressMonitor child, double value)
protected void
childSetTitle(AbstractProgressMonitor child, java.lang.String title)
ProgressMonitor
createSubTaskMonitor(int ticks, boolean internal)
Creates subtasks monitor.protected abstract void
doBeginTask()
protected abstract void
doFinishTask()
protected abstract void
doSetCustomText(java.lang.String title)
protected abstract void
doSetIntermediate(boolean value)
protected abstract void
doSetTitle(java.lang.String title)
void
finishTask()
Finish this progress monitor, close the dialog or inform the parent progress monitor that it can continue with other tasks.private AbstractProgressMonitor.Request
getRequest(AbstractProgressMonitor child)
int
getTicks()
Get the current number of work unitsint
getTicksCount()
Get the total number of work unitsvoid
indeterminateSubTask(java.lang.String title)
Subtask that will show progress running back and forthprivate void
internalUpdateProgress(double childProgress)
void
invalidate()
Can be used if method receives ProgressMonitor, but it's not interested progress monitoring.boolean
isCanceled()
Returns the state of user abortsvoid
removeCancelListener(ProgressMonitor.CancelListener listener)
Remove listener for user abort actionprivate void
resetState()
void
setCustomText(java.lang.String text)
Shows additional textvoid
setExtraText(java.lang.String text)
Show extra text after normal task title.void
setTicks(int ticks)
Set the current number of work unitsvoid
setTicksCount(int ticks)
Set the total number of work unitsvoid
subTask(java.lang.String title)
Normal subtaskprotected abstract void
updateProgress(double value)
Update progress messagevoid
worked(int ticks)
Increase number of already done work units by ticks-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.gui.progress.ProgressMonitor
getProgressTaskId, getWindowParent, setProgressTaskId
-
-
-
-
Field Detail
-
cancelHandler
private final CancelHandler cancelHandler
-
state
protected AbstractProgressMonitor.State state
-
ticksCount
private int ticksCount
-
ticks
private int ticks
-
childTicks
private int childTicks
-
taskTitle
private java.lang.String taskTitle
-
customText
private java.lang.String customText
-
extraText
private java.lang.String extraText
-
shownTitle
private java.lang.String shownTitle
-
shownCustomText
private java.lang.String shownCustomText
-
intermediateTask
private boolean intermediateTask
-
requests
private final java.util.Queue<AbstractProgressMonitor.Request> requests
-
currentChild
private AbstractProgressMonitor currentChild
-
requestedState
private AbstractProgressMonitor.Request requestedState
-
-
Constructor Detail
-
AbstractProgressMonitor
protected AbstractProgressMonitor(CancelHandler cancelHandler)
Create a newAbstractProgressMonitor
- Parameters:
cancelHandler
- The handler that gets notified when the process is canceled.
-
-
Method Detail
-
doBeginTask
protected abstract void doBeginTask()
-
doFinishTask
protected abstract void doFinishTask()
-
doSetIntermediate
protected abstract void doSetIntermediate(boolean value)
-
doSetTitle
protected abstract void doSetTitle(java.lang.String title)
-
doSetCustomText
protected abstract void doSetCustomText(java.lang.String title)
-
checkState
protected void checkState(AbstractProgressMonitor.State... expectedStates)
-
beginTask
public void beginTask(java.lang.String title)
Description copied from interface:ProgressMonitor
Starts this progress monitor. Must be called exactly once Ticks count is set to default value- Specified by:
beginTask
in interfaceProgressMonitor
- Parameters:
title
- title text of the task
-
beginTask
public void beginTask(java.lang.String title, int ticks)
Description copied from interface:ProgressMonitor
Starts this progress monitor. Must be called exactly once- Specified by:
beginTask
in interfaceProgressMonitor
- Parameters:
title
- title text of the taskticks
- number of work units (seeProgressMonitor.setTicksCount(int ticks)
)
-
finishTask
public void finishTask()
Description copied from interface:ProgressMonitor
Finish this progress monitor, close the dialog or inform the parent progress monitor that it can continue with other tasks. Must be called at least once (if called multiply times then further calls are ignored)- Specified by:
finishTask
in interfaceProgressMonitor
-
invalidate
public void invalidate()
Description copied from interface:ProgressMonitor
Can be used if method receives ProgressMonitor, but it's not interested progress monitoring. Basically replacesProgressMonitor.beginTask(String)
andProgressMonitor.finishTask()
This method can be also used in finally section if method expects that some exceptions might prevent it from passing progressMonitor away. IfProgressMonitor.beginTask(String)
was already called then this method does nothing.- Specified by:
invalidate
in interfaceProgressMonitor
-
subTask
public void subTask(java.lang.String title)
Description copied from interface:ProgressMonitor
Normal subtask- Specified by:
subTask
in interfaceProgressMonitor
- Parameters:
title
- Can benull
, in that case task title is not changed
-
indeterminateSubTask
public void indeterminateSubTask(java.lang.String title)
Description copied from interface:ProgressMonitor
Subtask that will show progress running back and forth- Specified by:
indeterminateSubTask
in interfaceProgressMonitor
- Parameters:
title
- Can benull
, in that case task title is not changed
-
setCustomText
public void setCustomText(java.lang.String text)
Description copied from interface:ProgressMonitor
Shows additional text- Specified by:
setCustomText
in interfaceProgressMonitor
- Parameters:
text
- custom text
-
setExtraText
public void setExtraText(java.lang.String text)
Description copied from interface:ProgressMonitor
Show extra text after normal task title. Hack for ProgressInputStream to show number of kB already downloaded- Specified by:
setExtraText
in interfaceProgressMonitor
- Parameters:
text
- extra text
-
appendLogMessage
public void appendLogMessage(java.lang.String message)
Default implementation is empty. Override in subclasses to display the log messages.- Specified by:
appendLogMessage
in interfaceProgressMonitor
- Parameters:
message
- the log message. Ignored if null or white space only.
-
resetState
private void resetState()
-
cancel
public void cancel()
Description copied from interface:ProgressMonitor
Abort current operation, usually called when user somehow requested an abort- Specified by:
cancel
in interfaceProgressMonitor
-
isCanceled
public boolean isCanceled()
Description copied from interface:ProgressMonitor
Returns the state of user aborts- Specified by:
isCanceled
in interfaceProgressMonitor
- Returns:
true
if user aborted operation
-
addCancelListener
public void addCancelListener(ProgressMonitor.CancelListener listener)
Description copied from interface:ProgressMonitor
Add listener for user abort action- Specified by:
addCancelListener
in interfaceProgressMonitor
- Parameters:
listener
- the listener for cancel operation
-
removeCancelListener
public void removeCancelListener(ProgressMonitor.CancelListener listener)
Description copied from interface:ProgressMonitor
Remove listener for user abort action- Specified by:
removeCancelListener
in interfaceProgressMonitor
- Parameters:
listener
- the listener for cancel operation
-
updateProgress
protected abstract void updateProgress(double value)
Update progress message- Parameters:
value
- The percentage of completion (this and child progress)
-
setTicks
public void setTicks(int ticks)
Description copied from interface:ProgressMonitor
Set the current number of work units- Specified by:
setTicks
in interfaceProgressMonitor
- Parameters:
ticks
- Number of work units already done
-
setTicksCount
public void setTicksCount(int ticks)
Description copied from interface:ProgressMonitor
Set the total number of work units- Specified by:
setTicksCount
in interfaceProgressMonitor
- Parameters:
ticks
- Number of total work units
-
worked
public void worked(int ticks)
Description copied from interface:ProgressMonitor
Increase number of already done work units by ticks- Specified by:
worked
in interfaceProgressMonitor
- Parameters:
ticks
- number of ticks to add
-
internalUpdateProgress
private void internalUpdateProgress(double childProgress)
-
getTicks
public int getTicks()
Description copied from interface:ProgressMonitor
Get the current number of work units- Specified by:
getTicks
in interfaceProgressMonitor
- Returns:
- Number of work units already done
-
getTicksCount
public int getTicksCount()
Description copied from interface:ProgressMonitor
Get the total number of work units- Specified by:
getTicksCount
in interfaceProgressMonitor
- Returns:
- Number of total work units
-
createSubTaskMonitor
public ProgressMonitor createSubTaskMonitor(int ticks, boolean internal)
Description copied from interface:ProgressMonitor
Creates subtasks monitor.- Specified by:
createSubTaskMonitor
in interfaceProgressMonitor
- Parameters:
ticks
- Number of work units that should be done when subtask finishesinternal
- If true then subtask can't modify task title/custom text- Returns:
- subtasks monitor
-
applyChildRequest
private void applyChildRequest(AbstractProgressMonitor.Request request)
-
applyThisRequest
private void applyThisRequest(AbstractProgressMonitor.Request request)
-
childFinished
protected void childFinished(AbstractProgressMonitor child)
-
getRequest
private AbstractProgressMonitor.Request getRequest(AbstractProgressMonitor child)
-
childSetProgress
protected void childSetProgress(AbstractProgressMonitor child, double value)
-
childSetTitle
protected void childSetTitle(AbstractProgressMonitor child, java.lang.String title)
-
childSetCustomText
protected void childSetCustomText(AbstractProgressMonitor child, java.lang.String customText)
-
childSetIntermediate
protected void childSetIntermediate(AbstractProgressMonitor child, boolean value)
-
-