Skip to content

Commit b4a45e2

Browse files
committed
fix under-redo for loop
1 parent a8423d7 commit b4a45e2

File tree

4 files changed

+43
-22
lines changed

4 files changed

+43
-22
lines changed

SimpleStateMachineNodeEditor/View/ViewRightConnector.xaml.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ private void SetupEvents()
9999
{
100100
this.WhenActivated(disposable =>
101101
{
102-
this.EllipseElement.Events().PreviewMouseLeftButtonDown.Subscribe(e => ConnectDrag(e)).DisposeWith(disposable);
102+
this.EllipseElement.Events().MouseLeftButtonDown.Subscribe(e => ConnectDrag(e)).DisposeWith(disposable);
103103
this.TextBoxElement.Events().LostFocus.Subscribe(e => Validate(e)).DisposeWith(disposable);
104-
this.BorderElement.Events().PreviewMouseLeftButtonDown.Subscribe(e => ConnectorDrag(e)).DisposeWith(disposable);
104+
//this.BorderElement.Events().PreviewMouseLeftButtonDown.Subscribe(e => ConnectorDrag(e)).DisposeWith(disposable);
105105
this.BorderElement.Events().PreviewDragEnter.Subscribe(e => ConnectorDragEnter(e)).DisposeWith(disposable);
106106
this.BorderElement.Events().PreviewDrop.Subscribe(e => ConnectorDrop(e)).DisposeWith(disposable);
107107
});
@@ -116,18 +116,23 @@ private void Validate(RoutedEventArgs e)
116116

117117
private void ConnectDrag(MouseButtonEventArgs e)
118118
{
119-
if (e.ClickCount == 1)
119+
if (Keyboard.IsKeyDown(Key.LeftCtrl))
120+
{
121+
this.ViewModel.CommandSetAsLoop.Execute();
122+
this.ViewModel.NodesCanvas.CommandAddConnectorWithConnect.Execute(this.ViewModel);
123+
124+
this.ViewModel.NodesCanvas.LogDebug("Зашел 2 ");
125+
}
126+
else
120127
{
121128
this.ViewModel.CommandConnectPointDrag.Execute();
122129
DataObject data = new DataObject();
123130
data.SetData("Node", this.ViewModel.Node);
124131
DragDrop.DoDragDrop(this, data, DragDropEffects.Link);
125132
this.ViewModel.CommandCheckConnectPointDrop.Execute();
126133
e.Handled = true;
127-
}
128-
else if (e.ClickCount == 2)
129-
{
130-
this.ViewModel.CommandSetAsLoop.Execute();
134+
135+
this.ViewModel.NodesCanvas.LogDebug("Зашел 1 ");
131136
}
132137
}
133138

SimpleStateMachineNodeEditor/ViewModel/ViewModelConnector.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,10 @@ private void CheckConnectPointDrop()
220220
}
221221
else
222222
{
223+
NodesCanvas.CommandAddConnectorWithConnect.Execute(Node.CurrentConnector);
223224
Node.CommandAddEmptyConnector.Execute();
224-
NodesCanvas.CommandAddConnectWithUndoRedo.Execute(Node.NodesCanvas.DraggedConnect);
225+
226+
//NodesCanvas.CommandAddConnectWithUndoRedo.Execute(Node.NodesCanvas.DraggedConnect);
225227
NodesCanvas.DraggedConnect = null;
226228
}
227229
}

SimpleStateMachineNodeEditor/ViewModel/ViewModelMainWindow.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@ public class ViewModelMainWindow: ReactiveObject
1919
public ObservableCollectionExtended<ViewModelMessage> Messages { get; set; } = new ObservableCollectionExtended<ViewModelMessage>();
2020

2121
[Reactive] public ViewModelNodesCanvas NodesCanvas { get; set; }
22-
2322
[Reactive] public TypeMessage DisplayMessageType { get; set; }
24-
25-
[Reactive] public bool? DebugEnable { get; set; }
23+
[Reactive] public bool? DebugEnable { get; set; } = true;
2624

2725
private IDisposable ConnectToMessages;
28-
2926
public double MaxHeightMessagePanel = 150;
3027

3128
public ViewModelMainWindow()

