package org.incha.ui.util; import org.incha.ui.TaskProgressMonitor; public class SubProgressMonitor implements TaskProgressMonitor { private final TaskProgressMonitor monitor; private String taskName; private String savedName; private int savedMax; private int savedProgress; private int maximum; private int progress; /** * @param monitor progress monitor. */ public SubProgressMonitor(final TaskProgressMonitor monitor) { super(); this.monitor = monitor; } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#setTaskName(java.lang.String) */ @Override public void setTaskName(final String name) { taskName = name; monitor.setTaskName(name); } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#beginTask(java.lang.String, int) */ @Override public void beginTask(final String taskName, final int max) { setTaskName(taskName); setMaximum(max); savedName = monitor.getTaskName(); savedMax = monitor.getMaximum(); savedProgress = monitor.getProgress(); //reset monitor monitor.setTaskName(getTaskName()); monitor.beginTask(taskName, max); } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#done() */ @Override public void done() { monitor.setTaskName(savedName); monitor.worked(0); monitor.setMaximum(savedMax); monitor.worked(savedProgress); } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#isCanceled() */ @Override public boolean isCanceled() { return monitor.isCanceled(); } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#setCanceled(boolean) */ @Override public void setCanceled(final boolean value) { monitor.setCanceled(value); } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#worked(int) */ @Override public void worked(final int value) { monitor.worked(value); } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#getTaskName() */ @Override public String getTaskName() { return taskName; } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#getMaximum() */ @Override public int getMaximum() { return maximum; } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#getProgress() */ @Override public int getProgress() { return progress; } /* (non-Javadoc) * @see org.incha.ui.core.TaskProgressMonitor#setMaximum(int) */ @Override public void setMaximum(final int max) { this.maximum = max; } }