public override void UnselectAll() { if (SelectedItemIndexes.Count == 0) { return; } //get lowestIndex var lowestIndex = _mapper.DataCount; foreach (var selectedItemIndex in SelectedItemIndexes) { lowestIndex = Mathf.Min(lowestIndex, selectedItemIndex); } foreach (var selectedItemIndex in SelectedItemIndexes) { if (_mapper.IsItemVisible(selectedItemIndex)) { GetMediatorAt(selectedItemIndex).SetSelected(false); } } SelectedItemIndexes.Clear(); View.ListScroller.LayoutAfterSelection(lowestIndex, SelectedItemIndexes); }
private void ListItemClickedHandler(ListItemClickedInternalEvent e) { //select/unselected new item var selected = SelectedItemIndexes.Contains(e.ItemIndex); if (!selected) { SelectItemAt(e.ItemIndex); SelectionUpdated(e.ItemIndex); ListItemSelected(e.ItemIndex); } else if (Unselectable) { UnselectItemAt(e.ItemIndex); SelectionUpdated(e.ItemIndex); ListItemUnselected(e.ItemIndex); } ListItemClicked(e.ItemIndex); EventBus.DispatchEvent(new ListItemClickedEvent(e.ItemIndex)); //fire corresponding events if (!selected) { EventBus.DispatchEvent(new ListItemSelectedEvent(e.ItemIndex)); } else if (Unselectable) { EventBus.DispatchEvent(new ListItemUnselectedEvent(e.ItemIndex)); } }
public void Build(object root) { this.root = root; //create set of selected and checked nodes var selected = new HashSet <object>(); var check = new HashSet <object>(); foreach (var i in SelectedItemIndexes) { selected.Add(nodes[i]); } foreach (var i in CheckedItemIndex) { check.Add(nodes[i]); } // nodes.Clear(); levels.Clear(); SelectedItemIndexes.Clear(); CheckedItemIndex.Clear(); //build list of expanded nodes if (ShowRootNode) { AddNode(root, 0); } else { AddNodeChildren(root, 0); } //restore indexes of selected and checked nodes var newExpanded = new HashSet <object>(); hasChildren = new BitArray(nodes.Count); for (int i = 0; i < nodes.Count; i++) { var node = nodes[i]; if (selected.Contains(node)) { SelectedItemIndexes.Add(i); } if (check.Contains(node)) { CheckedItemIndex.Add(i); } if (expandedNodes.Contains(node)) { newExpanded.Add(node); } hasChildren[i] = GetNodeChildren(nodes[i]).Cast <object>().Any(); } expandedNodes = newExpanded; ItemCount = nodes.Count; base.Build(); }
public FastList() { if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) { ItemCount = 100; ItemTextNeeded += (o, a) => a.Result = "Item " + a.ItemIndex; SelectedItemIndexes.Add(0); } }
public virtual void UnselectAll() { foreach (var selectedItemIndex in SelectedItemIndexes) { GetMediatorAt(selectedItemIndex).SetSelected(false); } SelectedItemIndexes.Clear(); }
protected override void ApplyItemUnselection(int index) { SelectedItemIndexes.Remove(index); if (_mapper.IsItemVisible(index)) { GetMediatorAt(index).SetSelected(false); } }
protected override void ApplyItemSelection(int index) { SelectedItemIndexes.Add(index); if (_mapper.IsItemVisible(index)) { GetMediatorAt(index).SetSelected(true); } }
/// <summary> /// Method for unselecting item in list from code instead of user input. /// Does not dispatch event or calls internal list method ListItemUnselected. /// </summary> /// <param name="index">item index</param> public void UnselectItemAt(int index) { if (!SelectedItemIndexes.Contains(index)) { return; } ApplyItemUnselection(index); SelectionUpdated(index); }
public FastTree() { AutoCollapse = true; ShowRootNode = false; ShowExpandBoxes = true; ItemIndentDefault = 16; if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) { Build(new object[] { "Node 1", "Node 2", "Node 3" }); SelectedItemIndexes.Add(0); } }
private void ItemIndexChangedHandler(int increment) { //todo check min / max index _mapper.FirstDataIndex += increment; //scrolling down - update last item //scrolling up - update first item //var viewIndex = increment > 0 ? _mapper.LastViewIndex : _mapper.FirstViewIndex; var dataIndex = increment > 0 ? _mapper.LastDataIndex : _mapper.FirstDataIndex; var mediator = GetMediatorAt(dataIndex); SetItemData(mediator, DataProviders[dataIndex], dataIndex); mediator.SetSelected(SelectedItemIndexes.Contains(dataIndex)); }
/// <summary> /// Method for selecting item in list from code instead of user input. /// Does not dispatch event or calls internal list method ListItemSelected. /// </summary> /// <param name="index">item index</param> public void SelectItemAt(int index) { if (SelectedItemIndexes.Contains(index)) { return; } //unselect old item if (!Multiselect && SelectedItemIndexes.Count > 0) { ApplyItemUnselection(SelectedItemIndexes[0]); } ApplyItemSelection(index); SelectionUpdated(index); }
private void ListItemClickedHandler(int itemIndex, TData dataProvider) { //select/unselected new item var selected = SelectedItemIndexes.Contains(itemIndex); if (!selected) { SelectItemAt(itemIndex); SelectionUpdated(itemIndex); ListItemSelected(itemIndex, dataProvider); } else if (Unselectable) { UnselectItemAt(itemIndex); SelectionUpdated(itemIndex); ListItemUnselected(itemIndex, dataProvider); } ListItemClicked(itemIndex, dataProvider); }
public virtual bool IsNodeSelected(object node) { return(SelectedItemIndexes.Contains(nodes.IndexOf(node))); }
protected virtual void ApplyItemUnselection(int index) { SelectedItemIndexes.Remove(index); GetMediatorAt(index).SetSelected(false); }
protected virtual void ApplyItemSelection(int index) { SelectedItemIndexes.Add(index); GetMediatorAt(index).SetSelected(true); }