Procedure numbers displayed in procedureComboBox in MainWnd.

This commit is contained in:
Milan Hanajik 2018-02-15 13:50:41 +01:00
parent bb3688bf7a
commit 8deb18fe9c
3 changed files with 45 additions and 29 deletions

View File

@ -79,7 +79,8 @@ namespace TBF.Forms
if (batch.BatchNr == data.BatchNr)
{
TBF.UiBridge.Bridge.BatchNr = batch.BatchNr;
Program.MainWnd.UpdateProcedure(batch.ProcedureName);
Program.MainWnd.ReloadProcedures(batch.ProcedureName);
TBF.UiBridge.Bridge.Ui2Bench(TBF.UiBridge.UI2BenchCmd.ReloadBatch);
break;
}

View File

@ -50,6 +50,7 @@ namespace TBF
/// </summary>
[XmlElementAttribute("LastProcedure")]
public string LastProcedureName;
public int LastProcedureNr;
public int BatchNr;
public double RealDensity; /// water density [kg/m3]

View File

@ -254,7 +254,7 @@ namespace TBF
}
}
procedureComboBox.Text = Program.LocalSettings.LastProcedureName;
procedureComboBox.Text = string.Format("{0} {1}", Program.LocalSettings.LastProcedureNr, Program.LocalSettings.LastProcedureName);
ProcedureName = Program.LocalSettings.LastProcedureName;
rightHorizSplitContainer.SplitterDistance = Program.LocalSettings.RightPaneHorizSplitterDistance;
topVerticalSplitContainer.SplitterDistance = Program.LocalSettings.TopPaneVerticalSplitterDistance;
@ -441,35 +441,46 @@ namespace TBF
/// Read the database and re-initialize procedureComboBox items.
/// Try to preserve the original selection.
/// </summary>
public void ReloadProcedures()
public void ReloadProcedures()
{
ReloadProcedures(procedureComboBox.Text.Substring(procedureComboBox.Text.IndexOf(" ") + 2));
}
public void ReloadProcedures(string procedureNameToSelect)
{
if (procedureComboBox.Enabled)
{
string oriProcName = procedureComboBox.Text;
IList<Procedure> procedures = Config.FluentCommon.CreateSession(Users.Entities.DBKind.Config)
.QueryOver<Procedure>()
.Where(x => (x.ProcedureState == ProcedureState.Active))
.OrderBy(x => x.ItemNr).Asc
.List();
.QueryOver<Procedure>()
.Where(x => (x.ProcedureState == ProcedureState.Active))
.OrderBy(x => x.ItemNr).Asc
.List();
bool procedureSet = false;
procedureComboBox.Items.Clear();
foreach (var proc in procedures) procedureComboBox.Items.Add(proc.Name);
foreach (var proc in procedures)
{
string itemText = string.Format("{0} {1}", proc.ItemNr + 1, proc.Name);
procedureComboBox.Items.Add(itemText);
if (procedureNameToSelect == proc.Name)
{
procedureComboBox.Text = itemText;
ProcedureName = procedureNameToSelect;
procedureSet = true;
}
}
if (procedureComboBox.Items.Contains(oriProcName))
if (!procedureSet)
{
procedureComboBox.Text = oriProcName;
ProcedureName = oriProcName;
}
else if (procedures.Count > 0)
{
procedureComboBox.Text = procedures[0].Name;
ProcedureName = procedures[0].Name;
}
else
{
procedureComboBox.Text = string.Empty;
ProcedureName = null;
if (procedures.Count > 0)
{
procedureComboBox.Text = string.Format("{0} {1}", procedures[0].ItemNr + 1, procedures[0].Name);
ProcedureName = procedures[0].Name;
}
else
{
procedureComboBox.Text = string.Empty;
ProcedureName = null;
}
}
ProceduresUpdated = false;
@ -484,12 +495,14 @@ namespace TBF
private void procedureComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
UpdateProcedure(procedureComboBox.Text);
int ix = procedureComboBox.Text.IndexOf(" ");
int procNr = int.Parse(procedureComboBox.Text.Substring(0, ix));
string procName = procedureComboBox.Text.Substring(ix + 2);
UpdateProcedure(procNr, procName);
}
public void UpdateProcedure(string procedureName)
public void UpdateProcedure(int procedureNr, string procedureName)
{
procedureComboBox.Text = procedureName;
ProcedureName = procedureName;
BenchControlPanel.ReloadTests();
if (CurrentProcedure != null && CurrentProcedure.Description != null)
@ -500,9 +513,10 @@ namespace TBF
{
testProgressControls.ProcedureSelectedInUI(this, new UiBridge.ProcedureSelectedEventArgs(CurrentProcedure));
}
if (!string.IsNullOrEmpty(ProcedureName))
if (!string.IsNullOrEmpty(procedureName))
{
Program.LocalSettings.LastProcedureName = ProcedureName;
Program.LocalSettings.LastProcedureName = procedureName;
Program.LocalSettings.LastProcedureNr = procedureNr;
Program.LocalSettings.Save();
}
}