Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
 public FastList()
 {
     if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
     {
         ItemCount       = 100;
         ItemTextNeeded += (o, a) => a.Result = "Item " + a.ItemIndex;
         SelectedItemIndexes.Add(0);
     }
 }
Ejemplo n.º 5
0
        public virtual void UnselectAll()
        {
            foreach (var selectedItemIndex in SelectedItemIndexes)
            {
                GetMediatorAt(selectedItemIndex).SetSelected(false);
            }

            SelectedItemIndexes.Clear();
        }
Ejemplo n.º 6
0
        protected override void ApplyItemUnselection(int index)
        {
            SelectedItemIndexes.Remove(index);

            if (_mapper.IsItemVisible(index))
            {
                GetMediatorAt(index).SetSelected(false);
            }
        }
Ejemplo n.º 7
0
        protected override void ApplyItemSelection(int index)
        {
            SelectedItemIndexes.Add(index);

            if (_mapper.IsItemVisible(index))
            {
                GetMediatorAt(index).SetSelected(true);
            }
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 10
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));
        }
Ejemplo n.º 11
0
        /// <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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 public virtual bool IsNodeSelected(object node)
 {
     return(SelectedItemIndexes.Contains(nodes.IndexOf(node)));
 }
Ejemplo n.º 14
0
 protected virtual void ApplyItemUnselection(int index)
 {
     SelectedItemIndexes.Remove(index);
     GetMediatorAt(index).SetSelected(false);
 }
Ejemplo n.º 15
0
 protected virtual void ApplyItemSelection(int index)
 {
     SelectedItemIndexes.Add(index);
     GetMediatorAt(index).SetSelected(true);
 }