001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.progress;
003
004import java.awt.Component;
005
006import org.openstreetmap.josm.Main;
007
008/**
009 * A singleton progress monitor that does nothing.
010 * @since 1811
011 */
012public final class NullProgressMonitor implements ProgressMonitor {
013
014    /** The unique instance */
015    public static final ProgressMonitor INSTANCE = new NullProgressMonitor();
016
017    private NullProgressMonitor() {
018        // Do nothing
019    }
020
021    @Override
022    public void addCancelListener(CancelListener listener) {
023        // Do nothing
024    }
025
026    @Override
027    public void beginTask(String title) {
028        if (Main.isDebugEnabled()) {
029            Main.debug(title);
030        }
031    }
032
033    @Override
034    public void beginTask(String title, int ticks) {
035        if (Main.isDebugEnabled()) {
036            Main.debug(title);
037        }
038    }
039
040    @Override
041    public void cancel() {
042        // Do nothing
043    }
044
045    @Override
046    public ProgressMonitor createSubTaskMonitor(int ticks, boolean internal) {
047        return INSTANCE;
048    }
049
050    @Override
051    public void finishTask() {
052        // Do nothing
053    }
054
055    @Override
056    public int getTicks() {
057        return 0;
058    }
059
060    @Override
061    public void indeterminateSubTask(String title) {
062        if (Main.isDebugEnabled()) {
063            Main.debug(title);
064        }
065    }
066
067    @Override
068    public void invalidate() {
069        // Do nothing
070    }
071
072    @Override
073    public boolean isCanceled() {
074        return false;
075    }
076
077    @Override
078    public void removeCancelListener(CancelListener listener) {
079        // Do nothing
080    }
081
082    @Override
083    public void setCustomText(String text) {
084        // Do nothing
085    }
086
087    @Override
088    public void setExtraText(String text) {
089        // Do nothing
090    }
091
092    @Override
093    public void appendLogMessage(String message) {
094        // Do nothing
095    }
096
097    @Override
098    public void setTicks(int ticks) {
099        // Do nothing
100    }
101
102    @Override
103    public void setTicksCount(int ticks) {
104        // Do nothing
105    }
106
107    @Override
108    public void subTask(String title) {
109        if (Main.isDebugEnabled()) {
110            Main.debug(title);
111        }
112    }
113
114    @Override
115    public void worked(int ticks) {
116        // Do nothing
117    }
118
119    @Override
120    public int getTicksCount() {
121        return 0;
122    }
123
124    @Override
125    public void setProgressTaskId(ProgressTaskId taskId) {
126        // Do nothing
127    }
128
129    @Override
130    public ProgressTaskId getProgressTaskId() {
131        return null;
132    }
133
134    @Override
135    public Component getWindowParent() {
136        return Main.parent;
137    }
138}