001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.progress;
003
004import java.awt.Component;
005
006public class ChildProgress extends AbstractProgressMonitor {
007
008    private final AbstractProgressMonitor parent;
009    private final boolean internal;
010
011    public ChildProgress(AbstractProgressMonitor parent, CancelHandler cancelHandler, boolean internal) {
012        super(cancelHandler);
013        this.parent = parent;
014        this.internal = internal;
015    }
016
017    public final AbstractProgressMonitor getParent() {
018        return parent;
019    }
020
021    public final boolean isInternal() {
022        return internal;
023    }
024
025    @Override
026    protected void updateProgress(double value) {
027        parent.childSetProgress(this, value);
028    }
029
030    @Override
031    protected void doBeginTask() {
032        // Do nothing
033    }
034
035    @Override
036    protected void doSetCustomText(String title) {
037        if (!internal) {
038            parent.childSetCustomText(this, title);
039        }
040    }
041
042    @Override
043    protected void doSetTitle(String title) {
044        if (!internal) {
045            parent.childSetTitle(this, title);
046        }
047    }
048
049    @Override
050    protected void doSetIntermediate(boolean value) {
051        if (!internal) {
052            parent.childSetIntermediate(this, value);
053        }
054    }
055
056    @Override
057    protected void doFinishTask() {
058        parent.childFinished(this);
059    }
060
061    @Override
062    public void setProgressTaskId(ProgressTaskId taskId) {
063        parent.setProgressTaskId(taskId);
064    }
065
066    @Override
067    public ProgressTaskId getProgressTaskId() {
068        return parent.getProgressTaskId();
069    }
070
071    @Override
072    public Component getWindowParent() {
073        return parent.getWindowParent();
074    }
075}