001    // License: GPL. For details, see LICENSE file.
002    package org.openstreetmap.josm.gui.progress;
003    
004    import java.awt.Component;
005    
006    public 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        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    }