添加撤销,导航Call命令,节点类型根据子节点数量变化,标签和记录名去重等功能
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
Imports FlexCell
|
||||
|
||||
Public Class GridNavigation : Implements INavigation
|
||||
|
||||
Private ReadOnly _grd As Grid
|
||||
Private ReadOnly _beforeRange As GridSelectRange
|
||||
Private ReadOnly _afterRange As GridSelectRange
|
||||
|
||||
Sub New(grd As FlexCell.Grid, beforeRange As GridSelectRange, afterRange As GridSelectRange)
|
||||
_grd = grd
|
||||
Me._beforeRange = beforeRange
|
||||
Me._afterRange = afterRange
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub Backward() Implements INavigation.Backward
|
||||
_grd.Range(_beforeRange.StartRow, _beforeRange.StartCol, _beforeRange.EndRow, _beforeRange.EndCol).SelectCells()
|
||||
End Sub
|
||||
|
||||
Public Sub Forward() Implements INavigation.Forward
|
||||
_grd.Range(_afterRange.StartRow, _afterRange.StartCol, _afterRange.EndRow, _afterRange.EndCol).SelectCells()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
Public Class GridSelectRange
|
||||
Public Property StartRow As Integer
|
||||
Public Property StartCol As Integer
|
||||
|
||||
Public Property EndRow As Integer
|
||||
|
||||
Public Property EndCol As Integer
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,82 @@
|
||||
Public Module GridNavigationManager
|
||||
Private _forwardStack As New Stack(Of INavigation)()
|
||||
Private _backwardStack As New Stack(Of INavigation)()
|
||||
Private _isRunning As Boolean = False
|
||||
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 是否正在执行导航操作
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public ReadOnly Property IsRunning As Boolean
|
||||
Get
|
||||
Return _isRunning
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 是否可以后退
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public ReadOnly Property CanForward As Boolean
|
||||
Get
|
||||
Return _forwardStack.Count > 0
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' 是否可以前进
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public ReadOnly Property CanBackward As Boolean
|
||||
Get
|
||||
Return _backwardStack.Count > 0
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' 添加导航
|
||||
''' <param name="navigation">导航</param>
|
||||
''' </summary>
|
||||
Public Sub Append(navigation As INavigation)
|
||||
_backwardStack.Push(navigation)
|
||||
_forwardStack.Clear()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
'''
|
||||
''' </summary>
|
||||
Public Sub RemoveForward()
|
||||
If CanBackward Then _backwardStack.Pop()
|
||||
End Sub
|
||||
|
||||
Public Sub Clear()
|
||||
_forwardStack.Clear()
|
||||
_backwardStack.Clear()
|
||||
End Sub
|
||||
|
||||
Public Sub Forward()
|
||||
If Not CanForward Then Return
|
||||
Dim navigation As INavigation = _forwardStack.Pop()
|
||||
_backwardStack.Push(navigation)
|
||||
_isRunning = True
|
||||
navigation.Forward()
|
||||
_isRunning = False
|
||||
End Sub
|
||||
|
||||
Public Sub Backward()
|
||||
If Not CanBackward Then Return
|
||||
Dim navigation As INavigation = _backwardStack.Pop()
|
||||
_forwardStack.Push(navigation)
|
||||
_isRunning = True
|
||||
navigation.Backward()
|
||||
_isRunning = False
|
||||
End Sub
|
||||
|
||||
End Module
|
||||
12
UTS_Core/UTSModule/Station/GridNodeNavigation/INavigation.vb
Normal file
12
UTS_Core/UTSModule/Station/GridNodeNavigation/INavigation.vb
Normal file
@@ -0,0 +1,12 @@
|
||||
Public Interface INavigation
|
||||
''' <summary>
|
||||
''' 向后导航
|
||||
''' </summary>
|
||||
Sub Backward()
|
||||
|
||||
''' <summary>
|
||||
''' 向前导航
|
||||
''' </summary>
|
||||
Sub Forward()
|
||||
|
||||
End Interface
|
||||
Reference in New Issue
Block a user