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/RowNodeCommand.vb
2024-03-11 16:34:21 +08:00

136 lines
3.6 KiB
VB.net

Imports UTS_Core.Undo
Namespace UTSModule.Station
Public Class RowNodeCommand
Implements ICommand
Private ReadOnly _row As Integer
Private ReadOnly _rowNode As RowNode
Sub New(rowNode As RowNode, row As Integer, redoString As String)
_row = row
_rowNode = rowNode
End Sub
Public Sub Redo() Implements ICommand.Redo
End Sub
Public Sub Undo() Implements ICommand.Undo
End Sub
Public Sub Execute() Implements ICommand.Execute
Redo()
End Sub
End Class
Public Class RowNodeCommand2
Implements ICommand
Enum ChangeType
Add
Remove
Insert
RemoveChildAt
RemoveChildNode
MoveUp
MoveDown
MoveLeft
MoveRight
TextChanged
End Enum
Private _parentNode As RowNode
Private _rowNode As RowNode
Private _index As Integer '增加节点的位置
Private _type As ChangeType '当前操作的类型
Sub New(parentNode As RowNode, rowNode As RowNode, type As ChangeType, Optional index As Integer = 0)
_parentNode = parentNode
_rowNode = rowNode
_index = index
_type = type
End Sub
Public Sub Execute() Implements ICommand.Execute
Redo()
End Sub
Public Sub Redo() Implements ICommand.Redo
Select Case _type
Case ChangeType.Add
_parentNode.AddNode(_rowNode)
_index = _rowNode.RowIndex
Case ChangeType.Insert
_parentNode.InsertNode(_index, _rowNode)
Case ChangeType.Remove
_index = _rowNode.RowIndex
_parentNode.RemoveChildNode(_rowNode)
Case ChangeType.RemoveChildAt
_index = _rowNode.RowIndex
_parentNode.RemoveChildAt(_index)
Case ChangeType.RemoveChildNode
_index = _rowNode.RowIndex
_parentNode.RemoveChildNode(_rowNode)
Case ChangeType.MoveUp
_rowNode.MoveUp()
Case ChangeType.MoveDown
_rowNode.MoveDown()
Case ChangeType.MoveLeft
_rowNode.MoveLeft()
Case ChangeType.MoveRight
_rowNode.MoveRight()
Case ChangeType.TextChanged
End Select
End Sub
Public Sub Undo() Implements ICommand.Undo
Select Case _type
Case ChangeType.Add
_parentNode.RemoveChildNode(_rowNode)
Case ChangeType.Insert
_parentNode.RemoveChildAt(_index)
Case ChangeType.Remove
_parentNode.InsertNode(_index, _rowNode)
Case ChangeType.RemoveChildAt
_parentNode.InsertNode(_index, _rowNode)
Case ChangeType.RemoveChildNode
_parentNode.InsertNode(_index, _rowNode)
Case ChangeType.MoveUp
_rowNode.MoveDown()
Case ChangeType.MoveDown
_rowNode.MoveUp()
Case ChangeType.MoveLeft
_rowNode.MoveRight()
Case ChangeType.MoveRight
_rowNode.MoveLeft()
Case ChangeType.TextChanged
End Select
End Sub
End Class
End Namespace