Skip to content

Commit 2c34e38

Browse files
committed
some refactoring
1 parent b8c3b8e commit 2c34e38

23 files changed

+87
-525
lines changed

SimpleStateMachineNodeEditor/Helpers/Commands/Command.cs

Lines changed: 3 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -6,127 +6,70 @@ namespace SimpleStateMachineNodeEditor.Helpers.Commands
66
{
77
public class Command<TParameter, TResult> : ICommandWithUndoRedo, ICommand, ICloneable
88
{
9-
109
private readonly Func<TParameter, TResult, TResult> _execute;
11-
12-
/// <summary>
13-
/// Функция отмены команды
14-
/// </summary>
1510
private readonly Func<TParameter, TResult, TResult> _unExecute;
16-
1711
public Action OnExecute { get; set; }
18-
19-
/// <summary>
20-
/// Параметр, который был передан в команду при выполнении
21-
/// </summary>
2212
public TParameter Parameters { get; set; }
23-
24-
/// <summary>
25-
/// Результат выполнения команды
26-
/// Например здесь может храниться список объектов, которые были изменены
2713
public TResult Result { get; set; }
28-
/// </summary>
29-
30-
31-
/// <summary>
32-
/// Клонирование текущей команды, для записи в стек выполненных или отмененных команд
33-
/// </summary>
34-
/// <returns></returns>
3514
public object Clone()
36-
{
37-
15+
{
3816
return new Command<TParameter, TResult>(_execute, _unExecute, OnExecute)
3917
{
4018
Parameters = this.Parameters,
4119
Result = this.Result
4220
};
4321
}
4422

45-
/// <summary>
46-
/// Требуется интерфейсом ICloneable, не используется
47-
/// </summary>
23+
4824
public event EventHandler CanExecuteChanged
4925
{
5026
add { CommandManager.RequerySuggested += value; }
5127
remove { CommandManager.RequerySuggested -= value; }
5228
}
5329

54-
/// <summary>
55-
/// Требуется интерфейсом ICloneable, не используется
56-
/// </summary>
57-
/// <param name="parameter"></param>
58-
/// <returns>Всегда возвращает true</returns>
5930
public bool CanExecute(object parameter)
6031
{
6132
return true;
6233
}
6334

64-
/// <summary>
65-
/// Выполнение команды
66-
/// </summary>
67-
/// <param name="parameter"> Параметр команды </param>
6835
public void Execute(object parameter)
6936
{
70-
//Запоминаем параметр ( чтобы можно было егоже передать в отмену)
7137
Parameters = parameter.Cast<TParameter>();
7238

73-
//Выполняем команду и запоминаем результат ( чтобы можно было выполнить отмену именно для этого результата)
7439
Result = this._execute(Parameters, Result).Cast<TResult>();
7540

76-
//Добавляем копию команды в стек команд, которые можно отменить
7741
ICommandWithUndoRedo.AddInUndo(this.Clone() as ICommandWithUndoRedo);
7842

79-
//Очищаем список отмененнных команд ( началась новая ветка изменений)
8043
ICommandWithUndoRedo.StackRedo.Clear();
8144

82-
//Очищаем результат ( чтобы не передавать его при повторном выполнении)
8345
Result = default(TResult);
8446

85-
//Очищаем параметр ( чтобы не передавать его при повторном выполнении)
8647
Parameters = default(TParameter);
8748

8849
OnExecute?.Invoke();
8950
}
9051

91-
/// <summary>
92-
/// Отмена команды
93-
/// </summary>
9452
public void UnExecute()
9553
{
96-
//Выполняем отмену команду
9754
this._unExecute(Parameters, Result);
9855

99-
//Добавляем копию команды в стек команд, которые можно выполнить повторно
10056
ICommandWithUndoRedo.AddInRedo(this.Clone() as ICommandWithUndoRedo);
10157
}
10258

103-
/// <summary>
104-
/// Повторное выполнения команды
105-
/// </summary>
10659
public void ExecuteWithSubscribe()
10760
{
108-
//Выполянем команду
10961
this.Result = this._execute(this.Parameters, this.Result);
11062

111-
//Добавляем копию команды в стек команд, которые можно отменить
11263
ICommandWithUndoRedo.AddInUndo(this.Clone() as ICommandWithUndoRedo);
11364
}
11465

115-
/// <summary>
116-
/// Создать отменяемую команду
117-
/// </summary>
118-
/// <param name="owner">Объкт, которому принадлежит команда</param>
119-
/// <param name="ExecuteWithSubscribe">Функция, которая будет вызвана при выполнении команды</param>
120-
/// <param name="unExecute">Функция, которая будет вызвана при отмене команды</param>
12166
public Command(Func<TParameter, TResult, TResult> ExecuteWithSubscribe, Func<TParameter, TResult, TResult> unExecute, Action onExecute = null)
12267
{
12368
_execute = ExecuteWithSubscribe;
12469

12570
_unExecute = unExecute;
12671

127-
OnExecute += onExecute;
128-
129-
72+
OnExecute += onExecute;
13073
}
13174
}
13275
}

SimpleStateMachineNodeEditor/Helpers/MyPoint.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ public void Clear()
4949
Value = new Point();
5050
}
5151