SimpleStateMachineNodeEditor/ViewModel/ViewModelNodesCanvas.cs

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ namespace SimpleStateMachineNodeEditor.ViewModel
2525
{
2626
public class ViewModelNodesCanvas : ReactiveObject
2727
{
28-
public IObservableCollection<ViewModelConnect> Connects = new ObservableCollectionExtended<ViewModelConnect>();
29-
30-
public IObservableCollection<ViewModelNode> Nodes = new ObservableCollectionExtended<ViewModelNode>();
28+
public ObservableCollectionExtended<ViewModelConnect> Connects = new ObservableCollectionExtended<ViewModelConnect>();
29+
public ObservableCollectionExtended<ViewModelNode> Nodes = new ObservableCollectionExtended<ViewModelNode>();
30+
public ObservableCollectionExtended<ViewModelMessage> Messages { get; set; } = new ObservableCollectionExtended<ViewModelMessage>();
3131

3232
[Reactive] public ViewModelSelector Selector { get; set; } = new ViewModelSelector();
3333
[Reactive] public ViewModelCutter Cutter { get; set; }
@@ -37,7 +37,7 @@ public class ViewModelNodesCanvas : ReactiveObject
3737
[Reactive] public bool ItSaved { get; set; } = true;
3838
[Reactive] public string Path { get; set; }
3939
[Reactive] public TypeMessage DisplayMessageType { get; set; }
40-
public ObservableCollectionExtended<ViewModelMessage> Messages { get; set; } = new ObservableCollectionExtended<ViewModelMessage>();
40+
4141

4242
[Reactive] public Scale Scale { get; set; } = new Scale();
4343

@@ -124,7 +124,8 @@ private void SetAsStart(ViewModelNode node)
124124
public SimpleCommandWithParameter<string> CommandLogInformation { get; set; }
125125
public SimpleCommandWithParameter<string> CommandLogWarning { get; set; }
126126
public SimpleCommandWithParameter<MyPoint> CommandPartMoveAllSelectedNode { get; set; }
127-
public Command<ViewModelConnect, ViewModelConnect> CommandAddConnectWithUndoRedo { get; set; }
127+
//public Command<ViewModelConnect, ViewModelConnect> CommandAddConnectWithUndoRedo { get; set; }
128+
public Command<ViewModelConnector, ViewModelConnector> CommandAddConnectorWithConnect {get; set; }
128129
public Command<MyPoint, List<ViewModelNode>> CommandFullMoveAllNode { get; set; }
129130
public Command<MyPoint, List<ViewModelNode>> CommandFullMoveAllSelectedNode { get; set; }
130131
public Command<MyPoint, ViewModelNode> CommandAddNodeWithUndoRedo { get; set; }
@@ -159,6 +160,7 @@ private void SetupCommands()
159160
CommandPartMoveAllSelectedNode = new SimpleCommandWithParameter<MyPoint>(PartMoveAllSelectedNode);
160161
CommandFullMoveAllNode = new Command<MyPoint, List<ViewModelNode>>(FullMoveAllNode, UnFullMoveAllNode, NotSaved);
161162
CommandFullMoveAllSelectedNode = new Command<MyPoint, List<ViewModelNode>>(FullMoveAllSelectedNode, UnFullMoveAllSelectedNode, NotSaved);
163+
CommandAddConnectorWithConnect = new Command<ViewModelConnector, ViewModelConnector>(AddConnectorWithConnect, DeleteConnectorWithConnect, NotSaved);
162164
CommandZoom = new SimpleCommandWithParameter<int>(Zoom);
163165
CommandLogDebug = new SimpleCommandWithParameter<string>(LogDebug);
164166
CommandLogError = new SimpleCommandWithParameter<string>(LogError);
@@ -169,7 +171,7 @@ private void SetupCommands()
169171
CommandAddDraggedConnect = new SimpleCommandWithParameter<ViewModelConnector>(AddDraggedConnect);
170172
CommandDeleteDraggedConnect = new SimpleCommand(DeleteDraggedConnect);
171173
CommandAddNodeWithUndoRedo = new Command<MyPoint, ViewModelNode>(AddNodeWithUndoRedo, DeleteNodeWithUndoRedo, NotSaved);
172-
CommandAddConnectWithUndoRedo = new Command<ViewModelConnect, ViewModelConnect>(AddConnectWithUndoRedo, DeleteConnectWithUndoRedo, NotSaved);
174+
//CommandAddConnectWithUndoRedo = new Command<ViewModelConnect, ViewModelConnect>(AddConnectWithUndoRedo, DeleteConnectWithUndoRedo, NotSaved);
173175
CommandDeleteSelectedNodes = new Command<ElementsForDelete, ElementsForDelete>(DeleteSelectedNodes, UnDeleteSelectedNodes, NotSaved);
174176
CommandDeleteSelectedConnectors = new Command<List<(int index, ViewModelConnector element)>, List<(int index, ViewModelConnector connector)>>(DeleteSelectedConnectors, UnDeleteSelectedConnectors, NotSaved);
175177
CommandDeleteSelectedElements = new Command<DeleteMode, DeleteMode>(DeleteSelectedElements, UnDeleteSelectedElements);
@@ -351,20 +353,35 @@ private void AddDraggedConnect(ViewModelConnector fromConnector)
351353
private void DeleteDraggedConnect()
352354
{
353355
Connects.Remove(DraggedConnect);
356+
DraggedConnect.FromConnector.Connect = null;
357+
354358
}
355-
private ViewModelConnect AddConnectWithUndoRedo(ViewModelConnect parameter, ViewModelConnect result)
359+
private ViewModelConnector AddConnectorWithConnect(ViewModelConnector parameter, ViewModelConnector result)
356360
{
357361
if (result == null)
358362
return parameter;
359-
result.FromConnector.Node.CommandAddConnectorWithConnect.Execute((1, result.FromConnector));
363+
result.Node.CommandAddConnectorWithConnect.Execute((1, result));
360364
return result;
361365
}
362-
private ViewModelConnect DeleteConnectWithUndoRedo(ViewModelConnect parameter, ViewModelConnect result)
366+
private ViewModelConnector DeleteConnectorWithConnect(ViewModelConnector parameter, ViewModelConnector result)
363367
{
364-
result.FromConnector.Node.CommandDeleteConnectorWithConnect.Execute(result.FromConnector);
368+
result.Node.CommandDeleteConnectorWithConnect.Execute(result);
365369
return parameter;
366370
}
367371

372+
//private ViewModelConnect AddConnectWithUndoRedo(ViewModelConnect parameter, ViewModelConnect result)
373+
//{
374+
// if (result == null)
375+
// return parameter;
376+
// result.FromConnector.Node.CommandAddConnectorWithConnect.Execute((1, result.FromConnector));
377+
// return result;
378+
//}
379+
//private ViewModelConnect DeleteConnectWithUndoRedo(ViewModelConnect parameter, ViewModelConnect result)
380+
//{
381+
// result.FromConnector.Node.CommandDeleteConnectorWithConnect.Execute(result.FromConnector);
382+
// return parameter;
383+
//}
384+
368385

369386
private void AddConnect(ViewModelConnect ViewModelConnect)
370387
{

0 commit comments

Comments
 (0)