示例#1
0
        private static GridHorizontalArrayItem NewNameItem(GridItemBase iconItem, GridItemBase dataItem, int iconWidth, int indent)
        {
            GridTreeExpanderItem expander = new GridTreeExpanderItem();

            GridItemBase[] items  = { expander, iconItem, dataItem };
            int[]          widths = { 12, iconWidth };
            return(new GridHorizontalArrayItem(indent, items, widths, false));
        }
示例#2
0
        public override void OnEnter(Point point)
        {
            if (mouseTrackedItem != null)
                OnLeave();

            Point subItemPoint;
            mouseTrackedItem = CurrentItem(point, out subItemPoint);

            if (mouseTrackedItem != null)
                mouseTrackedItem.OnEnter(subItemPoint);
        }
示例#3
0
        private void ContextMenuHandler(GridItemBase item, IXenObject o)
        {
            List <SelectedItem> selection = new List <SelectedItem>();

            foreach (GridRow row in item.Row.GridView.RowsAndChildren)
            {
                if (row.Selected && row.Tag is IXenObject)
                {
                    selection.Add(new SelectedItem((IXenObject)row.Tag));
                }
            }

            if (selection.Count > 0)
            {
                ContextMenuStrip c = new ContextMenuStrip();
                c.Items.AddRange(Program.MainWindow.ContextMenuBuilder.Build(selection));
                c.Show(Form.MousePosition);
            }
        }
示例#4
0
        public override void OnMouseMove(Point point)
        {
            Point subItemPoint;
            GridItemBase subItem = CurrentItem(point, out subItemPoint);

            if (mouseTrackedItem != subItem)
            {
                if (mouseTrackedItem != null)
                    mouseTrackedItem.OnLeave();

                mouseTrackedItem = subItem;
                
                if (subItem != null)
                    subItem.OnEnter(subItemPoint);
            }

            if (mouseTrackedItem != null)
                mouseTrackedItem.OnMouseMove(subItemPoint);
        }
示例#5
0
 public GridArrayItem(GridItemBase[] items, bool clickSelectsRow)
     : base(false, 1, clickSelectsRow, null, null)
 {
     this.items = items;
 }
示例#6
0
 // There should be one fewer width than items
 public GridHorizontalArrayItem(int indent, GridItemBase[] items, int[] widths, bool clickSelectsRow)
     : base(items, clickSelectsRow)
 {
     this.indent = indent;
     this.widths = widths;
 }
示例#7
0
        public override void AddItem(string col, GridItemBase item)
        {
            GridHeaderItem headerItem = item as GridHeaderItem;
            if (headerItem == null)
                return;

            if (headerItem.IsDefaultSortColumn)
                DefaultSortColumn = headerItem;

            Columns.Add(col);
            headerItem.ColumnName = col;
            base.AddItem(col, item);
        }
示例#8
0
        protected bool CheckVMTools(IXenObject o, out GridItemBase item)
        {
            item = null;

            if (!checkTools)
            {
                return(false);
            }

            VM vm = o as VM;

            if (vm != null)
            {
                VM.VirtualisationStatus status = vm.virtualisation_status;
                if (vm.power_state != vm_power_state.Running ||
                    status == VM.VirtualisationStatus.OPTIMIZED ||
                    status == VM.VirtualisationStatus.UNKNOWN)
                {
                    return(false);
                }

                if (property == PropertyNames.memoryValue)
                {
                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  3,
                                                  (sender, args) => new InstallToolsCommand(Program.MainWindow, vm).Execute(), null);
                    }
                    else
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  3);
                    }
                }
                return(true);
            }

            SR sr = o as SR;

            if (sr != null && sr.NeedsUpgrading)
            {
                if (property == PropertyNames.memoryValue)
                {
                    item = new GridStringItem(Messages.UPGRADE_SR_WARNING,
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush, Program.DefaultFontUnderline, 3,
                                              (sender, args) => new UpgradeSRCommand(Program.MainWindow, sr).Execute(), null);
                }

                return(true);
            }

            Pool pool = o as Pool;

            if (pool != null && !pool.IsPoolFullyUpgraded)
            {
                if (property == PropertyNames.memoryValue)
                {
                    var master = pool.Connection.Resolve(pool.master);

                    item = new GridStringItem(string.Format(Messages.POOL_VERSIONS_LINK_TEXT, master.ProductVersionText),
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush,
                                              Program.DefaultFontUnderline, 3,
                                              (sender, args) => new RollingUpgradeCommand(Program.MainWindow).Execute(),
                                              null);
                }

                return(true);
            }

            return(false);
        }
示例#9
0
        public override void OnLeave()
        {
            if (mouseTrackedItem == null)
                return;

            mouseTrackedItem.OnLeave();
            mouseTrackedItem = null;
        }
