public void refresh() { Program.AssertOnEventThread(); SR selectedSr = SR; bool selected = false; srListBox.BeginUpdate(); try { srListBox.ClearAllNodes(); foreach (SR sr in connection.Cache.SRs) { SrPickerItem item = itemFactory.PickerItem(sr, usage, affinity, GetRequiredDiskSizeForSR(sr), existingVDIs); if (item.Show) { srListBox.AddNode(item); } foreach (PBD pbd in sr.Connection.ResolveAll(sr.PBDs)) { if (pbd != null) { pbd.PropertyChanged -= Server_PropertyChanged; pbd.PropertyChanged += Server_PropertyChanged; } } sr.PropertyChanged -= Server_PropertyChanged; sr.PropertyChanged += Server_PropertyChanged; } } finally { srListBox.EndUpdate(); } if (selectedSr != null) { foreach (SrPickerItem node in srListBox.Items) { if (node.TheSR != null && node.TheSR.uuid == selectedSr.uuid) { srListBox.SelectedItem = node; onItemSelect(); selected = true; break; } } } if (!selected && srListBox.Items.Count > 0) {// If no selection made, select default SR if (!selectDefaultSR()) { // If no default SR, select first entry in list srListBox.SelectedIndex = 0; onItemSelect(); } } }
private void onItemSelect() { SrPickerItem item = srListBox.SelectedItem as SrPickerItem; if (item == null || !item.Enabled) { if (ItemSelectionNull != null) { ItemSelectionNull(); } return; } if (ItemSelectionNotNull != null) { ItemSelectionNotNull(); } if (!item.Enabled && LastSelectedItem != null && LastSelectedItem.TheSR.opaque_ref != item.TheSR.opaque_ref) { srListBox.SelectedItem = LastSelectedItem; } else if (!item.Enabled && LastSelectedItem != null && LastSelectedItem.TheSR.opaque_ref == item.TheSR.opaque_ref) { SrPickerItem first = srListBox.Items[0] as SrPickerItem; if (first != null && first.Enabled) { srListBox.SelectedItem = first; } else { srListBox.SelectedItem = null; } } else { LastSelectedItem = item; } }
private void onItemSelect() { SrPickerItem item = SelectedItem as SrPickerItem; if (item == null || !item.Enabled) { if (SrSelectionChanged != null) { SrSelectionChanged(null); } return; } if (SrSelectionChanged != null) { SrSelectionChanged(item); } if (!item.Enabled && LastSelectedItem != null && LastSelectedItem.TheSR.opaque_ref != item.TheSR.opaque_ref) { SelectedItem = LastSelectedItem; } else if (!item.Enabled && LastSelectedItem != null && LastSelectedItem.TheSR.opaque_ref == item.TheSR.opaque_ref) { SrPickerItem first = Items[0] as SrPickerItem; if (first != null && first.Enabled) { SelectedItem = first; } else { SelectedItem = null; } } else { LastSelectedItem = item; } }