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)); }
public override void OnEnter(Point point) { if (mouseTrackedItem != null) OnLeave(); Point subItemPoint; mouseTrackedItem = CurrentItem(point, out subItemPoint); if (mouseTrackedItem != null) mouseTrackedItem.OnEnter(subItemPoint); }
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); } }
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); }
public GridArrayItem(GridItemBase[] items, bool clickSelectsRow) : base(false, 1, clickSelectsRow, null, null) { this.items = items; }
// 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; }
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); }
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); }
public override void OnLeave() { if (mouseTrackedItem == null) return; mouseTrackedItem.OnLeave(); mouseTrackedItem = null; }
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; }
/// <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; }
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); }
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()); }
public override int CompareTo(GridItemBase other) { GridImageItem imageItem = other as GridImageItem; if (imageItem == null) return -1; return StringUtility.NaturalCompare(rankObject.ToString(), imageItem.rankObject.ToString()); }
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; }
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; }
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); } }
public GridVerticalArrayItem(GridItemBase[] items, bool clickSelectsRow) : this(items, -1, clickSelectsRow) { }
/// <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); }
public GridVerticalArrayItem(GridItemBase[] items, int itemfixedheight, bool clickSelectsRow) : base(items, clickSelectsRow) { RegularSpacing = itemfixedheight != -1; ItemHeight = itemfixedheight; }
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); }
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); }