示例#10
0
        protected bool CheckVMTools(IXenObject o, out GridItemBase item)
        {
            item = null;

            if (!checkTools)
                return false;

            VM vm = o as VM;
            if (vm != null)
            {
                VM.VirtualisationStatus status = vm.virtualisation_status;
                if (vm.power_state != vm_power_state.Running ||
                    status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED ) ||
                    status.HasFlag(VM.VirtualisationStatus.UNKNOWN))
                    return false;

                if (property == PropertyNames.memoryValue)
                {
                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  3,
                                                  (sender, args) => new InstallToolsCommand(Program.MainWindow, vm).Execute(), null);
                    }
                    else
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  3);
                    }
                }
                return true;
            }

            SR sr = o as SR;
            if (sr != null && sr.NeedsUpgrading)
            {
                if (property == PropertyNames.memoryValue)
                    item = new GridStringItem(Messages.UPGRADE_SR_WARNING,
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush, Program.DefaultFontUnderline, 3,
                                              (sender, args) => new UpgradeSRCommand(Program.MainWindow, sr).Execute(), null);

                return true;
            }

            Pool pool = o as Pool;
            if (pool != null && !pool.IsPoolFullyUpgraded)
            {
                if (property == PropertyNames.memoryValue)
                {
                    var master = pool.Connection.Resolve(pool.master);

                    item = new GridStringItem(string.Format(Messages.POOL_VERSIONS_LINK_TEXT, master.ProductVersionText),
                                  HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                  QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush,
                                  Program.DefaultFontUnderline, 3,
                                  (sender, args) => new RollingUpgradeCommand(Program.MainWindow).Execute(),
                                  null);
                }

                return true;
            }

            return false;
        }
示例#11
0
        /// <remarks>
        /// For Non-Windows VMs and for Windows VMs pre-Dundee:
        ///   - Memory, Disk and Network values are not available if XenServer Tools are not installed
        ///  
        /// For Windows VMs on Dundee or higher:
        ///  - Memory value is not available if the Management agent is not installed;
        ///  - Disk and Network vlaues are not available if I/O drivers are not installed
        /// </remarks>
        protected bool CheckVMTools(IXenObject o, out GridItemBase item)
        {
            item = null;

            if (!checkTools)
                return false;

            VM vm = o as VM;
            if (vm != null)
            {
                VM.VirtualisationStatus status = vm.virtualisation_status;
                if (vm.power_state != vm_power_state.Running ||
                    status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED | VM.VirtualisationStatus.MANAGEMENT_INSTALLED) ||
                    status.HasFlag(VM.VirtualisationStatus.UNKNOWN))
                    return false;

                if (property == PropertyNames.memoryValue && status.HasFlag(VM.VirtualisationStatus.MANAGEMENT_INSTALLED))
                    return false;

                if ((property == PropertyNames.diskText || property == PropertyNames.networkText) && status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED))
                    return false;

                string warningMessage;
                int colSpan;                

                if (property == PropertyNames.memoryValue && !status.HasFlag(VM.VirtualisationStatus.MANAGEMENT_INSTALLED))
                {
                    if (vm.HasNewVirtualisationStates)
                    {
                        warningMessage = Messages.VIRTUALIZATION_STATE_VM_MANAGEMENT_AGENT_NOT_INSTALLED;
                        colSpan = 1;
                    }
                    else
                    {
                        warningMessage = vm.GetVirtualisationWarningMessages();
                        colSpan = 3;
                    }

                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  colSpan,
                                                  (sender, args) => new InstallToolsCommand(Program.MainWindow, vm).Execute(), null);
                    }
                    else
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  colSpan);
                    }
                }

                if (property == PropertyNames.diskText && vm.HasNewVirtualisationStates && !status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED))
                {
                    warningMessage = Messages.VIRTUALIZATION_STATE_VM_IO_NOT_OPTIMIZED;
                    colSpan = 2;

                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(warningMessage, 
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  colSpan,
                                                  (sender, args) => new InstallToolsCommand(Program.MainWindow, vm).Execute(), null);
                    }
                    else
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  colSpan);
                    }
                }
                return true;
            }

            Pool pool = o as Pool;
            if (pool != null && !pool.IsPoolFullyUpgraded)
            {
                if (property == PropertyNames.memoryValue)
                {
                    var master = pool.Connection.Resolve(pool.master);

                    item = new GridStringItem(string.Format(Messages.POOL_VERSIONS_LINK_TEXT, master.ProductVersionText),
                                  HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                  QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush,
                                  Program.DefaultFontUnderline, 3,
                                  (sender, args) => new RollingUpgradeCommand(Program.MainWindow).Execute(),
                                  null);
                }

                return true;
            }

            return false;
        }
