private void RefreshTab(T group) { ColumnQuiesceSupported.Visible = VMGroup <T> .IsQuiescingSupported(Pool?.Connection); _group = group; if (Pool != null) { dataGridView1.Rows.Clear(); foreach (var vm in Pool.Connection.Cache.VMs) { int index = 0; if (vm.is_a_real_vm() && vm.Show(Properties.Settings.Default.ShowHiddenVMs)) { bool selected = group != null && VMGroup <T> .GroupToVMs(group).Contains(new XenRef <VM>(vm.opaque_ref)); index = dataGridView1.Rows.Add(new VMDataGridViewRow(selected, vm)); if (SelectedVMs.Contains(vm)) { dataGridView1.Rows[index].Cells[0].Value = true; } else if (selected && !SelectedVMs.Contains(vm)) { SelectedVMs.Add(vm); } } } dataGridView1.Sort(ColumnCheckBox, ListSortDirection.Ascending); dataGridView1.AutoResizeColumns(); } UpdateCounterLabelAndButtons(); }
public VMDataGridViewRow(bool selected, VM vm) { Vm = vm; Cells.Add(_selectedCell); Cells.Add(_nameCell); Cells.Add(_descriptionCell); Cells.Add(_currentGroupCell); if (VMGroup <T> .IsQuiescingSupported(vm.Connection)) { _quiesce_supported = new DataGridViewTextBoxCell(); Cells.Add(_quiesce_supported); } Refresh(selected); }
void Refresh(bool selected) { _selectedCell.Value = selected; _nameCell.Value = Vm.Name(); _descriptionCell.Value = Vm.Description(); T group = Vm.Connection.Resolve(VMGroup <T> .VmToGroup(Vm)); _currentGroupCell.Value = group == null ? Messages.NONE : group.Name(); if (VMGroup <T> .IsQuiescingSupported(Vm.Connection)) { if (Vm.allowed_operations.Contains((vm_operations.snapshot_with_quiesce)) && !Helpers.FeatureForbidden(Vm, Host.RestrictVss)) { _quiesce_supported.Value = Messages.YES; } else { _quiesce_supported.Value = Messages.NO; } } }