public void ValidateIndexPath() { RunOnUIThread.Execute(() => { IndexPath path = IndexPath.CreateFromIndices(null); Verify.AreEqual(0, path.GetSize()); path = IndexPath.CreateFrom(5); Verify.AreEqual(1, path.GetSize()); Verify.AreEqual(5, path.GetAt(0)); path = IndexPath.CreateFrom(1, 2); Verify.AreEqual(2, path.GetSize()); Verify.AreEqual(1, path.GetAt(0)); Verify.AreEqual(2, path.GetAt(1)); Verify.AreEqual(0, IndexPath.CreateFrom(0, 1).CompareTo(IndexPath.CreateFrom(0, 1))); Verify.AreEqual(-1, IndexPath.CreateFrom(0, 1).CompareTo(IndexPath.CreateFrom(1, 0))); Verify.AreEqual(1, IndexPath.CreateFrom(0, 1).CompareTo(IndexPath.CreateFrom(0, 0))); Verify.AreEqual(-1, IndexPath.CreateFrom(1, 0).CompareTo(IndexPath.CreateFrom(1, 1))); Verify.AreEqual(0, IndexPath.CreateFrom(1, 0).CompareTo(IndexPath.CreateFrom(1, 0))); Verify.AreEqual(1, IndexPath.CreateFrom(1, 1).CompareTo(IndexPath.CreateFrom(1, 0))); var emptyPath = IndexPath.CreateFromIndices(null); Verify.AreEqual(0, emptyPath.CompareTo(emptyPath)); var path1 = IndexPath.CreateFrom(1); Verify.AreEqual(-1, emptyPath.CompareTo(path1)); Verify.AreEqual(1, path1.CompareTo(emptyPath)); var path12 = IndexPath.CreateFrom(1, 2); Verify.AreEqual(-1, path1.CompareTo(path12)); Verify.AreEqual(1, path12.CompareTo(path1)); }); }
public void ValidateCanSetSelectedIndex() { RunOnUIThread.Execute(() => { var model = new SelectionModel(); var ip = IndexPath.CreateFrom(34); model.SelectedIndex = ip; Verify.AreEqual(0, ip.CompareTo(model.SelectedIndex)); }); }
private object GetData(SelectionModel selectionModel, IndexPath indexPath) { var data = selectionModel.Source; for (int i = 0; i < indexPath.GetSize(); i++) { var listData = data as IList; data = listData[indexPath.GetAt(i)]; } return(data); }
private void SelectRangeFromAnchor(SelectionModel manager, IndexPath index, bool select) { Log.Comment("SelectRangeFromAnchor " + index + " select: " + select.ToString()); if (select) { manager.SelectRangeFromAnchorTo(index); } else { manager.DeselectRangeFromAnchorTo(index); } }
private void Select(SelectionModel manager, IndexPath index, bool select) { Log.Comment((select ? "Selecting " : "DeSelecting ") + index); if (select) { manager.SelectAt(index); } else { manager.DeselectAt(index); } }
private bool Contains(List <IndexPath> list, IndexPath index) { bool contains = false; foreach (var item in list) { if (item.CompareTo(index) == 0) { contains = true; break; } } return(contains); }
private bool AreEqual(IndexPath a, IndexPath b) { if (a.GetSize() != b.GetSize()) { return(false); } for (int i = 0; i < a.GetSize(); i++) { if (a.GetAt(i) != b.GetAt(i)) { return(false); } } return(true); }
private static void Traverse(object root, Action <TreeWalkNodeInfo> nodeAction) { var pendingNodes = new Stack <TreeWalkNodeInfo>(); IndexPath current = Path(null); pendingNodes.Push(new TreeWalkNodeInfo() { Current = root, Path = current }); while (pendingNodes.Count > 0) { var currentNode = pendingNodes.Pop(); var currentObject = currentNode.Current as IList; if (currentObject != null) { for (int i = currentObject.Count - 1; i >= 0; i--) { var child = currentObject[i]; List <int> path = new List <int>(); for (int idx = 0; idx < currentNode.Path.GetSize(); idx++) { path.Add(currentNode.Path.GetAt(idx)); } path.Add(i); var childPath = IndexPath.CreateFromIndices(path); if (child != null) { pendingNodes.Push(new TreeWalkNodeInfo() { Current = child, Path = childPath }); } } } nodeAction(currentNode); } }
public static IndexPath Path(params int[] path) { return(IndexPath.CreateFromIndices(path)); }
private void SetAnchorIndex(SelectionModel manager, IndexPath index) { Log.Comment("SetAnchor " + index); manager.AnchorIndex = index; }