Example #1
0
            public IAcceptGroups Add(Grouping grouping, Object group, int indent)
            {
                if (group == null)
                {
                    return(null);
                }

                VirtualTreeNode node;

                if (group is Pool)
                {
                    node = AddPoolNode((Pool)group);
                }
                else if (group is Host)
                {
                    node = AddHostNode((Host)group);
                }
                else if (group is VM)
                {
                    node = AddVMNode((VM)group);
                }
                else if (group is DockerContainer)
                {
                    node = AddDockerContainerNode((DockerContainer)group);
                }
                else if (group is VM_appliance)
                {
                    node = AddVmApplianceNode((VM_appliance)group);
                }
                else if (group is SR)
                {
                    node = AddSRNode((SR)group);
                }
                else if (group is XenAPI.Network)
                {
                    node = AddNetworkNode((XenAPI.Network)group);
                }
                else if (group is VDI)
                {
                    node = AddVDINode((VDI)group);
                }
                else if (group is Folder)
                {
                    node = AddFolderNode((Folder)group);
                }
                else
                {
                    node = AddNode(grouping.GetGroupName(group), grouping.GetGroupIcon(group),
                                   false, new GroupingTag(grouping, GetGroupingTagFromNode(_parent), group));

                    if (group is DateTime)
                    {
                        Program.BeginInvoke(Program.MainWindow, () => { node.Text = HelpersGUI.DateTimeToString((DateTime)group, Messages.DATEFORMAT_DMY_HMS, true); }); // annoying: has to be on the event thread because of CA-46983
                    }
                }

                return(new MainWindowTreeNodeGroupAcceptor(_highlightedDragTarget, _treeViewForeColor, _treeViewBackColor, node));
            }
