protected override void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex != 0 || e.RowIndex < 0 && e.RowIndex >= dataGridView1.RowCount) { return; } var row = dataGridView1.Rows[e.RowIndex] as VMDataGridViewRow; if (row != null) { if ((bool)row.Cells[0].Value) { if (!SelectedVMs.Contains(row.Vm)) { SelectedVMs.Add(row.Vm); } } else { SelectedVMs.Remove(row.Vm); } } UpdateCounterLabelAndButtons(); }
private void RefreshTab(T group) { ColumnQuiesceSupported.Visible = VMGroup <T> .isQuescingSupported; _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(); }
private void EnableShapshotTypes(IXenConnection connection) { radioButtonDiskAndMemory.Enabled = label3.Enabled = !Helpers.FeatureForbidden(connection, Host.RestrictCheckpoint); tableLayoutPanelCheckpoint.Visible = !radioButtonDiskAndMemory.Enabled; pictureBoxWarning.Visible = labelWarning.Visible = radioButtonDiskAndMemory.Enabled; var vssFeatureExists = !Helpers.QuebecOrGreater(connection); quiesceCheckBox.Visible = vssFeatureExists; if (_policy == null) // new policy { quiesceCheckBox.Enabled = vssFeatureExists && !Helpers.FeatureForbidden(connection, Host.RestrictVss); if (quiesceCheckBox.Enabled && SelectedVMs != null && SelectedVMs.Any(vm => !vm.allowed_operations.Contains(vm_operations.snapshot_with_quiesce))) { quiesceCheckBox.Enabled = quiesceCheckBox.Checked = false; } } else // editing existing policy { switch (_policy.type) { case vmss_type.checkpoint: radioButtonDiskAndMemory.Checked = true; quiesceCheckBox.Enabled = false; break; case vmss_type.snapshot: radioButtonDiskOnly.Checked = true; // when a policy does not have any VMs, irrespective of the snapshot type, enable Quiesce if supported quiesceCheckBox.Enabled = vssFeatureExists && _policy.VMs.Count == 0; break; case vmss_type.snapshot_with_quiesce: radioButtonDiskOnly.Checked = true; // when the snapshot type itself is quiesce then we need to enable it irrespective of the number of VMs ( > 1 condition) quiesceCheckBox.Visible = quiesceCheckBox.Enabled = true; quiesceCheckBox.Checked = true; break; } } tableLayoutPanelVss.Visible = vssFeatureExists && !quiesceCheckBox.Enabled; tableLayoutPanelVssRemoved.Visible = !vssFeatureExists && quiesceCheckBox.Checked; }
protected override void searchTextBox1_TextChanged(object sender, System.EventArgs e) { if (Pool != null) { var sortedColumn = dataGridView1.SortedColumn; var sortOrder = dataGridView1.SortOrder; dataGridView1.Rows.Clear(); foreach (var vm in Pool.Connection.Cache.VMs) { if (searchTextBox1.Matches(vm.Name()) && vm.is_a_real_vm() && vm.Show(Properties.Settings.Default.ShowHiddenVMs)) { dataGridView1.Rows.Add(new VMDataGridViewRow(SelectedVMs.Contains(vm), vm)); } } if (sortOrder != SortOrder.None && sortedColumn != null) { dataGridView1.Sort(sortedColumn, (sortOrder == SortOrder.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending); } UpdateCounterLabelAndButtons(); } }