protected override void OnDropDownOpening(EventArgs e) { base.DropDownItems.Clear(); var cmd = new NewGroupCommand(Command.MainWindowCommandInterface, Command.GetSelection()); var item = new CommandToolStripMenuItem(cmd); base.DropDownItems.Add(item); T[] groups = VMGroup <T> .GroupsInCache(Command.GetSelection()[0].Connection.Cache); if (groups.Length > 0) { base.DropDownItems.Add(new ToolStripSeparator()); } Array.Sort(groups); for (int index = 0; index < groups.Length; index++) { T group = groups[index]; var menuText = index < 9 ? String.Format(Messages.DYNAMIC_MENUITEM_WITH_ACCESS_KEY, index + 1, group.Name) : String.Format(Messages.DYNAMIC_MENUITEM_WITHOUT_ACCESS_KEY, group.Name); var cmdGroup = new AssignGroupToVMCommand(Command.MainWindowCommandInterface, Command.GetSelection(), group, menuText); var itemGroup = new CommandToolStripMenuItem(cmdGroup); if (Command.GetSelection().Count == 1 && VMGroup <T> .VmToGroup((VM)Command.GetSelection()[0].XenObject).opaque_ref == group.opaque_ref) { itemGroup.Checked = true; } base.DropDownItems.Add(itemGroup); } }
protected override void OnDropDownOpening(EventArgs e) { base.DropDownItems.Clear(); var cmd = new NewGroupCommand(Command.MainWindowCommandInterface, Command.GetSelection()); var item = new CommandToolStripMenuItem(cmd); base.DropDownItems.Add(item); T[] groups = VMGroup <T> .GroupsInCache(Command.GetSelection()[0].Connection.Cache); if (groups.Length > 0) { base.DropDownItems.Add(new ToolStripSeparator()); } Array.Sort(groups); for (int index = 0, offset = 0; index < groups.Length; index++) { T group = groups[index]; /* do not add unsupported policies to the drop down for VMSS */ XenAPI.VMSS policy = group as VMSS; if (policy != null && policy.policy_type == policy_backup_type.snapshot_with_quiesce) { List <VM> vms = Command.GetSelection().AsXenObjects <VM>(); bool doNotInclude = vms.Any(vm => !vm.allowed_operations.Contains(vm_operations.snapshot_with_quiesce)); if (doNotInclude) { offset--; continue; } } var menuText = (index + offset) < 9 ? String.Format(Messages.DYNAMIC_MENUITEM_WITH_ACCESS_KEY, (index + offset) + 1, group.Name) : String.Format(Messages.DYNAMIC_MENUITEM_WITHOUT_ACCESS_KEY, group.Name); var cmdGroup = new AssignGroupToVMCommand(Command.MainWindowCommandInterface, Command.GetSelection(), group, menuText); var itemGroup = new CommandToolStripMenuItem(cmdGroup); if (Command.GetSelection().Count == 1 && VMGroup <T> .VmToGroup((VM)Command.GetSelection()[0].XenObject).opaque_ref == group.opaque_ref) { itemGroup.Checked = true; } base.DropDownItems.Add(itemGroup); } }