52-
/// <summary>
53-
/// Отразить координаты
54-
/// </summary>
55-
/// <param name="onX">Отразить по X (По умолчанию true) </param>
56-
/// <param name="onY">Отразить по Y (По умолчанию true) </param>
5752
public void Mirror(bool onX = true, bool onY = true)
5853
{
5954
Value = new Point(onX ? -this.X : this.X, onY ? -this.Y : this.Y);

SimpleStateMachineNodeEditor/SimpleStateMachineNodeEditor.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
</ItemGroup>
4545

4646
<ItemGroup>
47-
<PackageReference Include="MvvmDialogs" Version="7.0.0" />
4847
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
4948
<PackageReference Include="ReactiveUI" Version="11.4.1" />
5049
<PackageReference Include="ReactiveUI.Events.WPF" Version="11.4.1" />

SimpleStateMachineNodeEditor/View/MainWindow.xaml.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,9 @@
1515
using System.Windows.Markup;
1616
using SimpleStateMachineNodeEditor.ViewModel;
1717
using SimpleStateMachineNodeEditor.Helpers.Enums;
18-
using System.Windows.Forms;
1918
using System.IO;
20-
using SimpleStateMachineNodeEditor.Helpers;
21-
using Newtonsoft.Json;
2219
using System.Linq;
23-
using SimpleStateMachineNodeEditor.Helpers.Commands;
2420
using SimpleStateMachineNodeEditor.Helpers.Extensions;
25-
using System.Reactive.Concurrency;
26-
using System.Threading.Tasks;
27-
using System.Threading;
28-
using System.Reactive;
29-
using System.Collections.Generic;
3021

3122
namespace SimpleStateMachineNodeEditor.View
3223
{

SimpleStateMachineNodeEditor/View/ViewConnect.xaml.cs

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,27 +41,21 @@ public ViewConnect()
4141
{
4242
InitializeComponent();
4343
SetupBinding();
44-
SetupEvents();
4544
}
4645

4746
#region SetupBinding
4847
private void SetupBinding()
4948
{
5049
this.WhenActivated(disposable =>
5150
{
52-
// Цвет линии
5351
this.OneWayBind(this.ViewModel, x => x.Stroke, x => x.PathElement.Stroke).DisposeWith(disposable);
5452

55-
// Точка, из которой выходит линия
5653
this.OneWayBind(this.ViewModel, x => x.StartPoint.Value, x => x.PathFigureElement.StartPoint).DisposeWith(disposable);
5754

58-
// Первая промежуточная точка линии
5955
this.OneWayBind(this.ViewModel, x => x.Point1.Value, x => x.BezierSegmentElement.Point1).DisposeWith(disposable);
6056

61-
// Вторая промежуточная точка линии
6257
this.OneWayBind(this.ViewModel, x => x.Point2.Value, x => x.BezierSegmentElement.Point2).DisposeWith(disposable);
6358

64-
// Точка, в которую приходит линия
6559
this.OneWayBind(this.ViewModel, x => x.EndPoint.Value, x => x.BezierSegmentElement.Point3).DisposeWith(disposable);
6660

6761
this.OneWayBind(this.ViewModel, x => x.StrokeDashArray, x => x.PathElement.StrokeDashArray).DisposeWith(disposable);
@@ -74,22 +68,12 @@ private void SetupBinding()
7468

7569
});
7670
}
77-
#endregion SetupBinding
78-
79-
#region SetupEvents
80-
private void SetupEvents()
81-
{
82-
this.WhenActivated(disposable =>
83-
{
8471

85-
});
86-
}
8772
private void UpdateZindex()
8873
{
89-
if(this.ViewModel.FromConnector.Node!=this.ViewModel.ToConnector.Node)
74+
if (this.ViewModel.FromConnector.Node != this.ViewModel.ToConnector.Node)
9075
Canvas.SetZIndex((UIElement)this.VisualParent, this.ViewModel.ToConnector.Node.Zindex);
9176
}
92-
93-
#endregion SetupEvents
77+
#endregion SetupBinding
9478
}
9579
}

