Merge pull request #1111 from MihaelaStoica/CA-210549

CA-210551: Non-modal action progress bar on the Pre-Checks page of th…
This commit is contained in:
Gabor Apati-Nagy 2016-08-16 16:08:54 +01:00 committed by GitHub
commit 3fc9c3edb6
5 changed files with 384 additions and 239 deletions

View File

@ -41,19 +41,21 @@ namespace XenAdmin.Wizards.PatchingWizard
this.buttonReCheckProblems = new System.Windows.Forms.Button();
this.buttonResolveAll = new System.Windows.Forms.Button();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.panelErrorsFound = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.labelIssues = new System.Windows.Forms.Label();
this.pictureBoxIssues = new System.Windows.Forms.PictureBox();
this.checkBoxViewPrecheckFailuresOnly = new System.Windows.Forms.CheckBox();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.labelProgress = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.panelErrorsFound.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxIssues)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// labelPrechecksFirstLine
//
resources.ApplyResources(this.labelPrechecksFirstLine, "labelPrechecksFirstLine");
this.labelPrechecksFirstLine.AutoEllipsis = true;
this.tableLayoutPanel1.SetColumnSpan(this.labelPrechecksFirstLine, 4);
this.labelPrechecksFirstLine.Name = "labelPrechecksFirstLine";
//
// dataGridView1
@ -68,6 +70,7 @@ namespace XenAdmin.Wizards.PatchingWizard
this.ColumnState,
this.ColumnDescription,
this.ColumnSolution});
this.tableLayoutPanel1.SetColumnSpan(this.dataGridView1, 4);
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -79,9 +82,9 @@ namespace XenAdmin.Wizards.PatchingWizard
this.dataGridView1.HideSelection = true;
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect;
this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);
this.dataGridView1.CellMouseMove += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dataGridView1_CellMouseMove);
this.dataGridView1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.dataGridView1_KeyPress);
this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);
//
// ColumnState
//
@ -124,52 +127,63 @@ namespace XenAdmin.Wizards.PatchingWizard
//
// progressBar1
//
this.tableLayoutPanel1.SetColumnSpan(this.progressBar1, 4);
resources.ApplyResources(this.progressBar1, "progressBar1");
this.progressBar1.Name = "progressBar1";
//
// panelErrorsFound
// labelIssues
//
resources.ApplyResources(this.panelErrorsFound, "panelErrorsFound");
this.panelErrorsFound.Controls.Add(this.label1);
this.panelErrorsFound.Controls.Add(this.pictureBox1);
this.panelErrorsFound.Name = "panelErrorsFound";
this.labelIssues.AutoEllipsis = true;
this.tableLayoutPanel1.SetColumnSpan(this.labelIssues, 3);
resources.ApplyResources(this.labelIssues, "labelIssues");
this.labelIssues.Name = "labelIssues";
//
// label1
// pictureBoxIssues
//
resources.ApplyResources(this.label1, "label1");
this.label1.AutoEllipsis = true;
this.label1.Name = "label1";
//
// pictureBox1
//
resources.ApplyResources(this.pictureBox1, "pictureBox1");
this.pictureBox1.Image = global::XenAdmin.Properties.Resources._000_Abort_h32bit_16;
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.TabStop = false;
this.pictureBoxIssues.Image = global::XenAdmin.Properties.Resources._000_Abort_h32bit_16;
resources.ApplyResources(this.pictureBoxIssues, "pictureBoxIssues");
this.pictureBoxIssues.Name = "pictureBoxIssues";
this.pictureBoxIssues.TabStop = false;
//
// checkBoxViewPrecheckFailuresOnly
//
resources.ApplyResources(this.checkBoxViewPrecheckFailuresOnly, "checkBoxViewPrecheckFailuresOnly");
this.tableLayoutPanel1.SetColumnSpan(this.checkBoxViewPrecheckFailuresOnly, 2);
this.checkBoxViewPrecheckFailuresOnly.Name = "checkBoxViewPrecheckFailuresOnly";
this.checkBoxViewPrecheckFailuresOnly.UseVisualStyleBackColor = true;
this.checkBoxViewPrecheckFailuresOnly.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.labelPrechecksFirstLine, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.dataGridView1, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.labelProgress, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.buttonResolveAll, 3, 2);
this.tableLayoutPanel1.Controls.Add(this.checkBoxViewPrecheckFailuresOnly, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.buttonReCheckProblems, 2, 2);
this.tableLayoutPanel1.Controls.Add(this.pictureBoxIssues, 0, 4);
this.tableLayoutPanel1.Controls.Add(this.progressBar1, 0, 5);
this.tableLayoutPanel1.Controls.Add(this.labelIssues, 1, 4);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// labelProgress
//
this.labelProgress.AutoEllipsis = true;
this.tableLayoutPanel1.SetColumnSpan(this.labelProgress, 4);
resources.ApplyResources(this.labelProgress, "labelProgress");
this.labelProgress.Name = "labelProgress";
//
// PatchingWizard_PrecheckPage
//
this.Controls.Add(this.checkBoxViewPrecheckFailuresOnly);
this.Controls.Add(this.panelErrorsFound);
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.buttonResolveAll);
this.Controls.Add(this.buttonReCheckProblems);
this.Controls.Add(this.dataGridView1);
this.Controls.Add(this.labelPrechecksFirstLine);
this.Controls.Add(this.tableLayoutPanel1);
resources.ApplyResources(this, "$this");
this.Name = "PatchingWizard_PrecheckPage";
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.panelErrorsFound.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxIssues)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
@ -180,13 +194,14 @@ namespace XenAdmin.Wizards.PatchingWizard
private System.Windows.Forms.Button buttonReCheckProblems;
private System.Windows.Forms.Button buttonResolveAll;
private System.Windows.Forms.ProgressBar progressBar1;
private System.Windows.Forms.Panel panelErrorsFound;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label labelIssues;
private System.Windows.Forms.PictureBox pictureBoxIssues;
private System.Windows.Forms.CheckBox checkBoxViewPrecheckFailuresOnly;
private System.Windows.Forms.DataGridViewImageColumn ColumnState;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnDescription;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnSolution;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label labelProgress;
}
}

