/// <summary>
        /// Sets the site details view.
        /// </summary>
        /// <param name="item">Item.</param>
        private void SetSiteDetailsView(NSObject item)
        {
            var c = new MainTableController {
                MainTableView = new NSTableView()
            };

            c.LoadView = () => {
                c.MainTableView.Delegate = new MainTableViewDelegate(c, this);
                var columnNames   = GetHostColumnOptionsForMainTable();
                var node          = (item as SiteNode);
                var siteName      = node.GetSiteName();
                var filteredHosts = _rootNode.FilterBy(siteName);
                ReloadMainTable(c.MainTableView, columnNames, filteredHosts);
            };
            controller.DetailViewController = c;
            controller.RefreshDetailView();
        }
        /// <summary>
        /// Sets the group nodes details view.
        /// </summary>
        /// <param name="item">Item.</param>
        /// <param name="nodeType">Node type.</param>
        private void SetInfrastructureGroupNodesDetailsView(NSObject item, NodeType nodeType)
        {
            var c = new MainTableController {
                MainTableView = new NSTableView()
            };

            c.LoadView = () => {
                c.MainTableView.Delegate = new MainTableViewDelegate(c, this);
                var options       = GetHostColumnOptionsForMainTable();
                var columnOption1 = new ColumnOptions {
                    Id           = Constants.PscTableColumnLastPingId,
                    DisplayName  = Constants.PscTableColumnLastPingId,
                    DisplayOrder = 40,
                    Width        = 160,
                    Type         = ColumnType.Text
                };
                options.Add(columnOption1);

                var columnOption2 = new ColumnOptions {
                    Id           = Constants.PscTableColumnLastResponseTimeId,
                    DisplayName  = Constants.PscTableColumnLastResponseTimeId,
                    DisplayOrder = 41,
                    Width        = 160,
                    Type         = ColumnType.Text
                };
                options.Add(columnOption2);

                var columnOption3 = new ColumnOptions {
                    Id           = Constants.PscTableColumnLastErrorId,
                    DisplayName  = Constants.PscTableColumnLastErrorId,
                    DisplayOrder = 42,
                    Width        = 160,
                    Type         = ColumnType.Text
                };
                options.Add(columnOption3);

                var siteName = nodeType == NodeType.Infrastructure
                                        ? (item as InfrastucturesGroupNode).GetSiteName()
                                        : (item as ManagementsGroupNode).GetSiteName();
                var filteredHosts = _rootNode.FilterBy(nodeType, siteName);
                ReloadMainTable(c.MainTableView, options, filteredHosts);
            };
            controller.DetailViewController = c;
            controller.RefreshDetailView();
        }
        /// <summary>
        /// Sets the group nodes details view.
        /// </summary>
        /// <param name="item">Item.</param>
        /// <param name="nodeType">Node type.</param>
        private void SetGroupNodesDetailsView(NSObject item, NodeType nodeType)
        {
            var c = new MainTableController {
                MainTableView = new NSTableView()
            };

            c.LoadView = () => {
                c.MainTableView.Delegate = new MainTableViewDelegate(c, this);

                var columnNames = GetHostColumnOptionsForMainTable();
                var siteName    = nodeType == NodeType.Infrastructure
                                        ? (item as InfrastucturesGroupNode).GetSiteName()
                                        : (item as ManagementsGroupNode).GetSiteName();
                var filteredHosts = _rootNode.FilterBy(nodeType, siteName);
                ReloadMainTable(c.MainTableView, columnNames, filteredHosts);
            };
            controller.DetailViewController = c;
            controller.RefreshDetailView();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="VMPSCHighAvailability.UI.MonitorTableViewDelegate"/> class.
 /// </summary>
 /// <param name="controller">Controller.</param>
 public MainTableViewDelegate(MainTableController controller, VMPSCHighAvailabilityMainWindowController ob)
 {
     _controller = controller;
     _ob         = ob;
 }