org.openstreetmap.josm.gui.progress
Class AbstractProgressMonitor

java.lang.Object
  extended by org.openstreetmap.josm.gui.progress.AbstractProgressMonitor
All Implemented Interfaces:
ProgressMonitor
Direct Known Subclasses:
ChildProgress, PleaseWaitProgressMonitor, SwingRenderingProgressMonitor

public abstract class AbstractProgressMonitor
extends java.lang.Object
implements ProgressMonitor


Nested Class Summary
private static class AbstractProgressMonitor.Request
           
protected static class AbstractProgressMonitor.State
           
 
Nested classes/interfaces inherited from interface org.openstreetmap.josm.gui.progress.ProgressMonitor
ProgressMonitor.CancelListener
 
Field Summary
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
           
(package private)  int ticks
           
(package private)  int ticksCount
           
 
Fields inherited from interface org.openstreetmap.josm.gui.progress.ProgressMonitor
ALL_TICKS, DEFAULT_TICKS
 
Constructor Summary
protected AbstractProgressMonitor(CancelHandler cancelHandler)
           
 
Method Summary
 void addCancelListener(ProgressMonitor.CancelListener listener)
           
 void 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)
           
 void beginTask(java.lang.String title, int ticks)
          Starts this progress monitor.
 void cancel()
           
protected  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()
           
 int getTicksCount()
           
 void indeterminateSubTask(java.lang.String title)
          Subtask that will show progress running back and forth
private  void internalUpdateProgress(double childProgress)
           
 void invalidate()
          Can be used if method receive ProgressMonitor but it's not interested progress monitoring.
 boolean isCanceled()
           
 void removeCancelListener(ProgressMonitor.CancelListener listener)
           
private  void resetState()
           
 void setCustomText(java.lang.String text)
          Shows additional text
 void setExtraText(java.lang.String text)
          Show extra text after normal task title.
 void setTicks(int ticks)
           
 void setTicksCount(int ticks)
           
 void subTask(java.lang.String title)
          Normal subtask
(package private) abstract  void updateProgress(double value)
           
 void 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

int ticksCount

ticks

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 java.util.Queue<AbstractProgressMonitor.Request> requests

currentChild

private AbstractProgressMonitor currentChild

requestedState

private AbstractProgressMonitor.Request requestedState
Constructor Detail

AbstractProgressMonitor

protected AbstractProgressMonitor(CancelHandler cancelHandler)
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)
Specified by:
beginTask in interface ProgressMonitor

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 interface ProgressMonitor

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 interface ProgressMonitor

invalidate

public void invalidate()
Description copied from interface: ProgressMonitor
Can be used if method receive ProgressMonitor but it's not interested progress monitoring. Basically replaces ProgressMonitor.beginTask(String) and ProgressMonitor.finishTask() This method can be also used in finally section if method expects that some exception might prevent it from passing progressMonitor away. If ProgressMonitor.beginTask(String) was already called then this method does nothing.

Specified by:
invalidate in interface ProgressMonitor

subTask

public void subTask(java.lang.String title)
Description copied from interface: ProgressMonitor
Normal subtask

Specified by:
subTask in interface ProgressMonitor
Parameters:
title - Can be null, 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 interface ProgressMonitor
Parameters:
title - Can be null, 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 interface ProgressMonitor

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 interface ProgressMonitor

appendLogMessage

public void appendLogMessage(java.lang.String message)
Default implementation is empty. Override in subclasses to display the log messages.

Specified by:
appendLogMessage in interface ProgressMonitor
Parameters:
message - the log message. Ignored if null or white space only.

resetState

private void resetState()

cancel

public void cancel()
Specified by:
cancel in interface ProgressMonitor

isCanceled

public boolean isCanceled()
Specified by:
isCanceled in interface ProgressMonitor

addCancelListener

public void addCancelListener(ProgressMonitor.CancelListener listener)
Specified by:
addCancelListener in interface ProgressMonitor

removeCancelListener

public void removeCancelListener(ProgressMonitor.CancelListener listener)
Specified by:
removeCancelListener in interface ProgressMonitor

updateProgress

abstract void updateProgress(double value)

setTicks

public void setTicks(int ticks)
Specified by:
setTicks in interface ProgressMonitor
Parameters:
ticks - Number of work units already done

setTicksCount

public void setTicksCount(int ticks)
Specified by:
setTicksCount in interface ProgressMonitor
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 interface ProgressMonitor

internalUpdateProgress

private void internalUpdateProgress(double childProgress)

getTicks

public int getTicks()
Specified by:
getTicks in interface ProgressMonitor

getTicksCount

public int getTicksCount()
Specified by:
getTicksCount in interface ProgressMonitor

createSubTaskMonitor

public ProgressMonitor createSubTaskMonitor(int ticks,
                                            boolean internal)
Description copied from interface: ProgressMonitor
Creates subtasks monitor.

Specified by:
createSubTaskMonitor in interface ProgressMonitor
Parameters:
ticks - Number of work units that should be done when subtask finishes
internal - If true then subtask can't modify task title/custom text
Returns:

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)


JOSM