SimpleStateMachineNodeEditor/View/ViewCutter.xaml.cs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,26 +66,24 @@ private void SetupBinding()
6666

6767
});
6868
}
69-
70-
#endregion Setup Binding
71-
72-
#region Setup Events
73-
7469
private void Update()
7570
{
7671
Mouse.Capture(this);
7772
Keyboard.Focus(this);
7873
}
74+
75+
#endregion Setup Binding
76+
77+
#region Setup Events
78+
7979
private void SetupEvents()
8080
{
8181
this.WhenActivated(disposable =>
8282
{
8383
this.Events().MouseMove.Subscribe(e => OnMouseMoves(e)).DisposeWith(disposable);
8484
this.Events().MouseLeftButtonUp.Subscribe(e => OnMouseLeftButtonUp(e)).DisposeWith(disposable);
85-
8685
});
8786
}
88-
8987
private void OnMouseMoves(MouseEventArgs e)
9088
{
9189
ViewNodesCanvas NodesCanvas = MyUtils.FindParent<ViewNodesCanvas>(this);
@@ -99,17 +97,8 @@ private void OnMouseLeftButtonUp(MouseEventArgs e)
9997
{
10098
this.ViewModel.Visible = null;
10199
}
102-
#endregion Setup Events
103-
104-
#region Setup Commands
105-
private void SetupCommands()
106-
{
107-
this.WhenActivated(disposable =>
108-
{
109100

101+
#endregion Setup Events
110102

111-
});
112-
}
113-
#endregion Setup Commands
114103
}
115104
}

SimpleStateMachineNodeEditor/View/ViewMessage.xaml.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@ private void SetupSubscriptions()
6868
private void UpdateIcon(TypeMessage type)
6969
{
7070
this.RectangleElement.Fill = Application.Current.Resources["Icon" + type.Name()] as DrawingBrush;
71-
//{
72-
// TypeMessage.Error => "IconError",
73-
// TypeMessage.Warning => new RGBColor(0x00, 0x00, 0xFF),
74-
// TypeMessage.Information => new RGBColor(0xFF, 0x7F, 0x00),
75-
// TypeMessage.Debug => new RGBColor(0xFF, 0x7F, 0x00),
76-
//}] as DrawingBrush;
7771
}
7872
#endregion Setup Subscriptions
7973
}

SimpleStateMachineNodeEditor/View/ViewModalDialog.xaml

Lines changed: 0 additions & 8 deletions
This file was deleted.

SimpleStateMachineNodeEditor/View/ViewModalDialog.xaml.cs

Lines changed: 0 additions & 44 deletions
This file was deleted.

SimpleStateMachineNodeEditor/View/ViewNode.xaml.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ private void SetupEvents()
102102
{
103103
this.WhenAnyValue(x=>x.IsMouseOver).Subscribe(value=> OnEventMouseOver(value)).DisposeWith(disposable);
104104
this.Events().MouseLeftButtonDown.Subscribe(e => OnEventMouseLeftDowns(e)).DisposeWith(disposable);
105-
this.Events().MouseLeftButtonUp.Subscribe(e => OnEventMouseLeftUp(e)).DisposeWith(disposable);
106-
this.Events().MouseRightButtonDown.Subscribe(e => OnEventMouseRightDown(e)).DisposeWith(disposable);
107-
this.Events().MouseRightButtonUp.Subscribe(e => OnEventMouseRightUp(e)).DisposeWith(disposable);
105+
//this.Events().MouseLeftButtonUp.Subscribe(e => OnEventMouseLeftUp(e)).DisposeWith(disposable);
106+
//this.Events().MouseRightButtonDown.Subscribe(e => OnEventMouseRightDown(e)).DisposeWith(disposable);
107+
//this.Events().MouseRightButtonUp.Subscribe(e => OnEventMouseRightUp(e)).DisposeWith(disposable);
108108
this.Events().MouseDown.Subscribe(e => OnEventMouseDown(e)).DisposeWith(disposable);
109109
this.Events().MouseUp.Subscribe(e => OnEventMouseUp(e)).DisposeWith(disposable);
110110
this.Events().MouseMove.Subscribe(e => OnMouseMove(e)).DisposeWith(disposable);

0 commit comments

Comments
 (0)