コード例 #1
0
        private void HandleVisibleNodeAdded(object sender, JetListViewNodeEventArgs e)
        {
            Guard.NullArgument(e.Node, "e.Node");
            if (_topNode == null)    // first node added to the view
            {
                _topNode = e.Node;
            }
            UpdateScrollRange();

            IViewNode topNode = _topNode;

            if (topNode == null)
            {
                topNode = e.Node;
            }
            if (_visibleNodeCollection.GetMoveDirection(e.Node, topNode) == MoveDirection.Down)
            {
                // If we were scrolled so that the top item in the list was visible,
                // add the new item to the visible area. If the top item in the list was
                // not visible, scroll down so that the visible area remains the same and
                // the new item does not appear in it.
                if (_scrollOffset == 0)
                {
                    UpdateTopNode();
                }
                else
                {
                    OnRequestVerticalScroll(_scrollOffset + GetRowHeight(e.Node));
                }
            }
            InvalidateBelow(e.Node);
        }
コード例 #2
0
ファイル: NodeGroupCollection.cs プロジェクト: mo5h/omeo
 private void HandleNodeChanged(object sender, JetListViewNodeEventArgs e)
 {
     if (e.Node.Level == 0)
     {
         GroupHeaderNode groupHeader = GetNodeGroupHeader(e.Node);
         int             headerIndex = _groupMap.IndexOfValue(groupHeader);
         if (headerIndex > 0)
         {
             GroupHeaderNode prevGroup = (GroupHeaderNode)_groupMap.GetByIndex(headerIndex - 1);
             if (prevGroup.TopNode == e.Node)
             {
                 RemoveGroup(prevGroup);
                 return;
             }
         }
         if (headerIndex < _groupMap.Count - 1)
         {
             GroupHeaderNode nextGroup = (GroupHeaderNode)_groupMap.GetByIndex(headerIndex + 1);
             if (nextGroup.TopNode == e.Node)
             {
                 RemoveGroup(nextGroup);
                 return;
             }
         }
     }
 }
コード例 #3
0
 private void HandleVisibleNodeRemoved(object sender, JetListViewNodeEventArgs e)
 {
     UpdateTopNode();
     UpdateScrollRange();
     if (_lastRemovedNodeTop >= 0)
     {
         InvalidateBelow(_lastRemovedNodeTop);
     }
 }
コード例 #4
0
        internal void OnNodeMoved(JetListViewNode node)
        {
            _version++;
            JetListViewNodeEventArgs args = new JetListViewNodeEventArgs(node);

            if (NodeMoved != null)
            {
                NodeMoved(this, args);
            }
        }
コード例 #5
0
        private void HandleNodeMoved(object sender, JetListViewNodeEventArgs e)
        {
            UpdateTopNode();
            int movedNodeTop = GetNodeTop(e.Node);

            if (_lastMovingNodeTop >= 0 || movedNodeTop >= 0)
            {
                InvalidateBelow(Math.Min(_lastMovingNodeTop, movedNodeTop));
            }
        }
コード例 #6
0
 private void HandleNodeExpandChanged(object sender, JetListViewNodeEventArgs e)
 {
     if (e.Node.Expanded)
     {
         _rowRenderer.ProcessNodeExpanded(e.Node);
     }
     else
     {
         _rowRenderer.ProcessNodeCollapsed(e.Node);
     }
     UpdateTopNode();
     UpdateScrollRange();
     InvalidateBelow(e.Node);
 }
コード例 #7
0
 private void HandleStructureChanged(object sender, JetListViewNodeEventArgs e)
 {
     Owner.OwnerControl.Invalidate();
 }
コード例 #8
0
ファイル: NodeGroupCollection.cs プロジェクト: mo5h/omeo
 private void HandleNodeMoving(object sender, JetListViewNodeEventArgs e)
 {
     ProcessViewNodeRemoving(e.Node);
 }
コード例 #9
0
 private void HandleNodeChanged(object sender, JetListViewNodeEventArgs e)
 {
     InvalidateRow(e.Node);
 }
コード例 #10
0
 private void HandleNodeMoving(object sender, JetListViewNodeEventArgs e)
 {
     _lastMovingNodeTop = GetNodeTop(e.Node);
 }
コード例 #11
0
 private void HandleVisibleNodeRemoving(object sender, JetListViewNodeEventArgs e)
 {
     _lastRemovedNodeTop = GetNodeTop(e.Node);
 }
コード例 #12
0
ファイル: SingleLineRowRenderer.cs プロジェクト: mo5h/omeo
 private void HandleNodeChanged(object sender, JetListViewNodeEventArgs e)
 {
     RecalcColumnWidth(RecalcOnNodeChanged, e.Node);
 }
コード例 #13
0
ファイル: SingleLineRowRenderer.cs プロジェクト: mo5h/omeo
 private void HandleNodeRemoved(object sender, JetListViewNodeEventArgs e)
 {
     RecalcColumnWidth(RecalcAll, e.Node);
 }
コード例 #14
0
ファイル: SingleLineRowRenderer.cs プロジェクト: mo5h/omeo
 private void HandleNodeAdded(object sender, JetListViewNodeEventArgs e)
 {
     ProcessNodeAdded(e.Node);
 }