Example #2
0
        private static GridRow CreateRow(Grouping grouping, Object o, int indent)
        {
            IXenObject ixmo = o as IXenObject;

            if (ixmo != null)
            {
                bool    isFolderRow = (o is Folder);
                GridRow _row        = NewGroupRow(ixmo.opaque_ref, ixmo, isFolderRow ? FOLDER_ROW_HEIGHT : ROW_HEIGHT, 0);

                foreach (ColumnNames column in Enum.GetValues(typeof(ColumnNames)))
                {
                    GridItemBase item = ColumnAccessors.Get(column).GetGridItem(ixmo);
                    if (item != null)
                    {
                        if (column == XenAdmin.XenSearch.ColumnNames.name)
                        {
                            EventHandler onDoubleClickDelegate = isFolderRow ?
                                                                 (EventHandler) delegate
                            {
                                Program.MainWindow.DoSearch(Search.SearchForFolder(ixmo.opaque_ref));
                            } :
                            (EventHandler) delegate
                            {
                                if (Program.MainWindow.SelectObject(ixmo) &&
                                    Program.MainWindow.TheTabControl.TabPages.Contains(Program.MainWindow.TabPageGeneral))
                                {
                                    Program.MainWindow.SwitchToTab(MainWindow.Tab.Settings);
                                }
                            };
                            GridImageItem _statusItem = new GridImageItem(
                                "foo",
                                new ImageDelegate(delegate()
                            {
                                return(Images.GetImage16For(ixmo));
                            }),
                                HorizontalAlignment.Left, VerticalAlignment.Top, true,
                                onDoubleClickDelegate);
                            _row.AddItem("name", NewNameItem(_statusItem, item, 16, indent));
                        }
                        else
                        {
                            _row.AddItem(column.ToString(), item);
                        }
                    }
                }

                AddCustomFieldsToRow(ixmo, _row);

                return(_row);
            }

            if (grouping == null)
            {
                return(null);
            }


            GridRow row = NewGroupRow(String.Format("{0}: {1}", grouping.GroupingName, o), null, ROW_HEIGHT, 0);

            GridImageItem statusItem = new GridImageItem(
                grouping.GroupingName,
                new ImageDelegate(delegate()
            {
                return(Images.GetImage16For(grouping.GetGroupIcon(o)));
            }),
                HorizontalAlignment.Left, VerticalAlignment.Top, true);

            GridVerticalArrayItem nameItem = NewDoubleRowItem(grouping, o);

            row.AddItem("name", NewNameItem(statusItem, nameItem, 16, indent));

            return(row);
        }
            public IAcceptGroups Add(Grouping grouping, Object group, int indent)
            {
                if (group == null)
                {
                    return(null);
                }

                VirtualTreeNode node;

                if (group is Pool)
                {
                    node = AddPoolNode((Pool)group);
                }
                else if (group is Host)
                {
                    node = AddHostNode((Host)group);
                }
                else if (group is VM)
                {
                    VM vm = group as VM;
                    if ((vm.is_a_snapshot && vm.other_config.ContainsKey("halsign_snapshot")) ||
                        (vm.DefaultTemplate && (vm.TemplateType == VM.VmTemplateType.Citrix ||
                                                vm.name_label.ToLowerInvariant().Contains("xen api") ||
                                                vm.name_label.ToLowerInvariant().Contains("centos 4"))))
                    {
                        return(null);
                    }
                    if (vm.IsHidden && vm.name_label.ToLowerInvariant().Contains("transfer"))
                    {
                        return(null);
                    }
                    node = AddVMNode((VM)group);
                }
                else if (group is DockerContainer)
                {
                    node = AddDockerContainerNode((DockerContainer)group);
                }
                else if (group is VM_appliance)
                {
                    node = AddVmApplianceNode((VM_appliance)group);
                }
                else if (group is SR)
                {
                    node = AddSRNode((SR)group);
                }
                else if (group is XenAPI.Network)
                {
                    node = AddNetworkNode((XenAPI.Network)group);
                }
                else if (group is VDI)
                {
                    node = AddVDINode((VDI)group);
                }
                else if (group is Folder)
                {
                    node = AddFolderNode((Folder)group);
                }
                else
                {
                    node = AddNode(grouping.GetGroupName(group), grouping.GetGroupIcon(group),
                                   false, new GroupingTag(grouping, GetGroupingTagFromNode(_parent), group));

                    if (group is DateTime)
                    {
                        Program.BeginInvoke(Program.MainWindow, () => { node.Text = HelpersGUI.DateTimeToString((DateTime)group, Messages.DATEFORMAT_DMY_HMS, true); }); // annoying: has to be on the event thread because of CA-46983
                    }
                }

                return(new MainWindowTreeNodeGroupAcceptor(_highlightedDragTarget, _treeViewForeColor, _treeViewBackColor, node));
            }
            public IAcceptGroups Add(Grouping grouping, Object group, int indent)
            {
                if (group == null)
                    return null;

                VirtualTreeNode node;

                if (group is Pool)
                {
                    node = AddPoolNode((Pool)group);
                }
                else if (group is Host)
                {
                    node = AddHostNode((Host)group);
                }
                else if (group is VM)
                {
                    node = AddVMNode((VM)group);
                }
                else if (group is DockerContainer)
                {
                    node = AddDockerContainerNode((DockerContainer)group);
                }
                else if (group is VM_appliance)
                {
                    node = AddVmApplianceNode((VM_appliance)group);
                }
                else if (group is SR)
                {
                    node = AddSRNode((SR)group);
                }
                else if (group is XenAPI.Network)
                {
                    node = AddNetworkNode((XenAPI.Network)group);
                }
                else if (group is VDI)
                {
                    node = AddVDINode((VDI)group);
                }
                else if (group is Folder)
                {
                    node = AddFolderNode((Folder)group);
                }
                else
                {
                    node = AddNode(grouping.GetGroupName(group), grouping.GetGroupIcon(group),
                        false, new GroupingTag(grouping, GetGroupingTagFromNode(_parent), group));

                    if (group is DateTime)
                        Program.BeginInvoke(Program.MainWindow, () => { node.Text = HelpersGUI.DateTimeToString((DateTime)group, Messages.DATEFORMAT_DMY_HMS, true); }); // annoying: has to be on the event thread because of CA-46983
                }

                return new MainWindowTreeNodeGroupAcceptor(_highlightedDragTarget, _treeViewForeColor, _treeViewBackColor, node);
            }
            public IAcceptGroups Add(Grouping grouping, Object group, int indent)
            {
                if (group != null)
                {
                    VirtualTreeNode node;

                    if (group is Pool)
                    {
                        node = AddPoolNode(_parent, _index, (Pool)group);
                    }
                    else if (group is Host)
                    {
                        node = AddHostNode(_parent, _index, (Host)group);
                    }
                    else if (group is VM)
                    {
                        node = AddVMNode(_parent, _index, (VM)group);
                    }
                    else if (group is VM_appliance)
                    {
                        node = AddVmApplianceNode(_parent, _index, (VM_appliance)group);
                    }
                    else if (group is SR)
                    {
                        node = AddSRNode(_parent, _index, (SR)group);
                    }
                    else if (group is XenAPI.Network)
                    {
                        node = AddNetworkNode(_parent, _index, (XenAPI.Network)group);
                    }
                    else if (group is VDI)
                    {
                        node = AddVDINode(_parent, _index, (VDI)group);
                    }
                    else if (group is Folder)
                    {
                        node = AddFolderNode(_parent, _index, (Folder)group);
                    }
                    else if (group is StorageLinkServer)
                    {
                        node = AddStorageLinkServerNode(_parent, _index, (StorageLinkServer)group);
                    }
                    else if (group is StorageLinkSystem)
                    {
                        node = AddStorageLinkSystemNode(_parent, _index, (StorageLinkSystem)group);
                    }
                    else if (group is StorageLinkPool)
                    {
                        node = AddStorageLinkPoolNode(_parent, _index, (StorageLinkPool)group);
                    }
                    else if (group is StorageLinkVolume)
                    {
                        node = AddStorageLinkVolumeNode(_parent, _index, (StorageLinkVolume)group);
                    }
                    else if (group is StorageLinkRepository)
                    {
                        node = AddStorageLinkRepositoryNode(_parent, _index, (StorageLinkRepository)group);
                    }
                    else
                    {
                        node = AddNode(_parent, _index, grouping.GetGroupName(group), grouping.GetGroupIcon(group), false, new GroupingTag(grouping, FindGroupingParent(_parent.Tag), group));
                        if (group is DateTime)
                            Program.BeginInvoke(Program.MainWindow, () => { node.Text = HelpersGUI.DateTimeToString((DateTime)group, Messages.DATEFORMAT_DMY_HMS, true); });   // annoying: has to be on the event thread because of CA-46983
                    }

                    _index++;

                    return new MainWindowTreeNodeGroupAcceptor(_highlightedDragTarget, _treeViewForeColor, _treeViewBackColor, node);
                }
                return null;
            }
