/*
* ProgressIndicator.java
*
* Created on August 15, 2006, 12:30 PM
*
*/
package edu.oregonstate.cartography.gui;
/**
* ProgressIndicator defines the methods that an object must implemented to
* serve as progress indicator.
* @author Bernhard Jenny, Institute of Cartography, ETH Zurich.
*/
public interface ProgressIndicator {
/**
* start() should be called when the operation starts.
*/
public void start();
/**
* complete() is called to inform that the operation terminated. The GUI
* will be cleaned up.
*/
public void completeProgress();
/**
* progress() informs of the progress of the current task.
* @param percentage A value between 0 and 100
* @return True if the operation should continue, false if the user canceled
* the operation.
*/
public boolean progress(int percentage);
/**
* Call cancel() when the operation must stop. This will clean up
* the GUI and isCancelled() will return true.
*/
public void cancel();
/**
* Return whether the user canceled the operation, e.g. by pressing a
* Cancel button.
* @return True if cancelled.
*/
public boolean isCancelled();
/**
* Enable or disable button to cancel the operation.
* @param cancellable If true, the button is enabled. Default is true.
*/
public void setCancellable(boolean cancellable);
/**
* Display a message to the user. The message can change regularly. HTML is legal.
* @param msg
*/
public void setMessage(final String msg);
/**
* Sets the number of tasks. Each task has a progress between 0 and 100.
* If the number of tasks is larger than 1, progress of task 1 will be
* rescaled to 0..50.
* @param tasksCount The total number of tasks.
*/
public void setTotalTasksCount(int tasksCount);
/**
* Returns the total numbers of tasks for this progress indicator.
* @return The total numbers of tasks.
*/
public int getTotalTasksCount();
/**
* Switch to the next task.
*/
public void nextTask();
/**
* Switch to the next task and change the message text.
* @param message The new message text displayed in the GUI.
*/
public void nextTask (String message);
/**
* Returns the ID of the current task. The first task has ID 1 (and not 0).
* @return The ID of the current task.
*/
public int currentTask();
}