package com.tibco.as.spacebar.ui.transfer; import java.util.Collection; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.SubProgressMonitor; import com.tibco.as.io.IInputStream; import com.tibco.as.io.IMetaspaceTransferListener; import com.tibco.as.io.ITransfer; public class MetaspaceTransferListener implements IMetaspaceTransferListener { private final static int PROGRESS_UNIT_FACTOR = 100; private IProgressMonitor monitor; private String taskName; public MetaspaceTransferListener(IProgressMonitor monitor, String taskName) { this.monitor = monitor; this.taskName = taskName; } @Override public void opening(Collection<ITransfer> transfers) { monitor.beginTask(taskName, transfers.size() * PROGRESS_UNIT_FACTOR); } @Override public void executing(ITransfer transfer) { long size = transfer.size(); if (size == IInputStream.UNKNOWN_SIZE) { monitor.beginTask(taskName, IProgressMonitor.UNKNOWN); return; } SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, PROGRESS_UNIT_FACTOR); subMonitor.beginTask(transfer.toString(), (int) size); transfer.addListener(new TransferListener(transfer, subMonitor)); } }