Example #6
0
        private static GridRow CreateRow(Grouping grouping, Object o, int indent)
        {
            IXenObject ixmo = o as IXenObject;
            if (ixmo != null)
            {
                bool isFolderRow = (o is Folder);
                GridRow _row = NewGroupRow(ixmo.opaque_ref, ixmo, isFolderRow ? FOLDER_ROW_HEIGHT : ROW_HEIGHT, 0);

                foreach (ColumnNames column in Enum.GetValues(typeof(ColumnNames)))
                {
                    GridItemBase item = ColumnAccessors.Get(column).GetGridItem(ixmo);
                    if (item != null)
                    {
                        if (column == XenAdmin.XenSearch.ColumnNames.name)
                        {
                            EventHandler onDoubleClickDelegate = isFolderRow ?
                                    (EventHandler)delegate
                                    {
                                        Program.MainWindow.DoSearch(Search.SearchForFolder(ixmo.opaque_ref));
                                    } :
                                    (EventHandler)delegate
                                    {
                                        if (Program.MainWindow.SelectObject(ixmo)
                                            && Program.MainWindow.TheTabControl.TabPages.Contains(Program.MainWindow.TabPageGeneral))
                                            Program.MainWindow.SwitchToTab(MainWindow.Tab.Settings);
                                    };
                            GridImageItem _statusItem = new GridImageItem(
                                "foo",
                                new ImageDelegate(delegate()
                                {
                                    return Images.GetImage16For(ixmo);
                                }),
                                HorizontalAlignment.Left, VerticalAlignment.Top, true,
                                onDoubleClickDelegate);
                            _row.AddItem("name", NewNameItem(_statusItem, item, 16, indent));
                        }
                        else
                            _row.AddItem(column.ToString(), item);
                    }
                }

                AddCustomFieldsToRow(ixmo, _row);

                return _row;
            }

            if (grouping == null)
                return null;

            GridRow row = NewGroupRow(String.Format("{0}: {1}", grouping.GroupingName, o), null, ROW_HEIGHT, 0);

            GridImageItem statusItem = new GridImageItem(
                grouping.GroupingName,
                new ImageDelegate(delegate()
                {
                    return Images.GetImage16For(grouping.GetGroupIcon(o));
                }),
                HorizontalAlignment.Left, VerticalAlignment.Top, true);

            GridVerticalArrayItem nameItem = NewDoubleRowItem(grouping, o);

            row.AddItem("name", NewNameItem(statusItem, nameItem, 16, indent));

            return row;
        }
            public IAcceptGroups Add(Grouping grouping, Object group, int indent)
            {
                if (group != null)
                {
                    VirtualTreeNode node;

                    if (group is Pool)
                    {
                        node = AddPoolNode(_parent, _index, (Pool)group);
                    }
                    else if (group is Host)
                    {
                        node = AddHostNode(_parent, _index, (Host)group);
                    }
                    else if (group is VM)
                    {
                        node = AddVMNode(_parent, _index, (VM)group);
                    }
                    else if (group is VM_appliance)
                    {
                        node = AddVmApplianceNode(_parent, _index, (VM_appliance)group);
                    }
                    else if (group is SR)
                    {
                        node = AddSRNode(_parent, _index, (SR)group);
                    }
                    else if (group is XenAPI.Network)
                    {
                        node = AddNetworkNode(_parent, _index, (XenAPI.Network)group);
                    }
                    else if (group is VDI)
                    {
                        node = AddVDINode(_parent, _index, (VDI)group);
                    }
                    else if (group is Folder)
                    {
                        node = AddFolderNode(_parent, _index, (Folder)group);
                    }
                    else if (group is StorageLinkServer)
                    {
                        node = AddStorageLinkServerNode(_parent, _index, (StorageLinkServer)group);
                    }
                    else if (group is StorageLinkSystem)
                    {
                        node = AddStorageLinkSystemNode(_parent, _index, (StorageLinkSystem)group);
                    }
                    else if (group is StorageLinkPool)
                    {
                        node = AddStorageLinkPoolNode(_parent, _index, (StorageLinkPool)group);
                    }
                    else if (group is StorageLinkVolume)
                    {
                        node = AddStorageLinkVolumeNode(_parent, _index, (StorageLinkVolume)group);
                    }
                    else if (group is StorageLinkRepository)
                    {
                        node = AddStorageLinkRepositoryNode(_parent, _index, (StorageLinkRepository)group);
                    }
                    else
                    {
                        node = AddNode(_parent, _index, grouping.GetGroupName(group), grouping.GetGroupIcon(group), false, new GroupingTag(grouping, FindGroupingParent(_parent.Tag), group));

                        if (group is DateTime)
                        {
                            Program.BeginInvoke(Program.MainWindow, () => { node.Text = HelpersGUI.DateTimeToString((DateTime)group, Messages.DATEFORMAT_DMY_HMS, true); });   // annoying: has to be on the event thread because of CA-46983
                        }
                    }

                    _index++;

                    return(new MainWindowTreeNodeGroupAcceptor(_highlightedDragTarget, _treeViewForeColor, _treeViewBackColor, node));
                }
                return(null);
            }