예제 #1
0
 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();
 }
예제 #2
0
        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);
        }
예제 #3
0
 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();
                     }
                 }
             }
         }
     }
 }