001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.progress;
003
004/**
005 * Swing components can implement this interface and use a {@code SwingRenderingProgressMonitor}
006 * to render progress information.
007 */
008public interface ProgressRenderer {
009    /**
010     * Sets the title to display
011     * @param taskTitle The title text
012     */
013    void setTaskTitle(String taskTitle);
014
015    /**
016     * Sets the custom text below the title
017     * @param message The message
018     */
019    void setCustomText(String message);
020
021    /**
022     * Display the value as indeterminate value (unknown progress)
023     * @param indeterminate <code>true</code> if the progress is unknown
024     */
025    void setIndeterminate(boolean indeterminate);
026
027    /**
028     * Sets the maximum possible progress
029     * @param maximum The minimum value
030     */
031    void setMaximum(int maximum);
032
033    /**
034     * Sets the current progress
035     * @param value The progress, in range 0...maximum
036     * @see #setMaximum(int)
037     */
038    void setValue(int value);
039}