xenadmin/XenAdmin/TabPages/PvsPage.Designer.cs
mcintyre94 dd42394a25 CP-16922: Implement GUI for enabling PVS read caching (#1179)
* CP-16922: UI changes to PvsPage to replace the single configure button with a separate enable and disable one, per the design doc

* CP-16922: Intermediate checkin - command + dialog implemented, but PVS page has some layout problems.

* CP-16922:  Implement GUI for enabling PVS read caching and marking/unmarking VMs for prepopulation

Fix the broken layout by reverting MainWindow.resx (which shouldn't have changed) back to the previous commit. Also removed duplicate properties button code.

*  CP-16922: PVS Page changes, to properly display all VMs (not just ones with proxy), only populating proxy columns if there is a proxy set.

* CP-16922: Use a CommandButton for the enable button, connected to the same command as the VM main menu button, and using the table selection as its selection manager.

* CP-16922: Delete the old enable button click behaviour (because it now has a proper command), was causing the dialog to show up twice

* CP-16922: Properly list VMs by hiding those that should be hidden (in addition to non-VMs, also hide the __gui__ prefix and others covered by Show function). Also fixes a bug in NewVMGroupVMsPage discovered when fixing this - it would show VMs that should be hidden if you used the search bar.


* CP-16922: Use ButtonText on the Command to set the text on the PVS enable button

* CP-16922: Add the disable PVS read-caching command, and its associated proxy destroy action. Both based off enable equivalents (main difference is no dialog for now). Not used yet but will be in main window menu + disable button

* CP-16922: Add disable PVS read-caching to the main window menu (under enable), with the disable command attached to it


* CP-16922: Add support for disabling PVS read-caching for selected hosts via the PVS tab page by converting the disable button into a CommandButton in the same way as the enable button, using its own command + selection manager (because Selection Managers only bind to one control)

* CP-16922: Design - adding the "read caching enabled" column from the design, so that we display both whether caching is enabled and whether the VM is currently cached. If it's disabled all other values are missing.


* CP-16922: Add the PVS site column per the design to show the site a VM's PVS Proxy is on if it has a proxy


* CP-16922: Add an event handler for VMs changing so that newly provisioned VMs immediately show up in the PVS tab page


* CP-16922: Support for properly remembering the selection when the VM list is refreshed. A new method returns the list of VMs for the selected rows, and we can then check if the VM for the row being added is in this list. If there was no previous selection then we still select the first row by default.


* CP-16922: Remove prepopulate, which is being removed from the design. The next XAPI version will remove it, so just pass False as prepopulate for now, and remove the option from the dialog and PVS tab page.


* CP-16922: Improve UI appearance for a missing Storage Repository. Per the design, if there is no SR show the message None (memory only) instead of an empty cell

* CP-16922: Improved sorting behaviour. All columns (except VM name, which always uses it) use the VM tag as a sorting fallback (since they all have duplicates). New default sort which sorts by caching enabled first (yes before no), and then VM tag as a tiebreaker. Support for remembering the current sort on refresh, ie when a value changes.

* CP-16922: Refactoring to use a VM extension method to get the PVSProxy (or null if none exists) for a VM. This was used in the PVS Page + commands which are now much simpler.


* CP-16922: Move where the SelectionChanged event handler is set when refreshing the PVS table, so that the command buttons are updated correctly.

* CP-16922: Improvements to PVS read-caching dialog. Set accept/cancel buttons properly + adjust tab values, so focus acts as expected


* CP-16922: Remove the images from the menu for Enable/Disable PVS read-caching, most commands in the menu don't have one

* CP-16922: Sorting out the strings for the actions + ParallelAction calls, and moving them into the resx. Also reverting wrong MainWindow.resx changes.

* CAR-2184: XAPI changes. I've made the minimal possible changes to PvsPage to ensure it compiles, but it's had a lot of feature work (CP-16922) that supersedes this, these small changes should keep that merge painless.


* CAR-2184 XAPI: Reverse the unrelated changes, only keep the PVS ones.

* CP-16922: Merge latest XAPI changes, notably changes to Pvs_site.create

* CP-16922: Change tab show/hide logic for PVS tab, show it even if there are no PVS sites.

* CP-16922: Implement GUI for enabling PVS read caching

Design changes - remove the storage repo column and replace it with status, which is populated with a friendly version of the pvs_proxy_status enum. Also populate site list using site.name_label

Signed-off-by: Callum McIntyre <callumiandavid.mcintyre@citrix.com>

*  CP-16922: Implement GUI for enabling PVS read caching

Adjusting the CanExecute of Enable PVS read-caching command to require at least one PVS site to be created. Since the PVS tab can show up without any sites, we need this because we can't create a proxy without a site.

* CP-16922: Code review changes.

Tidied up messages, and ensured actions run async properly, and without exiting before their task.

* CP-16922: Code review changes.

Update dialog resx, wider combobox on dialog, update action descriptions before setting RelatedTask, add friendly message body for PVS error notifications.
2016-09-22 15:08:15 +01:00

277 lines
15 KiB
C#

namespace XenAdmin.TabPages
{
partial class PvsPage
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PvsPage));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.dataGridViewVms = new XenAdmin.Controls.DataGridViewEx.DataGridViewEx();
this.label2 = new System.Windows.Forms.Label();
this.dataGridViewSites = new XenAdmin.Controls.DataGridViewEx.DataGridViewEx();
this.ColumnSite = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnConfiguration = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnSRs = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.label1 = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.ConfigureButton = new System.Windows.Forms.Button();
this.ViewPvsSitesButton = new System.Windows.Forms.Button();
this.panel2 = new System.Windows.Forms.Panel();
this.enableButton = new XenAdmin.Commands.CommandButton();
this.disableButton = new XenAdmin.Commands.CommandButton();
this.columnVM = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnCachingEnabled = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.columnCurrentlyCached = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnPvsSite = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnStatus = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.pageContainerPanel.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewVms)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewSites)).BeginInit();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// pageContainerPanel
//
this.pageContainerPanel.Controls.Add(this.tableLayoutPanel1);
resources.ApplyResources(this.pageContainerPanel, "pageContainerPanel");
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.dataGridViewVms, 0, 4);
this.tableLayoutPanel1.Controls.Add(this.label2, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.dataGridViewSites, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 5);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// dataGridViewVms
//
this.dataGridViewVms.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridViewVms.BackgroundColor = System.Drawing.SystemColors.Window;
this.dataGridViewVms.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
this.dataGridViewVms.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.dataGridViewVms.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.columnVM,
this.ColumnCachingEnabled,
this.columnCurrentlyCached,
this.ColumnPvsSite,
this.ColumnStatus});
resources.ApplyResources(this.dataGridViewVms, "dataGridViewVms");
this.dataGridViewVms.MultiSelect = true;
this.dataGridViewVms.Name = "dataGridViewVms";
this.dataGridViewVms.ReadOnly = true;
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2";
//
// dataGridViewSites
//
this.dataGridViewSites.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridViewSites.BackgroundColor = System.Drawing.SystemColors.Window;
this.dataGridViewSites.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
this.dataGridViewSites.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.dataGridViewSites.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.ColumnSite,
this.ColumnConfiguration,
this.ColumnSRs});
resources.ApplyResources(this.dataGridViewSites, "dataGridViewSites");
this.dataGridViewSites.MultiSelect = true;
this.dataGridViewSites.Name = "dataGridViewSites";
this.dataGridViewSites.ReadOnly = true;
//
// ColumnSite
//
this.ColumnSite.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.ColumnSite.DefaultCellStyle = dataGridViewCellStyle4;
this.ColumnSite.FillWeight = 20F;
resources.ApplyResources(this.ColumnSite, "ColumnSite");
this.ColumnSite.Name = "ColumnSite";
this.ColumnSite.ReadOnly = true;
//
// ColumnConfiguration
//
this.ColumnConfiguration.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
this.ColumnConfiguration.DefaultCellStyle = dataGridViewCellStyle5;
this.ColumnConfiguration.FillWeight = 20F;
resources.ApplyResources(this.ColumnConfiguration, "ColumnConfiguration");
this.ColumnConfiguration.Name = "ColumnConfiguration";
this.ColumnConfiguration.ReadOnly = true;
this.ColumnConfiguration.Resizable = System.Windows.Forms.DataGridViewTriState.True;
//
// ColumnSRs
//
this.ColumnSRs.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
this.ColumnSRs.DefaultCellStyle = dataGridViewCellStyle6;
resources.ApplyResources(this.ColumnSRs, "ColumnSRs");
this.ColumnSRs.Name = "ColumnSRs";
this.ColumnSRs.ReadOnly = true;
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// panel1
//
resources.ApplyResources(this.panel1, "panel1");
this.panel1.Controls.Add(this.ConfigureButton);
this.panel1.Controls.Add(this.ViewPvsSitesButton);
this.panel1.Name = "panel1";
//
// ConfigureButton
//
resources.ApplyResources(this.ConfigureButton, "ConfigureButton");
this.ConfigureButton.Name = "ConfigureButton";
this.ConfigureButton.UseVisualStyleBackColor = true;
//
// ViewPvsSitesButton
//
resources.ApplyResources(this.ViewPvsSitesButton, "ViewPvsSitesButton");
this.ViewPvsSitesButton.Name = "ViewPvsSitesButton";
this.ViewPvsSitesButton.UseVisualStyleBackColor = true;
this.ViewPvsSitesButton.Click += new System.EventHandler(this.ViewPvsSitesButton_Click);
//
// panel2
//
resources.ApplyResources(this.panel2, "panel2");
this.panel2.Controls.Add(this.enableButton);
this.panel2.Controls.Add(this.disableButton);
this.panel2.Name = "panel2";
//
// enableButton
//
resources.ApplyResources(this.enableButton, "enableButton");
this.enableButton.Name = "enableButton";
this.enableButton.UseVisualStyleBackColor = true;
//
// disableButton
//
resources.ApplyResources(this.disableButton, "disableButton");
this.disableButton.Name = "disableButton";
this.disableButton.UseVisualStyleBackColor = true;
//
// columnVM
//
this.columnVM.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.columnVM.DefaultCellStyle = dataGridViewCellStyle1;
resources.ApplyResources(this.columnVM, "columnVM");
this.columnVM.Name = "columnVM";
this.columnVM.ReadOnly = true;
//
// ColumnCachingEnabled
//
resources.ApplyResources(this.ColumnCachingEnabled, "ColumnCachingEnabled");
this.ColumnCachingEnabled.Name = "ColumnCachingEnabled";
this.ColumnCachingEnabled.ReadOnly = true;
//
// columnCurrentlyCached
//
this.columnCurrentlyCached.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
this.columnCurrentlyCached.DefaultCellStyle = dataGridViewCellStyle2;
this.columnCurrentlyCached.FillWeight = 30F;
resources.ApplyResources(this.columnCurrentlyCached, "columnCurrentlyCached");
this.columnCurrentlyCached.Name = "columnCurrentlyCached";
this.columnCurrentlyCached.ReadOnly = true;
this.columnCurrentlyCached.Resizable = System.Windows.Forms.DataGridViewTriState.True;
//
// ColumnPvsSite
//
resources.ApplyResources(this.ColumnPvsSite, "ColumnPvsSite");
this.ColumnPvsSite.Name = "ColumnPvsSite";
this.ColumnPvsSite.ReadOnly = true;
//
// ColumnStatus
//
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
this.ColumnStatus.DefaultCellStyle = dataGridViewCellStyle3;
this.ColumnStatus.FillWeight = 30F;
resources.ApplyResources(this.ColumnStatus, "ColumnStatus");
this.ColumnStatus.Name = "ColumnStatus";
this.ColumnStatus.ReadOnly = true;
//
// PvsPage
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Name = "PvsPage";
this.pageContainerPanel.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewVms)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewSites)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private Controls.DataGridViewEx.DataGridViewEx dataGridViewSites;
public System.Windows.Forms.Button ConfigureButton;
public System.Windows.Forms.Button ViewPvsSitesButton;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private Controls.DataGridViewEx.DataGridViewEx dataGridViewVms;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnSite;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnConfiguration;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnSRs;
private XenAdmin.Commands.CommandButton disableButton;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel2;
private XenAdmin.Commands.CommandButton enableButton;
private System.Windows.Forms.DataGridViewTextBoxColumn columnVM;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnCachingEnabled;
private System.Windows.Forms.DataGridViewTextBoxColumn columnCurrentlyCached;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnPvsSite;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnStatus;
}
}