Changeset 7317 for branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs
- Timestamp:
- 01/11/12 17:14:36 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs
r7281 r7317 1 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Drawing; 5 using System.Data; 6 using System.Linq; 7 using System.Text; 2 using System.Diagnostics; 3 using System.Threading; 4 using System.Timers; 8 5 using System.Windows.Forms; 6 using HeuristicLab.Clients.Hive.CloudManager.Model; 7 using HeuristicLab.Core; 8 using HeuristicLab.Core.Views; 9 using HeuristicLab.MainForm; 9 10 10 11 namespace HeuristicLab.Clients.Hive.CloudManager.Views { 11 public partial class CloudResourcesView : UserControl { 12 [View("Cloud Resources View")] 13 [Content(typeof(IItemList<Subscription>), IsDefaultView = true)] 14 public partial class CloudResourcesView : ItemView, IDisposable { 15 private System.Timers.Timer timer = new System.Timers.Timer(); 16 private int updateInterval = 15000; 17 private DateTime dueTime; 18 19 public new IItemList<Subscription> Content { 20 get { return (IItemList<Subscription>)base.Content; } 21 set { base.Content = value; } 22 } 23 12 24 public CloudResourcesView() { 13 25 InitializeComponent(); 26 27 CloudManagerClient.Instance.Refreshing += new EventHandler(Instance_Refreshing); 28 CloudManagerClient.Instance.Refreshed += new EventHandler(Instance_Refreshed); 29 30 timer.AutoReset = true; 31 timer.Interval = 1000; 32 timer.Elapsed += PerformUpdate; 33 timer.Start(); 34 dueTime = DateTime.Now.AddMilliseconds(updateInterval); 35 } 36 37 public new void Dispose() { 38 CloudManagerClient.Instance.Refreshing -= new EventHandler(Instance_Refreshing); 39 CloudManagerClient.Instance.Refreshed -= new EventHandler(Instance_Refreshed); 40 timer.Dispose(); 41 Debug.WriteLine("Dispose"); 42 } 43 44 void Instance_Refreshing(object sender, EventArgs e) { 45 Debug.WriteLine("Instance_Refreshing"); 46 } 47 48 void Instance_Refreshed(object sender, EventArgs e) { 49 Debug.WriteLine("Instance_Refreshed"); 50 } 51 52 private void PerformUpdate(object sender, ElapsedEventArgs e) { 53 TimeSpan timeToRefresh = dueTime - DateTime.Now; 54 55 if (timeToRefresh.Seconds >= 0) { 56 this.Invoke((MethodInvoker)delegate { lblRefresh.Text = "Done. " + timeToRefresh.Seconds + "s to next refresh."; }); 57 } else { 58 timer.Stop(); 59 this.Invoke((MethodInvoker)delegate { lblRefresh.Text = "Refreshing data ..."; }); 60 61 // statistics 62 Debug.WriteLine("perform update"); 63 Thread.Sleep(1000); 64 65 dueTime = DateTime.Now.AddMilliseconds(updateInterval); 66 timer.Start(); 67 } 14 68 } 15 69 }
Note: See TracChangeset
for help on using the changeset viewer.