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    }
033
034    @Override
035    protected void doSetCustomText(String title) {
036        if (!internal) {
037            parent.childSetCustomText(this, title);
038        }
039    }
040
041    @Override
042    protected void doSetTitle(String title) {
043        if (!internal) {
044            parent.childSetTitle(this, title);
045        }
046    }
047
048    @Override
049    protected void doSetIntermediate(boolean value) {
050        if (!internal) {
051            parent.childSetIntermediate(this, value);
052        }
053    }
054
055    @Override
056    protected void doFinishTask() {
057        parent.childFinished(this);
058    }
059
060    @Override
061    public void setProgressTaskId(ProgressTaskId taskId) {
062        parent.setProgressTaskId(taskId);
063    }
064
065    @Override
066    public ProgressTaskId getProgressTaskId() {
067        return parent.getProgressTaskId();
068    }
069
070    @Override
071    public Component getWindowParent() {
072        return parent.getWindowParent();
073    }
074}