Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/11/12 17:14:36 (12 years ago)
Author:
spimming
Message:

#1680:

  • Use IItemLists for data
  • Show CloudResourceView in HiveCloudManagerView
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Views/CloudResourcesView.cs

    r7281 r7317  
    11using 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;
     2using System.Diagnostics;
     3using System.Threading;
     4using System.Timers;
    85using System.Windows.Forms;
     6using HeuristicLab.Clients.Hive.CloudManager.Model;
     7using HeuristicLab.Core;
     8using HeuristicLab.Core.Views;
     9using HeuristicLab.MainForm;
    910
    1011namespace 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
    1224    public CloudResourcesView() {
    1325      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      }
    1468    }
    1569  }
Note: See TracChangeset for help on using the changeset viewer.