Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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;
        }
Пример #4
0
        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();
            }
        }