View File

@ -55,6 +55,7 @@ namespace XenAdmin.Wizards.PatchingWizard
private BackgroundWorker _worker = null;
public List<Host> SelectedServers = new List<Host>();
public List<Problem> ProblemsResolvedPreCheck = new List<Problem>();
private AsyncAction resolvePrechecksAction = null;
protected List<Pool> SelectedPools
{
@ -94,7 +95,7 @@ namespace XenAdmin.Wizards.PatchingWizard
public override bool EnablePrevious()
{
return _worker != null && !_worker.IsBusy;
return _worker != null && !_worker.IsBusy && (resolvePrechecksAction == null || resolvePrechecksAction.IsCompleted);
}
void Connection_ConnectionStateChanged(object sender, EventArgs e)
@ -141,7 +142,7 @@ namespace XenAdmin.Wizards.PatchingWizard
protected void RefreshRechecks()
{
buttonResolveAll.Enabled = buttonReCheckProblems.Enabled = false;
buttonResolveAll.Enabled = buttonReCheckProblems.Enabled = checkBoxViewPrecheckFailuresOnly.Enabled = false;
_worker = null;
_worker = new BackgroundWorker();
_worker.DoWork += new DoWorkEventHandler(worker_DoWork);
@ -157,6 +158,7 @@ namespace XenAdmin.Wizards.PatchingWizard
if (!e.Cancelled)
OnPageUpdated();
progressBar1.Value = 100;
labelProgress.Text = string.Empty;
bool showResolveAllButton = false;
foreach (PreCheckGridRow row in dataGridView1.Rows)
@ -179,7 +181,7 @@ namespace XenAdmin.Wizards.PatchingWizard
}
buttonResolveAll.Enabled = showResolveAllButton;
buttonReCheckProblems.Enabled = true;
buttonReCheckProblems.Enabled = checkBoxViewPrecheckFailuresOnly.Enabled = true;
}
private void AddRowToGridView(DataGridViewRow row)
@ -259,6 +261,7 @@ namespace XenAdmin.Wizards.PatchingWizard
{
dataGridView1.Rows.Clear();
progressBar1.Value = 0;
labelProgress.Text = Messages.PATCHING_WIZARD_RUNNING_PRECHECKS;
});
Pool_patch patch = e.Argument as Pool_patch;
@ -373,6 +376,8 @@ namespace XenAdmin.Wizards.PatchingWizard
DeregisterEventHandlers();
if (_worker != null)
_worker.CancelAsync();
if (resolvePrechecksAction != null && !resolvePrechecksAction.IsCompleted)
resolvePrechecksAction.Cancel();
}
public override void PageLeave(PageLoadedDirection direction, ref bool cancel)
@ -401,8 +406,8 @@ namespace XenAdmin.Wizards.PatchingWizard
}
bool result = _worker != null && !_worker.IsBusy && !problemsFound;
panelErrorsFound.Visible = problemsFound;
bool result = _worker != null && !_worker.IsBusy && !problemsFound && (resolvePrechecksAction == null || resolvePrechecksAction.IsCompleted);
UpdateControls(problemsFound);
return result;
}
@ -412,7 +417,7 @@ namespace XenAdmin.Wizards.PatchingWizard
internal enum PreCheckResult { OK, Warning, Failed }
private abstract class PreCheckGridRow : DataGridViewRow
private abstract class PreCheckGridRow : XenAdmin.Controls.DataGridViewEx.DataGridViewExRow
{
protected DataGridViewImageCell _iconCell = new DataGridViewImageCell();
protected DataGridViewTextBoxCell _descriptionCell = new DataGridViewTextBoxCell();
@ -500,8 +505,20 @@ namespace XenAdmin.Wizards.PatchingWizard
if (Problem is ProblemWithInformationUrl)
_solutionCell.Value = (Problem as ProblemWithInformationUrl).LinkText;
_solutionCell.Style.Font = new Font(Program.DefaultFont, FontStyle.Underline);
_solutionCell.Style.ForeColor = Color.Blue;
UpdateSolutionCellStyle();
}
private void UpdateSolutionCellStyle()
{
if (_solutionCell == null)
return;
if (Enabled)
{
_solutionCell.Style.Font = new Font(Program.DefaultFont, FontStyle.Underline);
_solutionCell.Style.ForeColor = Color.Blue;
}
else
_solutionCell.Style = DefaultCellStyle;
}
public Problem Problem
@ -535,14 +552,24 @@ namespace XenAdmin.Wizards.PatchingWizard
return (_problem != null ? _problem.GetHashCode() : 0);
}
public override bool Enabled
{
get
{
return base.Enabled;
}
set
{
base.Enabled = value;
UpdateSolutionCellStyle();
}
}
}
private ActionProgressDialog _progressDialog = null;
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
PreCheckHostRow preCheckHostRow = dataGridView1.Rows[e.RowIndex] as PreCheckHostRow;
if (preCheckHostRow != null && e.ColumnIndex == 2)
if (preCheckHostRow != null && preCheckHostRow.Enabled && e.ColumnIndex == 2)
{
ExecuteSolution(preCheckHostRow);
}
@ -555,7 +582,7 @@ namespace XenAdmin.Wizards.PatchingWizard
PreCheckHostRow preCheckHostRow = dataGridView1.CurrentCell.OwningRow as PreCheckHostRow;
int columnIndex = dataGridView1.CurrentCell.ColumnIndex;
if (preCheckHostRow != null && columnIndex == 2)
if (preCheckHostRow != null && preCheckHostRow.Enabled && columnIndex == 2)
ExecuteSolution(preCheckHostRow);
}
}
@ -563,13 +590,20 @@ namespace XenAdmin.Wizards.PatchingWizard
private void ExecuteSolution(PreCheckHostRow preCheckHostRow)
{
bool cancelled;
AsyncAction action = preCheckHostRow.Problem.SolveImmediately(out cancelled);
resolvePrechecksAction = preCheckHostRow.Problem.SolveImmediately(out cancelled);
if (action != null)
if (resolvePrechecksAction != null)
{
action.Completed += action_Completed;
_progressDialog = new ActionProgressDialog(action, ProgressBarStyle.Blocks);
_progressDialog.ShowDialog(this);
// disable all problems
foreach (DataGridViewRow row in dataGridView1.Rows)
{
PreCheckHostRow preCheckRow = row as PreCheckHostRow;
if (preCheckRow != null && preCheckRow.Problem != null)
{
preCheckRow.Enabled = false;
}
}
StartResolvePrechecksAction();
}
else
{
@ -588,13 +622,6 @@ namespace XenAdmin.Wizards.PatchingWizard
}
}
private void action_Completed(ActionBase sender)
{
Thread.Sleep(1000);
Program.Invoke(Program.MainWindow, RefreshRechecks);
}
private void buttonReCheckProblems_Click(object sender, EventArgs e)
{
RefreshRechecks();
@ -610,17 +637,68 @@ namespace XenAdmin.Wizards.PatchingWizard
{
bool cancelled;
AsyncAction action = preCheckHostRow.Problem.SolveImmediately(out cancelled);
if (action != null)
{
preCheckHostRow.Enabled = false;
actions.Add(action);
}
}
}
var multipleAction = new ParallelAction(Messages.PATCHINGWIZARD_PRECHECKPAGE_RESOLVING_ALL, Messages.PATCHINGWIZARD_PRECHECKPAGE_RESOLVING_ALL, Messages.COMPLETED, actions, true, false);
_progressDialog = new ActionProgressDialog(multipleAction, ProgressBarStyle.Blocks);
_progressDialog.ShowDialog(this);
Program.Invoke(Program.MainWindow, RefreshRechecks);
resolvePrechecksAction = new ParallelAction(Messages.PATCHINGWIZARD_PRECHECKPAGE_RESOLVING_ALL, Messages.PATCHINGWIZARD_PRECHECKPAGE_RESOLVING_ALL, Messages.COMPLETED, actions, true, false);
StartResolvePrechecksAction();
}
private void resolvePrecheckAction_Changed(object sender)
{
var action = sender as AsyncAction;
if (action == null)
return;
Program.Invoke(this, () => UpdateActionProgress(action));
}
private void resolvePrecheckAction_Completed(object sender)
{
var action = sender as AsyncAction;
if (action == null)
return;
action.Changed -= resolvePrecheckAction_Changed;
action.Completed -= resolvePrecheckAction_Completed;
Program.Invoke(this, () =>
{
UpdateControls();
RefreshRechecks();
});
}
private void StartResolvePrechecksAction()
{
if (resolvePrechecksAction == null)
return;
resolvePrechecksAction.Changed += resolvePrecheckAction_Changed;
resolvePrechecksAction.Completed += resolvePrecheckAction_Completed;
resolvePrechecksAction.RunAsync();
UpdateActionProgress(resolvePrechecksAction);
UpdateControls();
OnPageUpdated();
}
private void UpdateActionProgress(AsyncAction action)
{
progressBar1.Value = action == null ? 0 : action.PercentComplete;
labelProgress.Text = action == null ? string.Empty : action.Description;
}
private void UpdateControls(bool problemsFound = false)
{
bool actionInProgress = resolvePrechecksAction != null && !resolvePrechecksAction.IsCompleted;
buttonResolveAll.Enabled = buttonReCheckProblems.Enabled = checkBoxViewPrecheckFailuresOnly.Enabled = !actionInProgress;
labelProgress.Visible = actionInProgress || !problemsFound;
pictureBoxIssues.Visible = labelIssues.Visible = problemsFound && !actionInProgress;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
RefreshRechecks();
@ -629,10 +707,8 @@ namespace XenAdmin.Wizards.PatchingWizard
private void dataGridView1_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
PreCheckHostRow preCheckHostRow = dataGridView1.Rows[e.RowIndex] as PreCheckHostRow;
if (preCheckHostRow != null && e.ColumnIndex == 2 && !string.IsNullOrEmpty(preCheckHostRow.Solution))
{
if (preCheckHostRow != null && preCheckHostRow.Enabled && e.ColumnIndex == 2 && !string.IsNullOrEmpty(preCheckHostRow.Solution))
Cursor = Cursors.Hand;
}
else
Cursor = Cursors.Arrow;
}

