1 11 package org.eclipse.help.internal.search; 12 import org.eclipse.core.runtime.*; 13 18 class LazyProgressMonitor extends ProgressMonitorWrapper { 19 private static final int MAX_STEPS = 100; 22 private final IProgressMonitor monitor; 23 private int totalWork; 24 private int work; 25 private int lastWorked; 26 private int treshold; 27 protected LazyProgressMonitor(IProgressMonitor monitor) { 28 super(monitor); 29 this.monitor = monitor; 30 } 31 34 public void beginTask(String name, int totalWork) { 35 if (totalWork > 0) { 36 this.totalWork = totalWork; 37 } 38 monitor.beginTask(name, totalWork); 39 work = 0; 40 lastWorked = 0; 41 treshold = 1 + totalWork / MAX_STEPS; 42 } 43 46 public void worked(int newWork) { 47 this.work += newWork; 48 if (work >= treshold) { 49 monitor.worked(work - lastWorked); 50 lastWorked = work; 51 treshold = work + 1 + totalWork / MAX_STEPS; 52 } 53 54 } 55 } 56 | Popular Tags |