This repository has been archived on 2025-11-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AUTS_OLD/UTS_Core/UTSModule/Station/GridNavigationManager.vb

83 lines
1.9 KiB
VB.net

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