View File

@ -112,45 +112,23 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="labelPrechecksFirstLine.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelPrechecksFirstLine.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="labelPrechecksFirstLine.Size" type="System.Drawing.Size, System.Drawing">
<value>558, 31</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="labelPrechecksFirstLine.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelPrechecksFirstLine.Text" xml:space="preserve">
<value>Update pre-checks are performed to verify that the update "{0}" can be applied to the servers.</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.Name" xml:space="preserve">
<value>labelPrechecksFirstLine</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.ZOrder" xml:space="preserve">
<value>6</value>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="dataGridView1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<metadata name="ColumnState.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="ColumnState.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnState.HeaderText" xml:space="preserve">
@ -162,13 +140,13 @@
<data name="ColumnState.Width" type="System.Int32, mscorlib">
<value>20</value>
</data>
<metadata name="ColumnDescription.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="ColumnDescription.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnDescription.HeaderText" xml:space="preserve">
<value />
</data>
<metadata name="ColumnSolution.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="ColumnSolution.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnSolution.HeaderText" xml:space="preserve">
@ -180,11 +158,12 @@
<data name="ColumnSolution.Width" type="System.Int32, mscorlib">
<value>80</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="dataGridView1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 63</value>
<value>3, 34</value>
</data>
<data name="dataGridView1.Size" type="System.Drawing.Size, System.Drawing">
<value>561, 269</value>
<value>564, 268</value>
</data>
<data name="dataGridView1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -196,43 +175,49 @@
<value>XenAdmin.Controls.DataGridViewEx.DataGridViewEx, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;dataGridView1.Parent" xml:space="preserve">
<value>$this</value>
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;dataGridView1.ZOrder" xml:space="preserve">
<value>5</value>
<value>1</value>
</data>
<data name="buttonReCheckProblems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
<data name="labelProgress.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="buttonReCheckProblems.Location" type="System.Drawing.Point, System.Drawing">
<value>382, 338</value>
<data name="labelProgress.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonReCheckProblems.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
<data name="labelProgress.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 334</value>
</data>
<data name="buttonReCheckProblems.TabIndex" type="System.Int32, mscorlib">
<data name="labelProgress.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="labelProgress.Size" type="System.Drawing.Size, System.Drawing">
<value>570, 22</value>
</data>
<data name="labelProgress.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="buttonReCheckProblems.Text" xml:space="preserve">
<value>&amp;Check Again</value>
<data name="labelProgress.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.Name" xml:space="preserve">
<value>buttonReCheckProblems</value>
<data name="&gt;&gt;labelProgress.Name" xml:space="preserve">
<value>labelProgress</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;labelProgress.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;buttonReCheckProblems.Parent" xml:space="preserve">
<value>$this</value>
<data name="&gt;&gt;labelProgress.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.ZOrder" xml:space="preserve">
<value>4</value>
<data name="&gt;&gt;labelProgress.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="buttonResolveAll.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="buttonResolveAll.Location" type="System.Drawing.Point, System.Drawing">
<value>473, 338</value>
<value>482, 308</value>
</data>
<data name="buttonResolveAll.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
@ -247,122 +232,14 @@
<value>buttonResolveAll</value>
</data>
<data name="&gt;&gt;buttonResolveAll.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonResolveAll.Parent" xml:space="preserve">
<value>$this</value>
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;buttonResolveAll.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="progressBar1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="progressBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 34</value>
</data>
<data name="progressBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>561, 23</value>
</data>
<data name="progressBar1.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;progressBar1.Name" xml:space="preserve">
<value>progressBar1</value>
</data>
<data name="&gt;&gt;progressBar1.Type" xml:space="preserve">
<value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;progressBar1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;progressBar1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="panelErrorsFound.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 0</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>364, 23</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>You need to resolve the issues found before you can continue.</value>
</data>
<data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>panelErrorsFound</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pictureBox1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 0, 0</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>25, 23</value>
</data>
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>1</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>panelErrorsFound</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="panelErrorsFound.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 361</value>
</data>
<data name="panelErrorsFound.Size" type="System.Drawing.Size, System.Drawing">
<value>389, 23</value>
</data>
<data name="panelErrorsFound.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="panelErrorsFound.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;panelErrorsFound.Name" xml:space="preserve">
<value>panelErrorsFound</value>
</data>
<data name="&gt;&gt;panelErrorsFound.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panelErrorsFound.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;panelErrorsFound.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="checkBoxViewPrecheckFailuresOnly.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
@ -370,7 +247,7 @@
<value>True</value>
</data>
<data name="checkBoxViewPrecheckFailuresOnly.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 342</value>
<value>3, 314</value>
</data>
<data name="checkBoxViewPrecheckFailuresOnly.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 17</value>
@ -385,40 +262,205 @@
<value>checkBoxViewPrecheckFailuresOnly</value>
</data>
<data name="&gt;&gt;checkBoxViewPrecheckFailuresOnly.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;checkBoxViewPrecheckFailuresOnly.Parent" xml:space="preserve">
<value>$this</value>
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;checkBoxViewPrecheckFailuresOnly.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="buttonReCheckProblems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="buttonReCheckProblems.Location" type="System.Drawing.Point, System.Drawing">
<value>391, 308</value>
</data>
<data name="buttonReCheckProblems.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="buttonReCheckProblems.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="buttonReCheckProblems.Text" xml:space="preserve">
<value>&amp;Check Again</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.Name" xml:space="preserve">
<value>buttonReCheckProblems</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;buttonReCheckProblems.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="pictureBoxIssues.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 359</value>
</data>
<data name="pictureBoxIssues.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="pictureBoxIssues.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pictureBoxIssues.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;pictureBoxIssues.Name" xml:space="preserve">
<value>pictureBoxIssues</value>
</data>
<data name="&gt;&gt;pictureBoxIssues.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;pictureBoxIssues.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;pictureBoxIssues.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="progressBar1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="progressBar1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="progressBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 381</value>
</data>
<data name="progressBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>564, 16</value>
</data>
<data name="progressBar1.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;progressBar1.Name" xml:space="preserve">
<value>progressBar1</value>
</data>
<data name="&gt;&gt;progressBar1.Type" xml:space="preserve">
<value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;progressBar1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;progressBar1.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="labelIssues.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="labelIssues.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 356</value>
</data>
<data name="labelIssues.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="labelIssues.Size" type="System.Drawing.Size, System.Drawing">
<value>548, 22</value>
</data>
<data name="labelIssues.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<data name="labelIssues.Text" xml:space="preserve">
<value>You need to resolve the issues found before you can continue.</value>
</data>
<data name="labelIssues.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;labelIssues.Name" xml:space="preserve">
<value>labelIssues</value>
</data>
<data name="&gt;&gt;labelIssues.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;labelIssues.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelIssues.ZOrder" xml:space="preserve">
<value>8</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>6</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>570, 400</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>7</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="labelPrechecksFirstLine" Row="0" RowSpan="1" Column="0" ColumnSpan="4" /&gt;&lt;Control Name="dataGridView1" Row="1" RowSpan="1" Column="0" ColumnSpan="4" /&gt;&lt;Control Name="labelProgress" Row="3" RowSpan="1" Column="0" ColumnSpan="4" /&gt;&lt;Control Name="buttonResolveAll" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="checkBoxViewPrecheckFailuresOnly" Row="2" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="buttonReCheckProblems" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="pictureBoxIssues" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="progressBar1" Row="5" RowSpan="1" Column="0" ColumnSpan="4" /&gt;&lt;Control Name="labelIssues" 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,Percent,100,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="labelPrechecksFirstLine.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 0</value>
</data>
<data name="labelPrechecksFirstLine.Size" type="System.Drawing.Size, System.Drawing">
<value>564, 31</value>
</data>
<data name="labelPrechecksFirstLine.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelPrechecksFirstLine.Text" xml:space="preserve">
<value>Update pre-checks are performed to verify that the update "{0}" can be applied to the servers.</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.Name" xml:space="preserve">
<value>labelPrechecksFirstLine</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.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;labelPrechecksFirstLine.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelPrechecksFirstLine.ZOrder" xml:space="preserve">
<value>0</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.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>561, 384</value>
<value>570, 400</value>
</data>
<data name="&gt;&gt;ColumnState.Name" xml:space="preserve">
<value>ColumnState</value>
</data>
<data name="&gt;&gt;ColumnState.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewImageColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewImageColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnDescription.Name" xml:space="preserve">
<value>ColumnDescription</value>
</data>
<data name="&gt;&gt;ColumnDescription.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnSolution.Name" xml:space="preserve">
<value>ColumnSolution</value>
</data>
<data name="&gt;&gt;ColumnSolution.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>PatchingWizard_PrecheckPage</value>

View File

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
// Runtime Version:4.0.30319.34209
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -25713,6 +25713,15 @@ namespace XenAdmin {
}
}
/// <summary>
/// Looks up a localized string similar to Running prechecks....
/// </summary>
public static string PATCHING_WIZARD_RUNNING_PRECHECKS {
get {
return ResourceManager.GetString("PATCHING_WIZARD_RUNNING_PRECHECKS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Unable to resolve this issue:\n{0}\n\nPlease resolve this issue manually and then click Check Again.
///.

View File

@ -9080,6 +9080,9 @@ Please wait for this operation to complete, then click Next to continue with the
<data name="PATCHING_WIZARD_PRECHECK_STATUS" xml:space="preserve">
<value>{0} ...</value>
</data>
<data name="PATCHING_WIZARD_RUNNING_PRECHECKS" xml:space="preserve">
<value>Running prechecks...</value>
</data>
<data name="PATCHING_WIZARD_SOLVE_MANUALLY" xml:space="preserve">
<value>Unable to resolve this issue:\n{0}\n\nPlease resolve this issue manually and then click Check Again.
</value>