示例#12
0
 private static GridHorizontalArrayItem NewNameItem(GridItemBase iconItem, GridItemBase dataItem, int iconWidth, int indent)
 {
     GridTreeExpanderItem expander = new GridTreeExpanderItem();
     GridItemBase[] items = { expander, iconItem, dataItem };
     int[] widths = { 12, iconWidth };
     return new GridHorizontalArrayItem(indent, items, widths, false);
 }
示例#13
0
        public override int CompareTo(GridItemBase gridItem)
        {
            GridStringItem other = gridItem as GridStringItem;

            Object otherdata = other == null ? null : other.sortdata;

            if (sortdata == null)
                return otherdata == null ? 0 : 1;
            
            if (otherdata == null)
                return -1;

            return StringUtility.NaturalCompare(sortdata.ToString(), other.sortdata.ToString());
        }
示例#14
0
        public override int CompareTo(GridItemBase other)
        {
            GridImageItem imageItem = other as GridImageItem;
            if (imageItem == null)
                return -1;

            return StringUtility.NaturalCompare(rankObject.ToString(), imageItem.rankObject.ToString());
        }
示例#15
0
        protected bool CheckVMTools(IXenObject o, out GridItemBase item)
        {
            item = null;

            if (!checkTools)
                return false;

            VM vm = o as VM;
            if (vm != null)
            {
                VM.VirtualisationStatus status = vm.virtualisation_status;
                if (vm.power_state != vm_power_state.Running ||
                    status == VM.VirtualisationStatus.OPTIMIZED ||
                    status == VM.VirtualisationStatus.UNKNOWN)
                    return false;

                if (property == PropertyNames.memoryValue)
                {
                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  3,
                                                  new EventHandler(delegate
                                                                       {
                                                                           new InstallToolsCommand(Program.MainWindow.CommandInterface, vm).Execute();
                                                                       }), null);
                    }
                    else
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  3);
                    }
                }
                return true;
            }

            SR sr = o as SR;
            if (sr != null && sr.NeedsUpgrading)
            {
                if (property == PropertyNames.memoryValue)
                    item = new GridStringItem(Messages.UPGRADE_SR_WARNING,
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush, Program.DefaultFontUnderline, 3,
                                              new EventHandler(delegate
                                                                   {
                                                                       new UpgradeSRCommand(Program.MainWindow.CommandInterface, sr).Execute();
                                                                   }), null);

                return true;
            }

            return false;
        }
示例#16
0
        public override int CompareTo(GridItemBase other)
        {
            GridVerticalArrayItem otherArrayItem = other as GridVerticalArrayItem;
            if (otherArrayItem == null)
                return -1;

            for (int i = 0; i < items.Length; i++)
            {
                if (i >= otherArrayItem.items.Length)
                    return 1;

                int comp = items[i].CompareTo(otherArrayItem.items[i]);
                if (comp != 0)
                    return comp;
            }

            return items.Length == otherArrayItem.items.Length ? 0 : -1;
        }
示例#17
0
        private void ContextMenuHandler(GridItemBase item, IXenObject o)
        {
            List<SelectedItem> selection = new List<SelectedItem>();

            foreach (GridRow row in item.Row.GridView.RowsAndChildren)
            {
                if (row.Selected && row.Tag is IXenObject)
                {
                    selection.Add(new SelectedItem((IXenObject)row.Tag));
                }
            }

            if (selection.Count > 0)
            {
                ContextMenuStrip c = new ContextMenuStrip();
                c.Items.AddRange(Program.MainWindow.ContextMenuBuilder.Build(selection));
                c.Show(Form.MousePosition);
            }
        }
示例#18
0
 public GridVerticalArrayItem(GridItemBase[] items, bool clickSelectsRow)
     : this(items, -1, clickSelectsRow)
 {
 }
