private static void ClearSelectedItems(SelectionItem exceptSelectionItem) { Adapter parent = exceptSelectionItem.ParentSelectionContainer; if (parent == null) { return; } List <SelectionItem> selectedItems = null; if (SelectionItem.CachedSelectionItems.TryGetValue(parent, out selectedItems)) { foreach (SelectionItem selectionItem in selectedItems) { if (selectionItem != exceptSelectionItem) { selectionItem.WasSelected = false; selectionItem.Adapter.NotifyStateChange(Atk.StateType.Selected); } } selectedItems.Clear(); selectedItems.Add(exceptSelectionItem); } }
private static void RemoveSelectedItem(SelectionItem selectionItem) { Adapter parent = selectionItem.ParentSelectionContainer; if (parent == null) { return; } List <SelectionItem> selectedItems = null; if (SelectionItem.CachedSelectionItems.TryGetValue(parent, out selectedItems)) { selectedItems.Remove(selectionItem); } }
private static void AddSelectedItem(SelectionItem selectionItem) { Adapter parent = selectionItem.ParentSelectionContainer; if (parent == null) { return; } List <SelectionItem> selectedItems = null; if (!SelectionItem.CachedSelectionItems.TryGetValue(parent, out selectedItems)) { selectedItems = new List <SelectionItem> (); SelectionItem.CachedSelectionItems [parent] = selectedItems; } selectedItems.Add(selectionItem); }
private void OnAutomationEventRaised(object o, AutomationEventEventArgs args) { bool notifyStateChanged = false; switch (args.Event) { case AutomationEvents.SelectionItemPatternOnElementSelected: // We have to notify that we are the only selected item, // we do that by unselecting previous selected items. SelectionItem.ClearSelectedItems(this); if (!WasSelected) { notifyStateChanged = true; SelectionItem.AddSelectedItem(this); } break; case AutomationEvents.SelectionItemPatternOnElementAddedToSelection: if (!WasSelected) { notifyStateChanged = true; SelectionItem.AddSelectedItem(this); } break; case AutomationEvents.SelectionItemPatternOnElementRemovedFromSelection: if (WasSelected) { notifyStateChanged = true; SelectionItem.RemoveSelectedItem(this); } break; } if (notifyStateChanged) { WasSelected = !WasSelected; adapter.NotifyStateChange(Atk.StateType.Selected); } }
private static void RemoveSelectedItem (SelectionItem selectionItem) { Adapter parent = selectionItem.ParentSelectionContainer; if (parent == null) return; List<SelectionItem> selectedItems = null; if (SelectionItem.CachedSelectionItems.TryGetValue (parent, out selectedItems)) selectedItems.Remove (selectionItem); }
private static void AddSelectedItem (SelectionItem selectionItem) { Adapter parent = selectionItem.ParentSelectionContainer; if (parent == null) return; List<SelectionItem> selectedItems = null; if (!SelectionItem.CachedSelectionItems.TryGetValue (parent, out selectedItems)) { selectedItems = new List<SelectionItem> (); SelectionItem.CachedSelectionItems [parent] = selectedItems; } selectedItems.Add (selectionItem); }
private static void ClearSelectedItems (SelectionItem exceptSelectionItem) { Adapter parent = exceptSelectionItem.ParentSelectionContainer; if (parent == null) return; List<SelectionItem> selectedItems = null; if (SelectionItem.CachedSelectionItems.TryGetValue (parent, out selectedItems)) { foreach (SelectionItem selectionItem in selectedItems) { if (selectionItem != exceptSelectionItem) { selectionItem.WasSelected = false; selectionItem.Adapter.NotifyStateChange (Atk.StateType.Selected); } } selectedItems.Clear (); selectedItems.Add (exceptSelectionItem); } }