Exemplo n.º 1
0
 private void NotifyImmediateChildren(bool value)
 {
     if (this.Child != null)
     {
         GeneratorNodeHelper nodeHelper = new GeneratorNodeHelper(this.Child, 0, 0); //index not important
         nodeHelper.MoveToEnd();
         do
         {
             nodeHelper.CurrentNode.NotifyExpansionStateChanged(value);
         }while(nodeHelper.MoveToPrevious() == true);
     }
 }
Exemplo n.º 2
0
        public bool ReverseCalculateIndex()
        {
            // index need to be 0, as I will use the value from the index once I backtracked all the way to the root.
            GeneratorNodeHelper nodeHelper = new GeneratorNodeHelper(this.CurrentNode, 0, 0);

            while ((nodeHelper.CurrentNode.Previous != null) || (nodeHelper.CurrentNode.Parent != null))
            {
                if (!nodeHelper.MoveToPrevious())
                {
                    nodeHelper.MoveToParent();
                }
            }

            m_index           = System.Math.Abs(nodeHelper.Index);
            m_sourceDataIndex = System.Math.Abs(nodeHelper.SourceDataIndex);
            return(true);
        }
Exemplo n.º 3
0
        public bool MoveBackward()
        {
            bool recurseGroup = true;
            GeneratorNodeHelper nodeHelper = new GeneratorNodeHelper(m_currentNode, m_index, m_sourceDataIndex);

            do
            {
                GroupGeneratorNode groupNode = nodeHelper.CurrentNode as GroupGeneratorNode;

                if ((groupNode == null) && (nodeHelper.CurrentNode != m_currentNode) && (nodeHelper.CurrentNode.ItemCount != 0))
                {
                    m_currentNode     = nodeHelper.CurrentNode;
                    m_index           = nodeHelper.Index;
                    m_sourceDataIndex = nodeHelper.SourceDataIndex;
                    return(true);
                }

                if ((recurseGroup) && (nodeHelper.MoveToChild()))
                {
                    nodeHelper.MoveToEnd();
                    continue;
                }

                recurseGroup = true;

                if (nodeHelper.MoveToPrevious())
                {
                    continue;
                }


                if (nodeHelper.MoveToParent())
                {
                    recurseGroup = false;
                    continue;
                }

                break;
            }while(true);

            return(false);
        }