CP-29522, CA-302477: Added TB option to the NumericUpdown of the NewDiskDialog and fixed validation on the VDISizeLocationPage.

Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
This commit is contained in:
Konstantina Chremmou 2019-09-04 02:03:44 +01:00 committed by Mihaela Stoica
parent 73eaed6af8
commit f39a715816
17 changed files with 1917 additions and 1157 deletions

113
XenAdmin/Controls/DiskSpinner.Designer.cs generated Normal file
View File

@ -0,0 +1,113 @@
namespace XenAdmin.Controls
{
partial class DiskSpinner
{
/// <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))
{
DiskSizeNumericUpDown.TextChanged -= DiskSizeNumericUpDown_TextChanged;
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(DiskSpinner));
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanelError = new System.Windows.Forms.TableLayoutPanel();
this.labelError = new System.Windows.Forms.Label();
this.pictureBoxError = new System.Windows.Forms.PictureBox();
this.comboBoxUnits = new System.Windows.Forms.ComboBox();
this.DiskSizeNumericUpDown = new System.Windows.Forms.NumericUpDown();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanelError.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxError)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.DiskSizeNumericUpDown)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanelError, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.comboBoxUnits, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.DiskSizeNumericUpDown, 0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// tableLayoutPanelError
//
resources.ApplyResources(this.tableLayoutPanelError, "tableLayoutPanelError");
this.tableLayoutPanelError.Controls.Add(this.labelError, 1, 0);
this.tableLayoutPanelError.Controls.Add(this.pictureBoxError, 0, 0);
this.tableLayoutPanelError.Name = "tableLayoutPanelError";
//
// labelError
//
resources.ApplyResources(this.labelError, "labelError");
this.labelError.ForeColor = System.Drawing.Color.Red;
this.labelError.Name = "labelError";
//
// pictureBoxError
//
resources.ApplyResources(this.pictureBoxError, "pictureBoxError");
this.pictureBoxError.Name = "pictureBoxError";
this.pictureBoxError.TabStop = false;
//
// comboBoxUnits
//
this.comboBoxUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
resources.ApplyResources(this.comboBoxUnits, "comboBoxUnits");
this.comboBoxUnits.FormattingEnabled = true;
this.comboBoxUnits.Name = "comboBoxUnits";
this.comboBoxUnits.SelectedIndexChanged += new System.EventHandler(this.comboBoxUnits_SelectedIndexChanged);
//
// DiskSizeNumericUpDown
//
resources.ApplyResources(this.DiskSizeNumericUpDown, "DiskSizeNumericUpDown");
this.DiskSizeNumericUpDown.Name = "DiskSizeNumericUpDown";
this.DiskSizeNumericUpDown.ValueChanged += new System.EventHandler(this.DiskSizeNumericUpDown_ValueChanged);
this.DiskSizeNumericUpDown.KeyUp += new System.Windows.Forms.KeyEventHandler(this.DiskSizeNumericUpDown_KeyUp);
//
// DiskSpinner
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "DiskSpinner";
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.tableLayoutPanelError.ResumeLayout(false);
this.tableLayoutPanelError.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxError)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.DiskSizeNumericUpDown)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.NumericUpDown DiskSizeNumericUpDown;
private System.Windows.Forms.ComboBox comboBoxUnits;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelError;
private System.Windows.Forms.Label labelError;
private System.Windows.Forms.PictureBox pictureBoxError;
}
}

View File

