package name.abuchen.portfolio.ui; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.ProgressBar; public class ProgressMonitor implements IProgressMonitor { private final ProgressBar bar; public ProgressMonitor(ProgressBar progressIndicator) { this.bar = progressIndicator; } @Override public void beginTask(final String name, final int totalWork) { Display.getDefault().asyncExec(() -> { if (!bar.isDisposed()) { bar.setMaximum(totalWork); bar.setToolTipText(name); } }); } @Override public void worked(final int work) { Display.getDefault().asyncExec(() -> { if (!bar.isDisposed()) bar.setSelection(bar.getSelection() + work); }); } @Override public void subTask(String name) { // ignore - not supported } @Override public void setTaskName(String name) { // ignore - not supported } @Override public void setCanceled(boolean value) { // ignore - not supported } @Override public boolean isCanceled() { return false; } @Override public void internalWorked(double work) { // ignore - not supported } @Override public void done() { // ignore - not supported } }