示例#19
0
        /// <remarks>
        /// For Non-Windows VMs and for Windows VMs pre-Dundee:
        ///   - Memory, Disk and Network values are not available if XenServer Tools are not installed
        ///
        /// For Windows VMs on Dundee or higher:
        ///  - Memory value is not available if the Management agent is not installed;
        ///  - Disk and Network vlaues are not available if I/O drivers are not installed
        /// </remarks>
        protected bool CheckVMTools(IXenObject o, out GridItemBase item)
        {
            item = null;

            if (!checkTools)
            {
                return(false);
            }

            VM vm = o as VM;

            if (vm != null)
            {
                VM.VirtualisationStatus status = vm.virtualisation_status;
                if (vm.power_state != vm_power_state.Running ||
                    status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED | VM.VirtualisationStatus.MANAGEMENT_INSTALLED) ||
                    status.HasFlag(VM.VirtualisationStatus.UNKNOWN))
                {
                    return(false);
                }

                if (property == PropertyNames.memoryValue && status.HasFlag(VM.VirtualisationStatus.MANAGEMENT_INSTALLED))
                {
                    return(false);
                }

                if ((property == PropertyNames.diskText || property == PropertyNames.networkText) && status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED))
                {
                    return(false);
                }

                string warningMessage;
                int    colSpan;

                if (property == PropertyNames.memoryValue && !status.HasFlag(VM.VirtualisationStatus.MANAGEMENT_INSTALLED))
                {
                    if (vm.HasNewVirtualisationStates)
                    {
                        warningMessage = Messages.VIRTUALIZATION_STATE_VM_MANAGEMENT_AGENT_NOT_INSTALLED;
                        colSpan        = 1;
                    }
                    else
                    {
                        warningMessage = vm.GetVirtualisationWarningMessages();
                        colSpan        = 3;
                    }

                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  colSpan,
                                                  (sender, args) => new InstallToolsCommand(Program.MainWindow, vm).Execute(), null);
                    }
                    else
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  colSpan);
                    }
                }

                if (property == PropertyNames.diskText && vm.HasNewVirtualisationStates && !status.HasFlag(VM.VirtualisationStatus.IO_DRIVERS_INSTALLED))
                {
                    warningMessage = Messages.VIRTUALIZATION_STATE_VM_IO_NOT_OPTIMIZED;
                    colSpan        = 2;

                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  colSpan,
                                                  (sender, args) => new InstallToolsCommand(Program.MainWindow, vm).Execute(), null);
                    }
                    else
                    {
                        item = new GridStringItem(warningMessage,
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  colSpan);
                    }
                }
                return(true);
            }

            SR sr = o as SR;

            if (sr != null && sr.NeedsUpgrading)
            {
                if (property == PropertyNames.memoryValue)
                {
                    item = new GridStringItem(Messages.UPGRADE_SR_WARNING,
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush, Program.DefaultFontUnderline, 3,
                                              (sender, args) => new UpgradeSRCommand(Program.MainWindow, sr).Execute(), null);
                }

                return(true);
            }

            Pool pool = o as Pool;

            if (pool != null && !pool.IsPoolFullyUpgraded)
            {
                if (property == PropertyNames.memoryValue)
                {
                    var master = pool.Connection.Resolve(pool.master);

                    item = new GridStringItem(string.Format(Messages.POOL_VERSIONS_LINK_TEXT, master.ProductVersionText),
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush,
                                              Program.DefaultFontUnderline, 3,
                                              (sender, args) => new RollingUpgradeCommand(Program.MainWindow).Execute(),
                                              null);
                }

                return(true);
            }

            return(false);
        }
示例#20
0
 public GridVerticalArrayItem(GridItemBase[] items, int itemfixedheight, bool clickSelectsRow)
     : base(items, clickSelectsRow)
 {
     RegularSpacing = itemfixedheight != -1;
     ItemHeight = itemfixedheight;
 }
示例#21
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);
        }
示例#22
0
        protected bool CheckVMTools(IXenObject o, out GridItemBase item)
        {
            item = null;

            if (!checkTools)
            {
                return(false);
            }

            VM vm = o as VM;

            if (vm != null)
            {
                VM.VirtualisationStatus status = vm.virtualisation_status;
                if (vm.power_state != vm_power_state.Running ||
                    status == VM.VirtualisationStatus.OPTIMIZED ||
                    status == VM.VirtualisationStatus.UNKNOWN)
                {
                    return(false);
                }

                if (property == PropertyNames.memoryValue)
                {
                    if (InstallToolsCommand.CanExecute(vm))
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  QueryPanel.LinkBrush,
                                                  Program.DefaultFontUnderline,
                                                  3,
                                                  new EventHandler(delegate
                        {
                            new InstallToolsCommand(Program.MainWindow.CommandInterface, vm).Execute();
                        }), null);
                    }
                    else
                    {
                        item = new GridStringItem(vm.GetVirtualisationWarningMessages(),
                                                  HorizontalAlignment.Center,
                                                  VerticalAlignment.Middle,
                                                  false,
                                                  false,
                                                  QueryPanel.TextBrush,
                                                  Program.DefaultFont,
                                                  3);
                    }
                }
                return(true);
            }

            SR sr = o as SR;

            if (sr != null && sr.NeedsUpgrading)
            {
                if (property == PropertyNames.memoryValue)
                {
                    item = new GridStringItem(Messages.UPGRADE_SR_WARNING,
                                              HorizontalAlignment.Center, VerticalAlignment.Middle, false, false,
                                              QueryPanel.LinkBrush, Program.DefaultFontUnderline, QueryPanel.LinkBrush, Program.DefaultFontUnderline, 3,
                                              new EventHandler(delegate
                    {
                        new UpgradeSRCommand(Program.MainWindow.CommandInterface, sr).Execute();
                    }), null);
                }

                return(true);
            }

            return(false);
        }