@ -0,0 +1,251 @@
/* Copyright (c) Citrix Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace XenAdmin.Controls
{
public partial class DiskSpinner : UserControl
{
private const long DEFAULT_MINIMUM = Util.BINARY_MEGA; //default minimum size for disks
private const long DEFAULT_MAXIMUM = Util.BINARY_PETA; //default maximum size for disks
private long _minDiskSize = DEFAULT_MINIMUM;
private bool _updating;
private bool _isSizeValid;
public event Action SelectedSizeChanged;
public DiskSpinner()
{
InitializeComponent();
DiskSizeNumericUpDown.TextChanged += DiskSizeNumericUpDown_TextChanged;
}
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool CanResize
{
get => DiskSizeNumericUpDown.Enabled && comboBoxUnits.Enabled;
set => DiskSizeNumericUpDown.Enabled = comboBoxUnits.Enabled = value;
}
public long SelectedSize { get; private set; } = Util.BINARY_GIGA; //default size for disks
public bool IsSizeValid
{
get => _isSizeValid;
private set
{
_isSizeValid = value;
SelectedSizeChanged?.Invoke();
}
}
public void Populate(long selectedSize = Util.BINARY_GIGA, long minSize = DEFAULT_MINIMUM)
{
if (minSize < DEFAULT_MINIMUM)
minSize = DEFAULT_MINIMUM;
if (minSize > DEFAULT_MAXIMUM)
minSize = DEFAULT_MAXIMUM;
if (selectedSize < minSize)
selectedSize = minSize;
if (selectedSize > DEFAULT_MAXIMUM)
selectedSize = DEFAULT_MAXIMUM;
SelectedSize = selectedSize;
_minDiskSize = minSize;
comboBoxUnits.Items.Add(new DiskSizeWithUnits(3, 1, 0.001M, Util.BINARY_KILO, Util.BINARY_TERA, Messages.VAL_TERB));
comboBoxUnits.Items.Add(new DiskSizeWithUnits(3, 1, 0.001M, Util.BINARY_MEGA, Util.BINARY_GIGA, Messages.VAL_GIGB));
comboBoxUnits.Items.Add(new DiskSizeWithUnits(0, 256, 1, Util.BINARY_GIGA, Util.BINARY_MEGA, Messages.VAL_MEGB));
foreach (DiskSizeWithUnits item in comboBoxUnits.Items)
{
if (item.TryRoundOptimal(selectedSize, out _))
{
comboBoxUnits.SelectedItem = item;
break;
}
}
}
public void ValidateSize()
{
if (_updating || !(comboBoxUnits.SelectedItem is DiskSizeWithUnits dsk))
return;
if (string.IsNullOrEmpty(DiskSizeNumericUpDown.Text.Trim())) //do not issue error here
{
SetError(null);
IsSizeValid = false;
return;
}
// Don't use DiskSizeNumericUpDown.Value here, as it will fire the NumericUpDown built-in validation.
// Use Text property instead. (CA-46028)
if (!decimal.TryParse(DiskSizeNumericUpDown.Text.Trim(), out decimal result) || result < 0)
{
SetError(Messages.INVALID_NUMBER);
IsSizeValid = false;
return;
}
try
{
SelectedSize = (long)(result * dsk.Multiplier);
}
catch (OverflowException) //CA-71312
{
SelectedSize = long.MaxValue;
}
if (SelectedSize < _minDiskSize)
{
SetError(string.Format(Messages.DISK_TOO_SMALL, Util.DiskSizeString(_minDiskSize, dsk.DecimalPlaces)));
IsSizeValid = false;
return;
}
if (SelectedSize > DEFAULT_MAXIMUM)
{
SetError(Messages.INVALID_NUMBER);
IsSizeValid = false;
return;
}
SetError(null);
IsSizeValid = true;
}
public void SetError(string error)
{
if (string.IsNullOrEmpty(error))
tableLayoutPanelError.Visible = false;
else
{
tableLayoutPanelError.Visible = true;
labelError.Text = error;
}
}
private void DiskSizeNumericUpDown_ValueChanged(object sender, EventArgs e)
{
ValidateSize();
}
private void DiskSizeNumericUpDown_TextChanged(object sender, EventArgs e)
{
ValidateSize();
}
private void DiskSizeNumericUpDown_KeyUp(object sender, KeyEventArgs e)
{
ValidateSize();
}
private void comboBoxUnits_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
_updating = true;
if (!(comboBoxUnits.SelectedItem is DiskSizeWithUnits dsk))
return;
DiskSizeNumericUpDown.Increment = dsk.Increment;
DiskSizeNumericUpDown.DecimalPlaces = dsk.DecimalPlaces;
DiskSizeNumericUpDown.Minimum = dsk.Minimum;
DiskSizeNumericUpDown.Maximum = dsk.Maximum;
DiskSizeNumericUpDown.Value = dsk.RoundSize(SelectedSize);
}
finally
{
_updating = false;
}
ValidateSize();
}
private struct DiskSizeWithUnits
{
public int DecimalPlaces { get; }
public int Increment { get; }
public decimal Minimum { get; }
public decimal Maximum { get; }
public long Multiplier { get; }
public string Unit { get; }
public DiskSizeWithUnits(int decimalPlaces, int increment, decimal minimum, decimal maximum, long multiplier, string unit)
{
DecimalPlaces = decimalPlaces;
Increment = increment;
Minimum = minimum;
Maximum = maximum;
Multiplier = multiplier;
Unit = unit;
}
public override string ToString()
{
return Unit;
}
public decimal RoundSize(decimal size)
{
var rounded = Math.Round(size / Multiplier, DecimalPlaces);
if (rounded < Minimum)
return Minimum;
if (rounded > Maximum)
return Maximum;
return rounded;
}
public bool TryRoundOptimal(decimal size, out decimal result)
{
if (size >= Multiplier)
{
result = Math.Round(size / Multiplier, DecimalPlaces);
return true;
}
result = 0;
return false;
}
}
}
}

View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="tableLayoutPanelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left, Right</value>
</data>
<data name="tableLayoutPanelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelError.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelError.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="labelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="labelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelError.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 3</value>
</data>
<data name="labelError.Size" type="System.Drawing.Size, System.Drawing">
<value>276, 15</value>
</data>
<data name="labelError.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelError.Text" xml:space="preserve">
<value>There are no SR locations that can support this disk</value>
</data>
<data name="&gt;&gt;labelError.Name" xml:space="preserve">
<value>labelError</value>
</data>
<data name="&gt;&gt;labelError.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;labelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBoxError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="pictureBoxError.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAelJREFUOE+V
k11P1EAUhqftirf+lI3o/+hf4kYSLgjKBVy5K6KwREhBdgOExEJCMBjMGgFR+SgECBpZFwhEkOTwnOl0
U+CKkzzp1zzvnGmn5nZ1FEwIEcgt9F7oht0tHj6CuC/wZMkrSMM8lGNomDbZgznu9fJMx+hYp6Xl5Pqs
X5BzpFNowh/EQxewYx7IJoz6gYbUb4RwEat8lpv1NxzALmwj/oR1WIGK79tOMjnUtnXWv/CvPCBXyY78
Kj5tzZoUn8gl9xrlV/LZFGQJutPlhBoQLbK+Izerylr/m03ZRNyGK861znlWRV4wgVQ820WkAbKPmK31
AEFlLT1m8iXH6WK7jCB/gGlQ1wZka92iXV3rj1yIlspTxcfyFmkKZqBmbAdpQIK0Ad9h1Qa0t2bW0oAq
ATUb4MskRPmANaRv8JX1redkFZXsPCZkAnEMKrmAqOYF8gV5GS6SpCVMIryHCxdyykscsrIn/Z79CvYl
hj18kk/IH+EoGpczBk4glmhZW53l/ITgtXJZniO/hs7Abu90a3MSD7I55hH0DQ9DybWqAe9ApR54oUc/
3dJW1uLCbuUSIfp5qgjjLmAEYQg0oATdvp355lbWciFxF629ZH36koYR3jixl3vP0rbv/kz54uE9fmdj
rgGIa8PaA/xpMAAAAABJRU5ErkJggg==
</value>
</data>
<data name="pictureBoxError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBoxError.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="pictureBoxError.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBoxError.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;pictureBoxError.Name" xml:space="preserve">
<value>pictureBoxError</value>
</data>
<data name="&gt;&gt;pictureBoxError.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBoxError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;pictureBoxError.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanelError.Location" type="System.Drawing.Point, System.Drawing">
<value>158, 3</value>
</data>
<data name="tableLayoutPanelError.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Size" type="System.Drawing.Size, System.Drawing">
<value>304, 22</value>
</data>
<data name="tableLayoutPanelError.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Name" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelError.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelError" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pictureBoxError" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="comboBoxUnits.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="comboBoxUnits.Location" type="System.Drawing.Point, System.Drawing">
<value>114, 3</value>
</data>
<data name="comboBoxUnits.Size" type="System.Drawing.Size, System.Drawing">
<value>38, 23</value>
</data>
<data name="comboBoxUnits.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Name" xml:space="preserve">
<value>comboBoxUnits</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;comboBoxUnits.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="DiskSizeNumericUpDown.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="DiskSizeNumericUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="DiskSizeNumericUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 23</value>
</data>
<data name="DiskSizeNumericUpDown.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="DiskSizeNumericUpDown.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Name" xml:space="preserve">
<value>DiskSizeNumericUpDown</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>465, 29</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanelError" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="comboBoxUnits" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="DiskSizeNumericUpDown" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>465, 29</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DiskSpinner</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="tableLayoutPanelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left, Right</value>
</data>
<data name="tableLayoutPanelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelError.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelError.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="labelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="labelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelError.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 3</value>
</data>
<data name="labelError.Size" type="System.Drawing.Size, System.Drawing">
<value>276, 15</value>
</data>
<data name="labelError.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelError.Text" xml:space="preserve">
<value>There are no SR locations that can support this disk</value>
</data>
<data name="&gt;&gt;labelError.Name" xml:space="preserve">
<value>labelError</value>
</data>
<data name="&gt;&gt;labelError.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;labelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBoxError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="pictureBoxError.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAelJREFUOE+V
k11P1EAUhqftirf+lI3o/+hf4kYSLgjKBVy5K6KwREhBdgOExEJCMBjMGgFR+SgECBpZFwhEkOTwnOl0
U+CKkzzp1zzvnGmn5nZ1FEwIEcgt9F7oht0tHj6CuC/wZMkrSMM8lGNomDbZgznu9fJMx+hYp6Xl5Pqs
X5BzpFNowh/EQxewYx7IJoz6gYbUb4RwEat8lpv1NxzALmwj/oR1WIGK79tOMjnUtnXWv/CvPCBXyY78
Kj5tzZoUn8gl9xrlV/LZFGQJutPlhBoQLbK+Izerylr/m03ZRNyGK861znlWRV4wgVQ820WkAbKPmK31
AEFlLT1m8iXH6WK7jCB/gGlQ1wZka92iXV3rj1yIlspTxcfyFmkKZqBmbAdpQIK0Ad9h1Qa0t2bW0oAq
ATUb4MskRPmANaRv8JX1redkFZXsPCZkAnEMKrmAqOYF8gV5GS6SpCVMIryHCxdyykscsrIn/Z79CvYl
hj18kk/IH+EoGpczBk4glmhZW53l/ITgtXJZniO/hs7Abu90a3MSD7I55hH0DQ9DybWqAe9ApR54oUc/
3dJW1uLCbuUSIfp5qgjjLmAEYQg0oATdvp355lbWciFxF629ZH36koYR3jixl3vP0rbv/kz54uE9fmdj
rgGIa8PaA/xpMAAAAABJRU5ErkJggg==
</value>
</data>
<data name="pictureBoxError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBoxError.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="pictureBoxError.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBoxError.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;pictureBoxError.Name" xml:space="preserve">
<value>pictureBoxError</value>
</data>
<data name="&gt;&gt;pictureBoxError.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBoxError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;pictureBoxError.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanelError.Location" type="System.Drawing.Point, System.Drawing">
<value>170, 3</value>
</data>
<data name="tableLayoutPanelError.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Size" type="System.Drawing.Size, System.Drawing">
<value>304, 22</value>
</data>
<data name="tableLayoutPanelError.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Name" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelError.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelError" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pictureBoxError" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="comboBoxUnits.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="comboBoxUnits.Location" type="System.Drawing.Point, System.Drawing">
<value>114, 3</value>
</data>
<data name="comboBoxUnits.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 23</value>
</data>
<data name="comboBoxUnits.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Name" xml:space="preserve">
<value>comboBoxUnits</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;comboBoxUnits.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="DiskSizeNumericUpDown.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="DiskSizeNumericUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="DiskSizeNumericUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 23</value>
</data>
<data name="DiskSizeNumericUpDown.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="DiskSizeNumericUpDown.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Name" xml:space="preserve">
<value>DiskSizeNumericUpDown</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>477, 29</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanelError" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="comboBoxUnits" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="DiskSizeNumericUpDown" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>477, 29</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DiskSpinner</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="tableLayoutPanelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left, Right</value>
</data>
<data name="tableLayoutPanelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelError.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelError.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="labelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="labelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelError.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 3</value>
</data>
<data name="labelError.Size" type="System.Drawing.Size, System.Drawing">
<value>276, 15</value>
</data>
<data name="labelError.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelError.Text" xml:space="preserve">
<value>There are no SR locations that can support this disk</value>
</data>
<data name="&gt;&gt;labelError.Name" xml:space="preserve">
<value>labelError</value>
</data>
<data name="&gt;&gt;labelError.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;labelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBoxError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="pictureBoxError.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAelJREFUOE+V
k11P1EAUhqftirf+lI3o/+hf4kYSLgjKBVy5K6KwREhBdgOExEJCMBjMGgFR+SgECBpZFwhEkOTwnOl0
U+CKkzzp1zzvnGmn5nZ1FEwIEcgt9F7oht0tHj6CuC/wZMkrSMM8lGNomDbZgznu9fJMx+hYp6Xl5Pqs
X5BzpFNowh/EQxewYx7IJoz6gYbUb4RwEat8lpv1NxzALmwj/oR1WIGK79tOMjnUtnXWv/CvPCBXyY78
Kj5tzZoUn8gl9xrlV/LZFGQJutPlhBoQLbK+Izerylr/m03ZRNyGK861znlWRV4wgVQ820WkAbKPmK31
AEFlLT1m8iXH6WK7jCB/gGlQ1wZka92iXV3rj1yIlspTxcfyFmkKZqBmbAdpQIK0Ad9h1Qa0t2bW0oAq
ATUb4MskRPmANaRv8JX1redkFZXsPCZkAnEMKrmAqOYF8gV5GS6SpCVMIryHCxdyykscsrIn/Z79CvYl
hj18kk/IH+EoGpczBk4glmhZW53l/ITgtXJZniO/hs7Abu90a3MSD7I55hH0DQ9DybWqAe9ApR54oUc/
3dJW1uLCbuUSIfp5qgjjLmAEYQg0oATdvp355lbWciFxF629ZH36koYR3jixl3vP0rbv/kz54uE9fmdj
rgGIa8PaA/xpMAAAAABJRU5ErkJggg==
</value>
</data>
<data name="pictureBoxError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBoxError.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="pictureBoxError.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBoxError.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;pictureBoxError.Name" xml:space="preserve">
<value>pictureBoxError</value>
</data>
<data name="&gt;&gt;pictureBoxError.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBoxError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;pictureBoxError.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanelError.Location" type="System.Drawing.Point, System.Drawing">
<value>158, 3</value>
</data>
<data name="tableLayoutPanelError.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Size" type="System.Drawing.Size, System.Drawing">
<value>304, 22</value>
</data>
<data name="tableLayoutPanelError.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Name" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelError.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelError" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pictureBoxError" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="comboBoxUnits.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="comboBoxUnits.Location" type="System.Drawing.Point, System.Drawing">
<value>114, 3</value>
</data>
<data name="comboBoxUnits.Size" type="System.Drawing.Size, System.Drawing">
<value>38, 23</value>
</data>
<data name="comboBoxUnits.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Name" xml:space="preserve">
<value>comboBoxUnits</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;comboBoxUnits.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="DiskSizeNumericUpDown.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="DiskSizeNumericUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="DiskSizeNumericUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 23</value>
</data>
<data name="DiskSizeNumericUpDown.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="DiskSizeNumericUpDown.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Name" xml:space="preserve">
<value>DiskSizeNumericUpDown</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>465, 29</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanelError" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="comboBoxUnits" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="DiskSizeNumericUpDown" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>465, 29</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>DiskSpinner</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -29,7 +29,6 @@ namespace XenAdmin.Dialogs
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NewDiskDialog));
this.DiskSizeNumericUpDown = new System.Windows.Forms.NumericUpDown();
this.SrListBox = new XenAdmin.Controls.SrPicker();
this.CloseButton = new System.Windows.Forms.Button();
this.OkButton = new System.Windows.Forms.Button();
@ -39,43 +38,25 @@ namespace XenAdmin.Dialogs
this.label3 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanelError = new System.Windows.Forms.TableLayoutPanel();
this.labelError = new System.Windows.Forms.Label();
this.pictureBoxError = new System.Windows.Forms.PictureBox();
this.comboBoxUnits = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.DiskSizeNumericUpDown)).BeginInit();
this.diskSpinner1 = new XenAdmin.Controls.DiskSpinner();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanelError.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxError)).BeginInit();
this.SuspendLayout();
//
// DiskSizeNumericUpDown
//
resources.ApplyResources(this.DiskSizeNumericUpDown, "DiskSizeNumericUpDown");
this.DiskSizeNumericUpDown.Maximum = new decimal(new int[] {
1000000000,
0,
0,
0});
this.DiskSizeNumericUpDown.Name = "DiskSizeNumericUpDown";
this.DiskSizeNumericUpDown.Value = new decimal(new int[] {
1,
0,
0,
0});
this.DiskSizeNumericUpDown.TextChanged += new System.EventHandler(this.DiskSizeNumericUpDown_TextChanged);
this.DiskSizeNumericUpDown.ValueChanged += new System.EventHandler(this.DiskSizeNumericUpDown_ValueChanged);
this.DiskSizeNumericUpDown.KeyUp += new System.Windows.Forms.KeyEventHandler(this.DiskSizeNumericUpDown_KeyUp);
//
// SrListBox
//
this.tableLayoutPanel1.SetColumnSpan(this.SrListBox, 4);
this.tableLayoutPanel1.SetColumnSpan(this.SrListBox, 3);
this.SrListBox.Connection = null;
resources.ApplyResources(this.SrListBox, "SrListBox");
this.SrListBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.SrListBox.Name = "SrListBox";
this.SrListBox.NodeIndent = 3;
this.SrListBox.RootAlwaysExpanded = false;
this.SrListBox.ShowCheckboxes = false;
this.SrListBox.ShowDescription = true;
this.SrListBox.ShowImages = true;
this.SrListBox.ShowRootLines = true;
this.SrListBox.SelectedIndexChanged += new System.EventHandler(this.srListBox_SelectedIndexChanged);
//
// CloseButton
@ -96,7 +77,7 @@ namespace XenAdmin.Dialogs
//
// NameTextBox
//
this.tableLayoutPanel1.SetColumnSpan(this.NameTextBox, 4);
this.tableLayoutPanel1.SetColumnSpan(this.NameTextBox, 3);
resources.ApplyResources(this.NameTextBox, "NameTextBox");
this.NameTextBox.Name = "NameTextBox";
this.NameTextBox.TextChanged += new System.EventHandler(this.NameTextBox_TextChanged);
@ -108,7 +89,7 @@ namespace XenAdmin.Dialogs
//
// DescriptionTextBox
//
this.tableLayoutPanel1.SetColumnSpan(this.DescriptionTextBox, 4);
this.tableLayoutPanel1.SetColumnSpan(this.DescriptionTextBox, 3);
resources.ApplyResources(this.DescriptionTextBox, "DescriptionTextBox");
this.DescriptionTextBox.Name = "DescriptionTextBox";
this.DescriptionTextBox.TextChanged += new System.EventHandler(this.NameTextBox_TextChanged);
@ -126,52 +107,19 @@ namespace XenAdmin.Dialogs
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanelError, 3, 4);
this.tableLayoutPanel1.Controls.Add(this.comboBoxUnits, 2, 4);
this.tableLayoutPanel1.Controls.Add(this.CloseButton, 4, 9);
this.tableLayoutPanel1.Controls.Add(this.CloseButton, 3, 6);
this.tableLayoutPanel1.Controls.Add(this.label2, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 4);
this.tableLayoutPanel1.Controls.Add(this.NameTextBox, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.DescriptionTextBox, 1, 3);
this.tableLayoutPanel1.Controls.Add(this.SrListBox, 1, 5);
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.DiskSizeNumericUpDown, 1, 4);
this.tableLayoutPanel1.Controls.Add(this.label4, 0, 5);
this.tableLayoutPanel1.Controls.Add(this.label6, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.OkButton, 3, 9);
this.tableLayoutPanel1.Controls.Add(this.OkButton, 2, 6);
this.tableLayoutPanel1.Controls.Add(this.diskSpinner1, 1, 4);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// tableLayoutPanelError
//
resources.ApplyResources(this.tableLayoutPanelError, "tableLayoutPanelError");
this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanelError, 2);
this.tableLayoutPanelError.Controls.Add(this.labelError, 1, 0);
this.tableLayoutPanelError.Controls.Add(this.pictureBoxError, 0, 0);
this.tableLayoutPanelError.Name = "tableLayoutPanelError";
//
// labelError
//
resources.ApplyResources(this.labelError, "labelError");
this.labelError.ForeColor = System.Drawing.Color.Red;
this.labelError.Name = "labelError";
//
// pictureBoxError
//
resources.ApplyResources(this.pictureBoxError, "pictureBoxError");
this.pictureBoxError.Name = "pictureBoxError";
this.pictureBoxError.TabStop = false;
//
// comboBoxUnits
//
this.comboBoxUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
resources.ApplyResources(this.comboBoxUnits, "comboBoxUnits");
this.comboBoxUnits.FormattingEnabled = true;
this.comboBoxUnits.Items.AddRange(new object[] {
resources.GetString("comboBoxUnits.Items"),
resources.GetString("comboBoxUnits.Items1")});
this.comboBoxUnits.Name = "comboBoxUnits";
this.comboBoxUnits.SelectedIndexChanged += new System.EventHandler(this.comboBoxUnits_SelectedIndexChanged);
//
// label4
//
resources.ApplyResources(this.label4, "label4");
@ -180,9 +128,16 @@ namespace XenAdmin.Dialogs
// label6
//
resources.ApplyResources(this.label6, "label6");
this.tableLayoutPanel1.SetColumnSpan(this.label6, 5);
this.tableLayoutPanel1.SetColumnSpan(this.label6, 4);
this.label6.Name = "label6";
//
// diskSpinner1
//
resources.ApplyResources(this.diskSpinner1, "diskSpinner1");
this.tableLayoutPanel1.SetColumnSpan(this.diskSpinner1, 3);
this.diskSpinner1.Name = "diskSpinner1";
this.diskSpinner1.SelectedSizeChanged += new System.Action(this.diskSpinner1_SelectedSizeChanged);
//
// NewDiskDialog
//
this.AcceptButton = this.OkButton;
@ -191,12 +146,8 @@ namespace XenAdmin.Dialogs
this.Controls.Add(this.tableLayoutPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
this.Name = "NewDiskDialog";
((System.ComponentModel.ISupportInitialize)(this.DiskSizeNumericUpDown)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.tableLayoutPanelError.ResumeLayout(false);
this.tableLayoutPanelError.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxError)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -207,7 +158,6 @@ namespace XenAdmin.Dialogs
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown DiskSizeNumericUpDown;
private XenAdmin.Controls.SrPicker SrListBox;
private System.Windows.Forms.Button CloseButton;
private System.Windows.Forms.Button OkButton;
@ -216,10 +166,6 @@ namespace XenAdmin.Dialogs
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.ComboBox comboBoxUnits;
private System.Windows.Forms.Label labelError;
private System.Windows.Forms.PictureBox pictureBoxError;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelError;
private Controls.DiskSpinner diskSpinner1;
}
}

View File

@ -45,73 +45,44 @@ namespace XenAdmin.Dialogs
{
public partial class NewDiskDialog : XenDialogBase
{
private enum DiskSizeUnits { MB, GB }
#region Private fields
private readonly VM TheVM;
private readonly SR TheSR;
private VDI DiskTemplate;
private bool CanResize;
private long MinSize;
private decimal min;
private decimal max;
private readonly IEnumerable<VDI> _VDINamesInUse = new List<VDI>();
private const int DecimalPlacesGB = 3; // show 3 decimal places for GB (CA-91322)
private const int DecimalPlacesMB = 0;
private const int IncrementGB = 1;
private const int IncrementMB = 256;
private const decimal MinimumDiskSizeGB = 0.001m;
private const int MinimumDiskSizeMB = 1;
private DiskSizeUnits currentSelectedUnits = DiskSizeUnits.GB;
#endregion
#region Constructors
private NewDiskDialog(IXenConnection connection, IEnumerable<VDI> vdiNamesInUse)
: base(connection)
{
if (connection == null)
throw new ArgumentNullException("connection");
InitializeComponent();
_VDINamesInUse = vdiNamesInUse;
SrListBox.Connection = connection;
NameTextBox.Text = GetDefaultVDIName();
max = (decimal)Math.Pow(1024, 4);//1 Petabit
min = 0;
comboBoxUnits.SelectedItem = comboBoxUnits.Items[0];
SetNumUpDownIncrementAndDecimals(DiskSizeNumericUpDown, comboBoxUnits.SelectedItem.ToString());
updateErrorsAndButtons();
}
public NewDiskDialog(IXenConnection connection, SR sr)
: this(connection, new List<VDI>())
: base(connection ?? throw new ArgumentNullException(nameof(connection)))
{
TheSR = sr;
InitializeComponent();
NameTextBox.Text = GetDefaultVDIName();
SrListBox.Connection = connection;
SrListBox.Usage = SrPicker.SRPickerType.InstallFromTemplate;
SrListBox.SetAffinity(null);
SrListBox.selectSRorNone(TheSR);
SrListBox.selectSRorNone(sr);
diskSpinner1.Populate();
}
public NewDiskDialog(IXenConnection connection, VM vm)
: this(connection, vm, SrPicker.SRPickerType.VM, null, vm.Home(), true, 0, new List<VDI>())
: this(connection, vm, vm.Home())
{ }
public NewDiskDialog(IXenConnection connection, VM vm, SrPicker.SRPickerType pickerUsage, VDI diskTemplate,
Host affinity, bool canResize, long minSize, IEnumerable<VDI> vdiNamesInUse)
: this(connection, vdiNamesInUse)
public NewDiskDialog(IXenConnection connection, VM vm, Host affinity,
SrPicker.SRPickerType pickerUsage = SrPicker.SRPickerType.VM, VDI diskTemplate = null,
bool canResize = true, long minSize = 0, IEnumerable<VDI> vdiNamesInUse = null)
: base(connection ?? throw new ArgumentNullException(nameof(connection)))
{
InitializeComponent();
TheVM = vm;
DiskTemplate = diskTemplate;
CanResize = canResize;
MinSize = minSize;
_VDINamesInUse = vdiNamesInUse ?? new List<VDI>();
SrListBox.Connection = connection;
SrListBox.Usage = pickerUsage;
SrListBox.SetAffinity(affinity);
@ -120,37 +91,32 @@ namespace XenAdmin.Dialogs
{
SrListBox.DefaultSR = connection.Resolve(pool_sr.default_SR); //if default sr resolves to null the first sr in the list will be selected
}
SrListBox.selectDefaultSROrAny();
LoadValues();
if (diskTemplate == null)
{
NameTextBox.Text = GetDefaultVDIName();
SrListBox.selectDefaultSROrAny();
diskSpinner1.Populate(minSize: minSize);
}
else
{
DiskTemplate = diskTemplate;
NameTextBox.Text = DiskTemplate.Name();
DescriptionTextBox.Text = DiskTemplate.Description();
SrListBox.selectSRorDefaultorAny(connection.Resolve(DiskTemplate.SR));
Text = Messages.EDIT_DISK;
OkButton.Text = Messages.OK;
diskSpinner1.Populate(DiskTemplate.virtual_size, minSize);
}
diskSpinner1.CanResize = canResize;
}
#endregion
private void LoadValues()
{
if (DiskTemplate == null)
return;
public bool DontCreateVDI { get; set; }
NameTextBox.Text = DiskTemplate.Name();
DescriptionTextBox.Text = DiskTemplate.Description();
SrListBox.selectSRorDefaultorAny(connection.Resolve(DiskTemplate.SR));
// select the appropriate unit, based on size (CA-45905)
currentSelectedUnits = DiskTemplate.virtual_size >= Util.BINARY_GIGA ? DiskSizeUnits.GB : DiskSizeUnits.MB;
SelectedUnits = currentSelectedUnits;
SetNumUpDownIncrementAndDecimals(DiskSizeNumericUpDown, SelectedUnits.ToString());
decimal newValue = (decimal)Math.Round((double)DiskTemplate.virtual_size / GetUnits(), DiskSizeNumericUpDown.DecimalPlaces);
DiskSizeNumericUpDown.Value = newValue >= DiskSizeNumericUpDown.Minimum && newValue <= DiskSizeNumericUpDown.Maximum ?
newValue : DiskSizeNumericUpDown.Maximum;
if (MinSize > 0)
min = (decimal)((double)MinSize / GetUnits());
DiskSizeNumericUpDown.Enabled = CanResize;
Text = Messages.EDIT_DISK;
OkButton.Text = Messages.OK;
}
internal override string HelpName => DiskTemplate == null ? "NewDiskDialog" : "EditNewDiskDialog";
private string GetDefaultVDIName()
{
@ -164,7 +130,7 @@ namespace XenAdmin.Dialogs
private void srListBox_SelectedIndexChanged(object sender, EventArgs e)
{
updateErrorsAndButtons();
UpdateErrorsAndButtons();
}
private void OkButton_Click(object sender, EventArgs e)
@ -287,20 +253,6 @@ namespace XenAdmin.Dialogs
return false;
}
private void SetNumUpDownIncrementAndDecimals(NumericUpDown upDown, string units)
{
if (units == Messages.VAL_GIGB)
{
upDown.DecimalPlaces = DecimalPlacesGB;
upDown.Increment = IncrementGB;
}
else
{
upDown.DecimalPlaces = DecimalPlacesMB;
upDown.Increment = IncrementMB;
}
}
public VDI NewDisk()
{
VDI vdi = new VDI();
@ -308,7 +260,7 @@ namespace XenAdmin.Dialogs
vdi.read_only = DiskTemplate != null ? DiskTemplate.read_only : false;
vdi.SR = new XenAPI.XenRef<XenAPI.SR>(SrListBox.SR);
vdi.virtual_size = Convert.ToInt64(DiskSizeNumericUpDown.Value * GetUnits());
vdi.virtual_size = diskSpinner1.SelectedSize;
vdi.name_label = NameTextBox.Text;
vdi.name_description = DescriptionTextBox.Text;
vdi.sharable = DiskTemplate != null ? DiskTemplate.sharable : false;
@ -317,11 +269,6 @@ namespace XenAdmin.Dialogs
return vdi;
}
private long GetUnits()
{
return (SelectedUnits == DiskSizeUnits.GB ? Util.BINARY_GIGA : Util.BINARY_MEGA);
}
public VBD NewDevice()
{
@ -339,101 +286,51 @@ namespace XenAdmin.Dialogs
private void NameTextBox_TextChanged(object sender, EventArgs e)
{
updateErrorsAndButtons();
UpdateErrorsAndButtons();
}
private DiskSizeUnits SelectedUnits
private void diskSpinner1_SelectedSizeChanged()
{
get { return comboBoxUnits.SelectedIndex == 0 ? DiskSizeUnits.GB : DiskSizeUnits.MB; }
set { comboBoxUnits.SelectedIndex = value == DiskSizeUnits.GB ? 0 : 1; }
UpdateErrorsAndButtons();
}
private decimal GetDiskTooSmallMessageMinSize()
{
return min == 0 ? SelectedUnits == DiskSizeUnits.GB ? MinimumDiskSizeGB : MinimumDiskSizeMB : min;
}
private void updateErrorsAndButtons()
private void UpdateErrorsAndButtons()
{
// Ordering is important here, we want to show the most relevant message
// The error should be shown only for size errors
if (comboBoxUnits.SelectedItem == null)
if (!diskSpinner1.IsSizeValid)
{
OkButton.Enabled = false;
return;
}
if (!SrListBox.ValidSelectionExists)
SrListBox.DiskSize = diskSpinner1.SelectedSize;
SrListBox.UpdateDiskSize();
if (!SrListBox.ValidSelectionExists)//all SRs disabled
{
OkButton.Enabled = false;
setError(Messages.NO_VALID_DISK_LOCATION);
diskSpinner1.SetError(Messages.NO_VALID_DISK_LOCATION);
return;
}
if (SrListBox.SR == null)
if (SrListBox.SR == null) //enabled SR exists but the user selects a disabled one
{
OkButton.Enabled = false;
// shouldn't happen I think, previous if block should catch this, just to be safe
setError(null);
return;
}
if (DiskSizeNumericUpDown.Text.Trim() == string.Empty)
{
OkButton.Enabled = false;
// too minor for scary error to be displayed, plus it's obvious as they have to
// delete the default entry and can see the OK button disable as they do so
setError(null);
return;
}
if (!DiskSizeValidNumber())
{
OkButton.Enabled = false;
setError(Messages.INVALID_NUMBER);
return;
}
if (!DiskSizeValid())
{
OkButton.Enabled = false;
setError(string.Format(Messages.DISK_TOO_SMALL, GetDiskTooSmallMessageMinSize(),
comboBoxUnits.SelectedItem.ToString()));
diskSpinner1.SetError(null);
return;
}
if (string.IsNullOrEmpty(NameTextBox.Text.Trim()))
{
OkButton.Enabled = false;
// too minor for scary error to be displayed, plus it's obvious as they have to
// delete the default entry and can see the OK button disable as they do so
setError(null);
diskSpinner1.SetError(null);
return;
}
OkButton.Enabled = true;
setError(null);
}
private void setError(string error)
{
if (string.IsNullOrEmpty(error))
tableLayoutPanelError.Visible = false;
else
{
tableLayoutPanelError.Visible = true;
labelError.Text = error;
}
}
private bool DiskSizeValidNumber()
{
decimal val;
return decimal.TryParse(DiskSizeNumericUpDown.Text.Trim(), out val);
}
private bool DiskSizeValid()
{
decimal val;
if (decimal.TryParse(DiskSizeNumericUpDown.Text.Trim(), out val))
{
if (min == 0)
return val > min && val <= max;
return val >= min && val <= max;
}
return false;
diskSpinner1.SetError(null);
}
private void CloseButton_Click(object sender, EventArgs e)
@ -441,77 +338,5 @@ namespace XenAdmin.Dialogs
DialogResult = DialogResult.Cancel;
Close();
}
public bool DontCreateVDI { get; set; }
private void DiskSizeNumericUpDown_ValueChanged(object sender, EventArgs e)
{
UpdateDiskSize();
}
private void DiskSizeNumericUpDown_TextChanged(object sender, EventArgs e)
{
UpdateDiskSize();
}
private void DiskSizeNumericUpDown_KeyUp(object sender, KeyEventArgs e)
{
UpdateDiskSize();
}
private void UpdateDiskSize()
{
// Don't use DiskSizeNumericUpDown.Value here, as it will fire the NumericUpDown built-in validation. Use Text property instead. (CA-46028)
decimal newValue;
if (decimal.TryParse(DiskSizeNumericUpDown.Text.Trim(), out newValue))
{
try
{
SrListBox.DiskSize = (long)(Math.Round(newValue * GetUnits()));
}
catch (OverflowException)
{
//CA-71312
SrListBox.DiskSize = newValue < 0 ? long.MinValue : long.MaxValue;
}
SrListBox.UpdateDiskSize();
}
RefreshMinSize();
updateErrorsAndButtons();
}
private void RefreshMinSize()
{
if (DiskTemplate == null)
return;
if (MinSize > 0)
min = (decimal)((double)MinSize / GetUnits());
}
private void comboBoxUnits_SelectedIndexChanged(object sender, EventArgs e)
{
//Check if the new unit is different than the previous one otherwise discard the change
if (currentSelectedUnits != SelectedUnits)
{
currentSelectedUnits = SelectedUnits;
//Convert the current value to the new units
decimal newValue = (decimal)Math.Round(SelectedUnits == DiskSizeUnits.GB ? ((double)DiskSizeNumericUpDown.Value / 1024) : ((double)DiskSizeNumericUpDown.Value * 1024), DiskSizeNumericUpDown.DecimalPlaces);
DiskSizeNumericUpDown.Value = newValue >= DiskSizeNumericUpDown.Minimum && newValue <= DiskSizeNumericUpDown.Maximum ?
newValue : DiskSizeNumericUpDown.Maximum;
SetNumUpDownIncrementAndDecimals(DiskSizeNumericUpDown, comboBoxUnits.SelectedItem.ToString());
UpdateDiskSize();
}
}
internal override string HelpName
{
get
{
if (DiskTemplate != null)
return "EditNewDiskDialog";
else
return "NewDiskDialog";
}
}
}
}

View File

@ -117,197 +117,21 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="DiskSizeNumericUpDown.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="DiskSizeNumericUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>79, 144</value>
</data>
<data name="DiskSizeNumericUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>105, 23</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="DiskSizeNumericUpDown.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="DiskSizeNumericUpDown.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Name" xml:space="preserve">
<value>DiskSizeNumericUpDown</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;DiskSizeNumericUpDown.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tableLayoutPanelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelError.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelError.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="labelError.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="labelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelError.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 4</value>
</data>
<data name="labelError.Size" type="System.Drawing.Size, System.Drawing">
<value>276, 15</value>
</data>
<data name="labelError.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelError.Text" xml:space="preserve">
<value>There are no SR locations that can support this disk</value>
</data>
<data name="&gt;&gt;labelError.Name" xml:space="preserve">
<value>labelError</value>
</data>
<data name="&gt;&gt;labelError.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;labelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBoxError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="pictureBoxError.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAelJREFUOE+V
k11P1EAUhqftirf+lI3o/+hf4kYSLgjKBVy5K6KwREhBdgOExEJCMBjMGgFR+SgECBpZFwhEkOTwnOl0
U+CKkzzp1zzvnGmn5nZ1FEwIEcgt9F7oht0tHj6CuC/wZMkrSMM8lGNomDbZgznu9fJMx+hYp6Xl5Pqs
X5BzpFNowh/EQxewYx7IJoz6gYbUb4RwEat8lpv1NxzALmwj/oR1WIGK79tOMjnUtnXWv/CvPCBXyY78
Kj5tzZoUn8gl9xrlV/LZFGQJutPlhBoQLbK+Izerylr/m03ZRNyGK861znlWRV4wgVQ820WkAbKPmK31
AEFlLT1m8iXH6WK7jCB/gGlQ1wZka92iXV3rj1yIlspTxcfyFmkKZqBmbAdpQIK0Ad9h1Qa0t2bW0oAq
ATUb4MskRPmANaRv8JX1redkFZXsPCZkAnEMKrmAqOYF8gV5GS6SpCVMIryHCxdyykscsrIn/Z79CvYl
hj18kk/IH+EoGpczBk4glmhZW53l/ITgtXJZniO/hs7Abu90a3MSD7I55hH0DQ9DybWqAe9ApR54oUc/
3dJW1uLCbuUSIfp5qgjjLmAEYQg0oATdvp355lbWciFxF629ZH36koYR3jixl3vP0rbv/kz54uE9fmdj
rgGIa8PaA/xpMAAAAABJRU5ErkJggg==
</value>
</data>
<data name="pictureBoxError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBoxError.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="pictureBoxError.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBoxError.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;pictureBoxError.Name" xml:space="preserve">
<value>pictureBoxError</value>
</data>
<data name="&gt;&gt;pictureBoxError.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBoxError.Parent" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;pictureBoxError.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanelError.Location" type="System.Drawing.Point, System.Drawing">
<value>245, 144</value>
</data>
<data name="tableLayoutPanelError.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelError.Size" type="System.Drawing.Size, System.Drawing">
<value>379, 23</value>
</data>
<data name="tableLayoutPanelError.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Name" xml:space="preserve">
<value>tableLayoutPanelError</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanelError.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelError.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelError" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pictureBoxError" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="comboBoxUnits.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="comboBoxUnits.Items" xml:space="preserve">
<value>GB</value>
</data>
<data name="comboBoxUnits.Items1" xml:space="preserve">
<value>MB</value>
</data>
<data name="comboBoxUnits.Location" type="System.Drawing.Point, System.Drawing">
<value>190, 144</value>
</data>
<data name="comboBoxUnits.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 23</value>
</data>
<data name="comboBoxUnits.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Name" xml:space="preserve">
<value>comboBoxUnits</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboBoxUnits.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;comboBoxUnits.ZOrder" xml:space="preserve">
<value>1</value>
<value>4</value>
</data>
<data name="CloseButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="CloseButton.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
@ -333,7 +157,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;CloseButton.ZOrder" xml:space="preserve">
<value>2</value>
<value>0</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -366,7 +190,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>3</value>
<value>1</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -402,7 +226,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>4</value>
<value>2</value>
</data>
<data name="NameTextBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -432,7 +256,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;NameTextBox.ZOrder" xml:space="preserve">
<value>5</value>
<value>3</value>
</data>
<data name="DescriptionTextBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -465,7 +289,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;DescriptionTextBox.ZOrder" xml:space="preserve">
<value>6</value>
<value>4</value>
</data>
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -498,7 +322,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>8</value>
<value>6</value>
</data>
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -531,7 +355,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
<value>10</value>
<value>7</value>
</data>
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -567,7 +391,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
<value>11</value>
<value>8</value>
</data>
<data name="OkButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
@ -597,7 +421,43 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;OkButton.ZOrder" xml:space="preserve">
<value>12</value>
<value>9</value>
</data>
<data name="diskSpinner1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="diskSpinner1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="diskSpinner1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="diskSpinner1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="diskSpinner1.Location" type="System.Drawing.Point, System.Drawing">
<value>76, 141</value>
</data>
<data name="diskSpinner1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="diskSpinner1.Size" type="System.Drawing.Size, System.Drawing">
<value>551, 29</value>
</data>
<data name="diskSpinner1.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="&gt;&gt;diskSpinner1.Name" xml:space="preserve">
<value>diskSpinner1</value>
</data>
<data name="&gt;&gt;diskSpinner1.Type" xml:space="preserve">
<value>XenAdmin.Controls.DiskSpinner, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;diskSpinner1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;diskSpinner1.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -609,7 +469,7 @@
<value>10, 10</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>10</value>
<value>7</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>627, 382</value>
@ -630,7 +490,7 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanelError" Row="4" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="comboBoxUnits" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="CloseButton" Row="9" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="label2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label1" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="NameTextBox" Row="2" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="DescriptionTextBox" Row="3" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="SrListBox" Row="5" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="label3" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="DiskSizeNumericUpDown" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="label4" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label6" Row="1" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="OkButton" Row="9" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,Absolute,2,Absolute,2,AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="CloseButton" Row="6" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="label2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label1" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="NameTextBox" Row="2" RowSpan="1" Column="1" ColumnSpan="3" /&gt;&lt;Control Name="DescriptionTextBox" Row="3" RowSpan="1" Column="1" ColumnSpan="3" /&gt;&lt;Control Name="SrListBox" Row="5" RowSpan="1" Column="1" ColumnSpan="3" /&gt;&lt;Control Name="label3" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label4" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label6" Row="1" RowSpan="1" Column="0" ColumnSpan="4" /&gt;&lt;Control Name="OkButton" Row="6" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="diskSpinner1" Row="4" RowSpan="1" Column="1" ColumnSpan="3" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100,AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,AutoSize,0,Absolute,20,Absolute,20,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="SrListBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -651,7 +511,7 @@
<value>3, 6, 3, 3</value>
</data>
<data name="SrListBox.Size" type="System.Drawing.Size, System.Drawing">
<value>545, 170</value>
<value>545, 174</value>
</data>
<data name="SrListBox.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@ -666,7 +526,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;SrListBox.ZOrder" xml:space="preserve">
<value>7</value>
<value>5</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>

View File

@ -335,13 +335,6 @@ namespace XenAdmin.Dialogs
private void btnOK_Click(object sender, EventArgs e)
{
// Have any of the fields in the tab pages changed?
if (!HasChanged)
{
Close();
return;
}
if (!ValidToSave)
{
// Keep dialog open and allow user to correct the error as
@ -350,6 +343,13 @@ namespace XenAdmin.Dialogs
return;
}
// Have any of the fields in the tab pages changed?
if (!HasChanged)
{
Close();
return;
}
// Yes, save to the LocalXenObject.
List<AsyncAction> actions = SaveSettings();

View File

@ -31,24 +31,16 @@ namespace XenAdmin.SettingsPanels
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VDISizeLocationPage));
this.SizeLabel = new System.Windows.Forms.Label();
this.locationLabel = new System.Windows.Forms.Label();
this.sizeNUD = new System.Windows.Forms.NumericUpDown();
this.sizeValue = new System.Windows.Forms.Label();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.sizeValueROLabel = new System.Windows.Forms.Label();
this.labelLocationValueRO = new System.Windows.Forms.Label();
this.pictureBoxError = new System.Windows.Forms.PictureBox();
this.labelError = new System.Windows.Forms.Label();
this.panelShutDownHint = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.tableLayoutPanelInfo = new System.Windows.Forms.TableLayoutPanel();
this.labelShutDownWarning = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
((System.ComponentModel.ISupportInitialize)(this.sizeNUD)).BeginInit();
this.labelLocationValueRO = new System.Windows.Forms.Label();
this.diskSpinner1 = new XenAdmin.Controls.DiskSpinner();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxError)).BeginInit();
this.panelShutDownHint.SuspendLayout();
this.tableLayoutPanelInfo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.tableLayoutPanel2.SuspendLayout();
this.SuspendLayout();
//
// SizeLabel
@ -61,71 +53,30 @@ namespace XenAdmin.SettingsPanels
resources.ApplyResources(this.locationLabel, "locationLabel");
this.locationLabel.Name = "locationLabel";
//
// sizeNUD
//
this.sizeNUD.DecimalPlaces = 3;
resources.ApplyResources(this.sizeNUD, "sizeNUD");
this.sizeNUD.Increment = new decimal(new int[] {
5,
0,
0,
65536});
this.sizeNUD.Maximum = new decimal(new int[] {
-1,
1,
0,
0});
this.sizeNUD.Name = "sizeNUD";
this.sizeNUD.ValueChanged += new System.EventHandler(this.sizeNUD_ValueChanged);
//
// sizeValue
//
resources.ApplyResources(this.sizeValue, "sizeValue");
this.sizeValue.Name = "sizeValue";
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.sizeValue, 3, 0);
this.tableLayoutPanel1.Controls.Add(this.locationLabel, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.SizeLabel, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.sizeNUD, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.sizeValueROLabel, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.labelLocationValueRO, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.pictureBoxError, 4, 0);
this.tableLayoutPanel1.Controls.Add(this.labelError, 5, 0);
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.SizeLabel, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.locationLabel, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanelInfo, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.labelLocationValueRO, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.diskSpinner1, 1, 1);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// sizeValueROLabel
// label1
//
resources.ApplyResources(this.sizeValueROLabel, "sizeValueROLabel");
this.sizeValueROLabel.Name = "sizeValueROLabel";
resources.ApplyResources(this.label1, "label1");
this.tableLayoutPanel1.SetColumnSpan(this.label1, 2);
this.label1.Name = "label1";
//
// labelLocationValueRO
// tableLayoutPanelInfo
//
resources.ApplyResources(this.labelLocationValueRO, "labelLocationValueRO");
this.tableLayoutPanel1.SetColumnSpan(this.labelLocationValueRO, 5);
this.labelLocationValueRO.Name = "labelLocationValueRO";
//
// pictureBoxError
//
resources.ApplyResources(this.pictureBoxError, "pictureBoxError");
this.pictureBoxError.Image = global::XenAdmin.Properties.Resources._000_error_h32bit_16;
this.pictureBoxError.Name = "pictureBoxError";
this.pictureBoxError.TabStop = false;
//
// labelError
//
resources.ApplyResources(this.labelError, "labelError");
this.labelError.ForeColor = System.Drawing.Color.Red;
this.labelError.Name = "labelError";
//
// panelShutDownHint
//
this.panelShutDownHint.Controls.Add(this.labelShutDownWarning);
this.panelShutDownHint.Controls.Add(this.pictureBox1);
resources.ApplyResources(this.panelShutDownHint, "panelShutDownHint");
this.panelShutDownHint.Name = "panelShutDownHint";
resources.ApplyResources(this.tableLayoutPanelInfo, "tableLayoutPanelInfo");
this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanelInfo, 2);
this.tableLayoutPanelInfo.Controls.Add(this.labelShutDownWarning, 1, 0);
this.tableLayoutPanelInfo.Controls.Add(this.pictureBox1, 0, 0);
this.tableLayoutPanelInfo.Name = "tableLayoutPanelInfo";
//
// labelShutDownWarning
//
@ -134,21 +85,21 @@ namespace XenAdmin.SettingsPanels
//
// pictureBox1
//
this.pictureBox1.Image = global::XenAdmin.Properties.Resources._000_Info3_h32bit_16;
resources.ApplyResources(this.pictureBox1, "pictureBox1");
this.pictureBox1.Image = global::XenAdmin.Properties.Resources._000_Alert2_h32bit_16;
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.TabStop = false;
//
// label1
// labelLocationValueRO
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
resources.ApplyResources(this.labelLocationValueRO, "labelLocationValueRO");
this.labelLocationValueRO.Name = "labelLocationValueRO";
//
// tableLayoutPanel2
// diskSpinner1
//
resources.ApplyResources(this.tableLayoutPanel2, "tableLayoutPanel2");
this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
resources.ApplyResources(this.diskSpinner1, "diskSpinner1");
this.diskSpinner1.Name = "diskSpinner1";
this.diskSpinner1.SelectedSizeChanged += new System.Action(this.diskSpinner1_SelectedSizeChanged);
//
// VDISizeLocationPage
//
@ -156,20 +107,14 @@ namespace XenAdmin.SettingsPanels
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.Color.Transparent;
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.panelShutDownHint);
this.Controls.Add(this.tableLayoutPanel2);
this.DoubleBuffered = true;
this.Name = "VDISizeLocationPage";
((System.ComponentModel.ISupportInitialize)(this.sizeNUD)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxError)).EndInit();
this.panelShutDownHint.ResumeLayout(false);
this.tableLayoutPanelInfo.ResumeLayout(false);
this.tableLayoutPanelInfo.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.tableLayoutPanel2.ResumeLayout(false);
this.tableLayoutPanel2.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
@ -177,18 +122,12 @@ namespace XenAdmin.SettingsPanels
private System.Windows.Forms.Label SizeLabel;
private System.Windows.Forms.Label locationLabel;
private System.Windows.Forms.NumericUpDown sizeNUD;
private System.Windows.Forms.Label sizeValue;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label sizeValueROLabel;
private System.Windows.Forms.Panel panelShutDownHint;
private System.Windows.Forms.Label labelShutDownWarning;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label labelLocationValueRO;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
private System.Windows.Forms.PictureBox pictureBoxError;
private System.Windows.Forms.Label labelError;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelInfo;
private Controls.DiskSpinner diskSpinner1;
}
}

View File

@ -35,110 +35,53 @@ using System.Windows.Forms;
using XenAdmin.Actions;
using XenAPI;
namespace XenAdmin.SettingsPanels
{
public partial class VDISizeLocationPage : UserControl, IEditPage
{
private VDI vdi;
private readonly ToolTip InvalidParamToolTip;
private bool sizeChanged = false;
private bool _validToSave;
public VDISizeLocationPage()
{
InitializeComponent();
Text = Messages.SIZE_AND_LOCATION;
InvalidParamToolTip = new ToolTip();
InvalidParamToolTip.IsBalloon = true;
InvalidParamToolTip.ToolTipIcon = ToolTipIcon.Warning;
InvalidParamToolTip.ToolTipTitle = Messages.INVALID_PARAMETER;
sizeNUD.TextChanged += sizeNUD_ValueChanged;
}
public String SubText
{
get
{
return String.Format(Messages.SIZE_LOCATION_SUB,
sizeNUD.Visible ? Util.DiskSizeString((long)(sizeNUD.Value * 1073741824),2) : Util.DiskSizeString(vdi.virtual_size,2),
return string.Format(Messages.SIZE_LOCATION_SUB,
Util.DiskSizeString(diskSpinner1.CanResize ? diskSpinner1.SelectedSize : vdi.virtual_size, 2),
vdi.Connection.Resolve<SR>(vdi.SR));
}
}
public Image Image
{
get
{
return Properties.Resources._000_VirtualStorage_h32bit_16;
}
}
public Image Image => Properties.Resources._000_VirtualStorage_h32bit_16;
public bool ValidToSave
{
get { return IsDiskSizeValid; }
}
public bool ValidToSave => _validToSave;
public void SetXenObjects(IXenObject orig, IXenObject clone)
{
if (!(clone is VDI))
return;
vdi = clone as VDI;
Repopulate();
}
public void Repopulate()
{
if(vdi == null)
if (vdi == null)
return;
SR sr = vdi.Connection.Resolve<SR>(vdi.SR);
labelLocationValueRO.Text = string.Format("'{0}'", sr.NameWithoutHost());
if (vdi.allowed_operations.Contains(vdi_operations.resize) ||
vdi.allowed_operations.Contains(vdi_operations.resize_online))
{
sizeNUD.Value = ((ulong)vdi.virtual_size) / (decimal)Util.BINARY_GIGA;
sizeNUD.Minimum = sizeNUD.Value;
sizeNUD.Visible = true;
panelShutDownHint.Visible = false;
sizeValueROLabel.Text = "";
sizeValueROLabel.Visible = false;
}
else
{
sizeNUD.Visible = false;
sizeValueROLabel.Text = Util.DiskSizeString(vdi.virtual_size);
sizeValueROLabel.Visible = true;
diskSpinner1.Populate(vdi.virtual_size, vdi.virtual_size);
sizeValue.Visible = false;
panelShutDownHint.Visible = true;
}
var canResize = vdi.allowed_operations.Contains(vdi_operations.resize) ||
vdi.allowed_operations.Contains(vdi_operations.resize_online);
AnyTextChanged(null, null);
diskSpinner1.CanResize = canResize;
tableLayoutPanelInfo.Visible = !canResize;
}
public bool HasChanged
{
get
{
return sizeNUD.Visible && !CloseEnough(sizeNUD.Value, ((decimal) vdi.virtual_size) / Util.BINARY_GIGA);
}
}
/// <summary>
/// Make sure sizes are within 10MB
/// </summary>
/// <param name="value1">value in GB</param>
/// <param name="value2">value in GB</param>
/// <returns></returns>
private bool CloseEnough(decimal value1, decimal value2)
{
return (value1 - value2) < (decimal) 0.01;
}
public bool HasChanged => diskSpinner1.CanResize && diskSpinner1.SelectedSize - vdi.virtual_size > 10 * Util.BINARY_MEGA;
public void ShowLocalValidationMessages()
{
@ -146,15 +89,11 @@ namespace XenAdmin.SettingsPanels
public void Cleanup()
{
InvalidParamToolTip.Dispose();
sizeNUD.TextChanged -= sizeNUD_ValueChanged;
}
public AsyncAction SaveSettings()
{
decimal newSize = sizeNUD.Value;
if (!sizeChanged || CloseEnough(newSize, ((decimal)vdi.virtual_size) / Util.BINARY_GIGA))
if (!HasChanged)
return null;
if (vdi.allowed_operations.Contains(vdi_operations.resize))
@ -163,68 +102,53 @@ namespace XenAdmin.SettingsPanels
Messages.ACTION_CHANGE_DISK_SIZE,
string.Format(Messages.ACTION_CHANGING_DISK_SIZE_FOR, vdi),
string.Format(Messages.ACTION_CHANGED_DISK_SIZE_FOR, vdi),
delegate(Session session) { VDI.resize(session, vdi.opaque_ref, (long)(newSize * Util.BINARY_GIGA)); },
delegate(Session session) { VDI.resize(session, vdi.opaque_ref, diskSpinner1.SelectedSize); },
true,
"vdi.resize"
);
else
{
return new DelegatedAsyncAction(
vdi.Connection,
Messages.ACTION_CHANGE_DISK_SIZE,
string.Format(Messages.ACTION_CHANGING_DISK_SIZE_FOR, vdi),
string.Format(Messages.ACTION_CHANGED_DISK_SIZE_FOR, vdi),
delegate(Session session) { VDI.resize_online(session, vdi.opaque_ref, (long)(newSize * Util.BINARY_GIGA)); },
delegate(Session session) { VDI.resize_online(session, vdi.opaque_ref, diskSpinner1.SelectedSize); },
true,
"vdi.resize_online"
);
}
private void AnyTextChanged(object sender, EventArgs e)
{
}
private enum DiskSizeValidationResult { InvalidNumber, NotEnoughSpace, Valid }
private void sizeNUD_ValueChanged(object sender, EventArgs e)
{
sizeChanged = true;
DiskSizeValidationResult result = ValidateDiskSize();
pictureBoxError.Visible = labelError.Visible = result != DiskSizeValidationResult.Valid;
if (result == DiskSizeValidationResult.InvalidNumber)
labelError.Text = Messages.INVALID_NUMBER;
else if (result == DiskSizeValidationResult.NotEnoughSpace)
labelError.Text = Messages.DISK_TOO_BIG;
}
private DiskSizeValidationResult ValidateDiskSize()
{
if (sizeNUD.Text.Trim() == string.Empty)
return DiskSizeValidationResult.Valid;
decimal diskSize;
if (decimal.TryParse(sizeNUD.Text.Trim(), out diskSize))
{
long reqSize;
try
{
reqSize = (long)(Math.Round(diskSize) * Util.BINARY_GIGA);
}
catch (OverflowException)
{
reqSize = diskSize < 0 ? long.MinValue : long.MaxValue;
}
SR sr = vdi.Connection.Resolve<SR>(vdi.SR);
return sr != null && sr.VdiCreationCanProceed(reqSize - vdi.virtual_size)
? DiskSizeValidationResult.Valid
: DiskSizeValidationResult.NotEnoughSpace;
}
return DiskSizeValidationResult.InvalidNumber;
}
private bool IsDiskSizeValid
private void diskSpinner1_SelectedSizeChanged()
{
get { return ValidateDiskSize() == DiskSizeValidationResult.Valid; }
if (!diskSpinner1.IsSizeValid)
{
_validToSave = false;
return;
}
SR sr = vdi.Connection.Resolve(vdi.SR);
SM sm = sr == null ? null : sr.GetSM();
bool vdiSizeUnlimited = sm != null && Array.IndexOf(sm.capabilities, "LARGE_VDI") != -1;
if (!vdiSizeUnlimited && diskSpinner1.SelectedSize > SR.DISK_MAX_SIZE)
{
diskSpinner1.SetError(string.Format(Messages.DISK_TOO_BIG_MAX_SIZE, Util.DiskSizeString(SR.DISK_MAX_SIZE)));
_validToSave = false;
return;
}
bool isThinlyProvisioned = sm != null && Array.IndexOf(sm.capabilities, "THIN_PROVISIONING") != -1;
if (!isThinlyProvisioned && sr != null && diskSpinner1.SelectedSize - vdi.virtual_size > sr.FreeSpace())
{
diskSpinner1.SetError(Messages.DISK_TOO_BIG);
_validToSave = false;
return;
}
_validToSave = true;
diskSpinner1.SetError(null);
}
}
}

View File

@ -117,26 +117,23 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SizeLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SizeLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SizeLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="SizeLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="SizeLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="SizeLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 4, 0</value>
<value>3, 54</value>
</data>
<data name="SizeLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 30</value>
<value>30, 13</value>
</data>
<data name="SizeLabel.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -144,9 +141,6 @@
<data name="SizeLabel.Text" xml:space="preserve">
<value>&amp;Size:</value>
</data>
<data name="SizeLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;SizeLabel.Name" xml:space="preserve">
<value>SizeLabel</value>
</data>
@ -157,7 +151,10 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;SizeLabel.ZOrder" xml:space="preserve">
<value>2</value>
<value>1</value>
</data>
<data name="locationLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="locationLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -166,16 +163,16 @@
<value>NoControl</value>
</data>
<data name="locationLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 45</value>
<value>3, 85</value>
</data>
<data name="locationLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 15, 4, 0</value>
<value>3, 10, 3, 0</value>
</data>
<data name="locationLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 17</value>
<value>51, 13</value>
</data>
<data name="locationLabel.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
<value>5</value>
</data>
<data name="locationLabel.Text" xml:space="preserve">
<value>Location:</value>
@ -193,367 +190,10 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;locationLabel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="sizeNUD.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="sizeNUD.Location" type="System.Drawing.Point, System.Drawing">
<value>70, 4</value>
</data>
<data name="sizeNUD.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 4, 4, 4</value>
</data>
<data name="sizeNUD.Size" type="System.Drawing.Size, System.Drawing">
<value>201, 22</value>
</data>
<data name="sizeNUD.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="sizeNUD.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;sizeNUD.Name" xml:space="preserve">
<value>sizeNUD</value>
</data>
<data name="&gt;&gt;sizeNUD.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;sizeNUD.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;sizeNUD.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="sizeValue.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="sizeValue.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="sizeValue.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="sizeValue.Location" type="System.Drawing.Point, System.Drawing">
<value>279, 0</value>
</data>
<data name="sizeValue.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="sizeValue.Size" type="System.Drawing.Size, System.Drawing">
<value>28, 30</value>
</data>
<data name="sizeValue.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="sizeValue.Text" xml:space="preserve">
<value>GB</value>
</data>
<data name="sizeValue.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;sizeValue.Name" xml:space="preserve">
<value>sizeValue</value>
</data>
<data name="&gt;&gt;sizeValue.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;sizeValue.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;sizeValue.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="sizeValueROLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="sizeValueROLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="sizeValueROLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="sizeValueROLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>70, 0</value>
</data>
<data name="sizeValueROLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="sizeValueROLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>1, 30</value>
</data>
<data name="sizeValueROLabel.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="sizeValueROLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="sizeValueROLabel.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;sizeValueROLabel.Name" xml:space="preserve">
<value>sizeValueROLabel</value>
</data>
<data name="&gt;&gt;sizeValueROLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;sizeValueROLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;sizeValueROLabel.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="labelLocationValueRO.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelLocationValueRO.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="labelLocationValueRO.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelLocationValueRO.Location" type="System.Drawing.Point, System.Drawing">
<value>70, 45</value>
</data>
<data name="labelLocationValueRO.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 15, 4, 0</value>
</data>
<data name="labelLocationValueRO.Size" type="System.Drawing.Size, System.Drawing">
<value>624, 17</value>
</data>
<data name="labelLocationValueRO.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="labelLocationValueRO.Text" xml:space="preserve">
<value>SR name</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.Name" xml:space="preserve">
<value>labelLocationValueRO</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="pictureBoxError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="pictureBoxError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBoxError.Location" type="System.Drawing.Point, System.Drawing">
<value>315, 6</value>
</data>
<data name="pictureBoxError.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 6, 4, 4</value>
</data>
<data name="pictureBoxError.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBoxError.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pictureBoxError.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="pictureBoxError.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;pictureBoxError.Name" xml:space="preserve">
<value>pictureBoxError</value>
</data>
<data name="&gt;&gt;pictureBoxError.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBoxError.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;pictureBoxError.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="labelError.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelError.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="labelError.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelError.Location" type="System.Drawing.Point, System.Drawing">
<value>335, 6</value>
</data>
<data name="labelError.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 6, 4, 0</value>
</data>
<data name="labelError.Size" type="System.Drawing.Size, System.Drawing">
<value>326, 20</value>
</data>
<data name="labelError.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="labelError.Text" xml:space="preserve">
<value>There is not enough available space for this disk</value>
</data>
<data name="labelError.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;labelError.Name" xml:space="preserve">
<value>labelError</value>
</data>
<data name="&gt;&gt;labelError.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelError.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelError.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 94</value>
</data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>698, 371</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="sizeValue" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="locationLabel" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="SizeLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="sizeNUD" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="sizeValueROLabel" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="labelLocationValueRO" Row="1" RowSpan="1" Column="1" ColumnSpan="5" /&gt;&lt;Control Name="pictureBoxError" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="labelError" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Absolute,38,Absolute,62" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="labelShutDownWarning.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="labelShutDownWarning.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelShutDownWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 0</value>
</data>
<data name="labelShutDownWarning.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="labelShutDownWarning.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 0, 0, 0</value>
</data>
<data name="labelShutDownWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>678, 49</value>
</data>
<data name="labelShutDownWarning.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="labelShutDownWarning.Text" xml:space="preserve">
<value>The disk size cannot be altered as the disk is already being updated or is in use by a running VM.</value>
</data>
<data name="labelShutDownWarning.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.Name" xml:space="preserve">
<value>labelShutDownWarning</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.Parent" xml:space="preserve">
<value>panelShutDownHint</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
</data>
<data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="pictureBox1.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>20, 20</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>20, 49</value>
</data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>CenterImage</value>
</data>
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
<value>pictureBox1</value>
</data>
<data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>panelShutDownHint</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="panelShutDownHint.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="panelShutDownHint.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 45</value>
</data>
<data name="panelShutDownHint.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="panelShutDownHint.Size" type="System.Drawing.Size, System.Drawing">
<value>698, 49</value>
</data>
<data name="panelShutDownHint.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="panelShutDownHint.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;panelShutDownHint.Name" xml:space="preserve">
<value>panelShutDownHint</value>
</data>
<data name="&gt;&gt;panelShutDownHint.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panelShutDownHint.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;panelShutDownHint.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -562,16 +202,13 @@
<value>NoControl</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
<value>3, 0</value>
</data>
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="label1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 11</value>
<value>3, 0, 3, 20</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>698, 45</value>
<value>549, 26</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -586,61 +223,223 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
<data name="tableLayoutPanelInfo.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
<data name="tableLayoutPanelInfo.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>698, 45</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Name" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<data name="tableLayoutPanelInfo.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,50" /&gt;&lt;Rows Styles="Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</value>
<data name="labelShutDownWarning.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left, Right</value>
</data>
<data name="labelShutDownWarning.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelShutDownWarning.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelShutDownWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 4</value>
</data>
<data name="labelShutDownWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>524, 13</value>
</data>
<data name="labelShutDownWarning.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelShutDownWarning.Text" xml:space="preserve">
<value>The disk size cannot be altered as the disk is already being updated or is in use by a running VM.</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.Name" xml:space="preserve">
<value>labelShutDownWarning</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.Parent" xml:space="preserve">
<value>tableLayoutPanelInfo</value>
</data>
<data name="&gt;&gt;labelShutDownWarning.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="pictureBox1.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
<value>pictureBox1</value>
</data>
<data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>tableLayoutPanelInfo</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelInfo.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelInfo.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 118</value>
</data>
<data name="tableLayoutPanelInfo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 20, 3, 3</value>
</data>
<data name="tableLayoutPanelInfo.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>552, 22</value>
</data>
<data name="tableLayoutPanelInfo.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="&gt;&gt;tableLayoutPanelInfo.Name" xml:space="preserve">
<value>tableLayoutPanelInfo</value>
</data>
<data name="&gt;&gt;tableLayoutPanelInfo.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelInfo.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanelInfo.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tableLayoutPanelInfo.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="labelShutDownWarning" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pictureBox1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="labelLocationValueRO.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="labelLocationValueRO.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelLocationValueRO.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelLocationValueRO.Location" type="System.Drawing.Point, System.Drawing">
<value>60, 85</value>
</data>
<data name="labelLocationValueRO.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 10, 3, 0</value>
</data>
<data name="labelLocationValueRO.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 13</value>
</data>
<data name="labelLocationValueRO.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="labelLocationValueRO.Text" xml:space="preserve">
<value>SR name</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.Name" xml:space="preserve">
<value>labelLocationValueRO</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelLocationValueRO.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="diskSpinner1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="diskSpinner1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="diskSpinner1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="diskSpinner1.Location" type="System.Drawing.Point, System.Drawing">
<value>57, 46</value>
</data>
<data name="diskSpinner1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="diskSpinner1.Size" type="System.Drawing.Size, System.Drawing">
<value>501, 29</value>
</data>
<data name="diskSpinner1.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;diskSpinner1.Name" xml:space="preserve">
<value>diskSpinner1</value>
</data>
<data name="&gt;&gt;diskSpinner1.Type" xml:space="preserve">
<value>XenAdmin.Controls.DiskSpinner, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;diskSpinner1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;diskSpinner1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>558, 372</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="SizeLabel" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="locationLabel" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanelInfo" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="labelLocationValueRO" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="diskSpinner1" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>120, 120</value>
<value>96, 96</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>698, 465</value>
<value>558, 372</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>VDISizeLocationPage</value>

View File

@ -155,7 +155,7 @@ namespace XenAdmin.Wizards.NewVMWizard
private void AddButton_Click(object sender, EventArgs e)
{
using (var dialog = new NewDiskDialog(Connection, Template, SrPicker.SRPickerType.LunPerVDI, null, Affinity,
using (var dialog = new NewDiskDialog(Connection, Template, Affinity, SrPicker.SRPickerType.LunPerVDI, null,
true, 0, AddedVDIs) {DontCreateVDI = true})
{
if (dialog.ShowDialog() != DialogResult.OK)
@ -297,8 +297,8 @@ namespace XenAdmin.Wizards.NewVMWizard
DiskGridRowItem selectedItem = (DiskGridRowItem) DisksGridView.SelectedRows[0];
using (var dialog = new NewDiskDialog(Connection, Template, SrPicker.SRPickerType.LunPerVDI,
selectedItem.Disk, Affinity, selectedItem.CanResize, selectedItem.MinSize, AddedVDIs)
using (var dialog = new NewDiskDialog(Connection, Template, Affinity, SrPicker.SRPickerType.LunPerVDI,
selectedItem.Disk, selectedItem.CanResize, selectedItem.MinSize, AddedVDIs)
{DontCreateVDI = true})
{
if (dialog.ShowDialog(ParentForm) != DialogResult.OK)

View File

@ -177,6 +177,12 @@
<Compile Include="Controls\DateTimeMinutes15.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\DiskSpinner.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\DiskSpinner.Designer.cs">
<DependentUpon>DiskSpinner.cs</DependentUpon>
</Compile>
<Compile Include="Controls\TreeViews\FolderChangeDialogTreeView.cs">
<SubType>Component</SubType>
</Compile>
@ -1623,6 +1629,15 @@
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Controls\DiskSpinner.ja.resx">
<DependentUpon>DiskSpinner.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\DiskSpinner.resx">
<DependentUpon>DiskSpinner.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\DiskSpinner.zh-CN.resx">
<DependentUpon>DiskSpinner.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\PvsCacheStorageRow.ja.resx">
<DependentUpon>PvsCacheStorageRow.cs</DependentUpon>
</EmbeddedResource>

View File

@ -12581,7 +12581,16 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to Disk size needs to be at least {0} {1}.
/// Looks up a localized string similar to Disk size cannot be more than {0}..
/// </summary>
public static string DISK_TOO_BIG_MAX_SIZE {
get {
return ResourceManager.GetString("DISK_TOO_BIG_MAX_SIZE", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Disk size needs to be at least {0}..
/// </summary>
public static string DISK_TOO_SMALL {
get {
@ -37609,7 +37618,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to TiB.
/// Looks up a localized string similar to TB.
/// </summary>
public static string VAL_TERB {
get {
@ -37618,7 +37627,7 @@ namespace XenAdmin {
}
/// <summary>
/// Looks up a localized string similar to TiBps.
/// Looks up a localized string similar to TBps.
/// </summary>
public static string VAL_TERRATE {
get {

View File

@ -4473,8 +4473,11 @@ This will also delete its subfolders.</value>
<data name="DISK_TOO_BIG" xml:space="preserve">
<value>There is not enough available space for this disk</value>
</data>
<data name="DISK_TOO_BIG_MAX_SIZE" xml:space="preserve">
<value>Disk size cannot be more than {0}.</value>
</data>
<data name="DISK_TOO_SMALL" xml:space="preserve">
<value>Disk size needs to be at least {0} {1}</value>
<value>Disk size needs to be at least {0}.</value>
</data>
<data name="DISMISS_ALL_CONFIRM_BUTTON" xml:space="preserve">
<value>Dismiss &amp;all</value>
@ -13009,10 +13012,10 @@ To start a [XenServer] trial, click the button below.</value>
<value>s</value>
</data>
<data name="VAL_TERB" xml:space="preserve">
<value>TiB</value>
<value>TB</value>
</data>
<data name="VAL_TERRATE" xml:space="preserve">
<value>TiBps</value>
<value>TBps</value>
</data>
<data name="VAL_WATT" xml:space="preserve">
<value>W</value>

View File

@ -52,6 +52,7 @@ namespace XenAdmin
public const long BINARY_MEGA = BINARY_KILO * BINARY_KILO;
public const long BINARY_GIGA = BINARY_KILO * BINARY_MEGA;
public const long BINARY_TERA = BINARY_KILO * BINARY_GIGA;
public const long BINARY_PETA = BINARY_KILO * BINARY_TERA;
public const long DEC_KILO = 1000;
public const long DEC_MEGA = DEC_KILO * DEC_KILO;
@ -110,7 +111,7 @@ namespace XenAdmin
/// <returns></returns>
public static string MemorySizeStringSuitableUnits(double bytes, bool showPoint0Decimal, string formatStringWhenZero)
{
if(bytes == 0)
if (bytes == 0)
{
return string.Format(formatStringWhenZero, bytes);
}
@ -134,8 +135,7 @@ namespace XenAdmin
public static string DiskSizeString(ulong bytes)
{
string unit;
string value = ByteSizeString(bytes, 1, false, out unit);
string value = ByteSizeString(bytes, 1, false, out var unit);
return string.Format(Messages.VAL_FORMAT, value, unit);
}
@ -154,8 +154,7 @@ namespace XenAdmin
public static string DiskSizeStringWithoutUnits(long bytes)
{
string unit;
return ByteSizeString(bytes, 1, false, out unit);
return ByteSizeString(bytes, 1, false, out _);
}
public static string MemorySizeStringVariousUnits(double bytes)
@ -501,7 +500,7 @@ namespace XenAdmin
}
/// <summary>
/// Get the first node with name 'value' and returns its innerText. Used for gettings results of CGSL async actions.
/// Get the first node with name 'value' and returns its innerText. Used for getting results of CGSL async actions.
/// </summary>
/// <param name="xml">The XML.</param>
/// <returns>The contents of the first node with name 'value'.</returns>