private void View_BandwidthChangedEvent() { foreach (IProgressView progressView in View.SelectedTransfers) { Transfer transfer = GetTransferFromView(progressView); transfer.setBandwidth(View.Bandwidth); if (transfer.isRunning()) { BackgroundActionRegistry registry = getRegistry(); // Find matching background task for (int i = 0; i < registry.size(); i++) { if (registry.get(i) is TransferBackgroundAction) { TransferBackgroundAction t = (TransferBackgroundAction)registry.get(i); if (t.getTransfer().Equals(transfer)) { TransferSpeedometer meter = t.getMeter(); meter.reset(); } } } } } UpdateBandwidthPopup(); }
private void Init() { View.ModelTitleGetter = delegate(object rowObject) { return(((AbstractBackgroundAction)rowObject).toString()); }; View.ModelDescriptionGetter = delegate(object rowObject) { return (((BackgroundAction)rowObject).getActivity()); }; View.ModelIsRunningGetter = delegate(object rowObject) { return(((BackgroundAction)rowObject).isRunning()); }; View.StopActionEvent += View_StopActionEvent; BackgroundActionRegistry.global().addListener(new BackgroundActionListener(this)); // Add already running background actions ArrayList tasks = new ArrayList(); int size = BackgroundActionRegistry.global().size(); for (int i = 0; i < size; i++) { try { BackgroundAction action = (BackgroundAction)BackgroundActionRegistry.global().get(i); tasks.Add(action); } catch (Exception) { Log.debug("BackgroundActionRegistry modified while iterating"); // collection has been modified by another thread, continue } } View.SetModel(tasks); }
private void View_StopEvent() { foreach (IProgressView progressView in View.SelectedTransfers) { Transfer transfer = GetTransferFromView(progressView); BackgroundActionRegistry registry = getRegistry(); if (transfer.isRunning()) { // Find matching background task for (int i = 0; i < registry.size(); i++) { if (registry.get(i) is TransferBackgroundAction) { TransferBackgroundAction t = (TransferBackgroundAction)registry.get(i); if (t.getTransfer().Equals(transfer)) { t.cancel(); } } } } } }