void UpdateWsComboValue()
{
try
{
m_fUpdatingWsCombo = true;
int index = CurrentListIndex;
if (index < 0 || index >= m_choices.Count)
{
wsCombo.SelectedIndex = -1;
wsCombo.Enabled = false;
return;
}
InterlinLineSpec spec = m_choices[index];
ComboBox.ObjectCollection comboObjects = WsComboItems(spec.ComboContent);
object[] choices = new object[comboObjects.Count];
comboObjects.CopyTo(choices, 0);
wsCombo.Items.Clear();
wsCombo.Items.AddRange(choices);
int ws = spec.WritingSystem;
wsCombo.Enabled = true;
// JohnT: note that, because 'Default analysis' and 'Default Vernacular'
// come first, the corresponding actual writing systems will never be
// chosen by this algorithm.
foreach (WsComboItem item in wsCombo.Items)
{
if (getWsFromId(item.Id) == ws)
{
wsCombo.SelectedItem = item;
break;
}
}
}
finally
{
m_fUpdatingWsCombo = false;
}
}