internal AtomicBlock(ViewModel.ViewModelController controller, string description) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); Controller = controller; UndoUnit = new UndoRedo.ParentRecord(controller, description); controller.UndoManager.Open(UndoUnit); }
internal AddStateRecord(ViewModel.ViewModelController controller, ViewModel.State state) : base(ActionTypes.AddState, controller, state) { StateType = state.StateType; #if DEBUGUNDOREDO Debug.WriteLine($@">>> AddStateRecord.AddStateRecord: Created {UnitDescription} record, ID: {Id}, Name: {Name}"); #endif }
internal SetLayerActiveRecord(ViewModel.ViewModelController controller, DesignerControl designer, ViewModel.Layer newLayer, ViewModel.Layer oldLayer) : base(ActionTypes.AddLayer, controller, newLayer) { Designer = designer; OldLayerId = oldLayer?.Id ?? TrackableObject.NullId; #if DEBUGUNDOREDO Debug.WriteLine($@">>> SetLayerActiveRecord.SetLayerActiveRecord: Created {UnitDescription} record, ID: {Id}, Name: {newLayer.Name}, Old Layer ID: {OldLayerId}, Old Layer Name: {oldLayer?.Name ?? "<null>"}"); #endif }
internal DeleteActionReferenceRecord(ViewModel.ViewModelController controller, ViewModel.ActionReference actionReference) : base(ActionTypes.DeleteActionReference, controller, actionReference) { TransitionId = actionReference.Transition.Id; Slot = actionReference.Transition.ActionReferences.IndexOf(actionReference); #if DEBUGUNDOREDO Debug.WriteLine($@">>> DeleteActionReferenceRecord.DeleteActionReferenceRecord: Created {UnitDescription} record, ID: {Id}, TransitionId: {TransitionId}, Slot: {Slot}"); #endif }
// Constructor for use by Redo internal TransitionHost(ViewModel.ViewModelController controller, UndoRedo.LayeredPositionableObjectRecord redoRecord) : base(controller, redoRecord) { using (new UndoRedo.DontLogBlock(Controller)) { TransitionsFrom = new ObservableCollection <ObjectModel.ITransition>(); TransitionsTo = new ObservableCollection <ObjectModel.ITransition>(); } }
internal DeleteLayerMemberRecord(ViewModel.ViewModelController controller, ObjectModel.LayerPosition layerPosition, ObjectModel.ITransitionEndpoint member) : base(ActionTypes.RemoveLayerMember, controller, layerPosition) { LayerId = layerPosition.LayerId; MemberId = member.Id; #if DEBUGUNDOREDO Debug.WriteLine($@">>> DeleteLayerMemberRecord.DeleteLayerMemberRecord: Created {UnitDescription} record, ID: {Id}, LayerId:{LayerId}, NewMemberId: {MemberId}"); #endif }
internal ListValuedPropertyChangedRecord(ViewModel.ViewModelController controller, TrackableObject trackableObject, string propertyName, IEnumerable <string> targetList) : base(ActionTypes.ChangePropertyList, controller, trackableObject) { ObjectType = trackableObject.GetType().ToString(); PropertyName = propertyName; Value = targetList.ToArray <string>(); #if DEBUGUNDOREDO Debug.WriteLine($@">>> ListValuedPropertyChangedRecord.ListValuedPropertyChangedRecord: Created {UnitDescription} record, Id: {Id}, PropertyName: {PropertyName}, Value: {ArrayToString(Value)}"); #endif }
internal PropertyChangedRecord(ViewModel.ViewModelController controller, TrackableObject trackableObject, string propertyName, string v) : base(ActionTypes.ChangeProperty, controller, trackableObject) { ObjectType = trackableObject.GetType().ToString(); PropertyName = propertyName; Value = v; #if DEBUGUNDOREDO Debug.WriteLine($@">>> PropertyChangedRecord.PropertyChangedRecord: Created {UnitDescription} record, Id: {Id}, PropertyName: {PropertyName}, Value: {v}"); #endif }
internal AddLayerRecord(ViewModel.ViewModelController controller, ViewModel.Layer layer) : base(ActionTypes.AddLayer, controller, layer) { DefaultGroupStatus = layer.DefaultGroupStatus; MemberIds = layer.Members.Select(m => m.Id).ToArray(); #if DEBUGUNDOREDO Debug.WriteLine($@">>> AddLayerRecord.AddLayerRecord: Created {UnitDescription} record, ID: {Id}, Name: {Name}"); #endif }
internal AddActionReferenceRecord(ViewModel.ViewModelController controller, ViewModel.ActionReference actionReference, int slot) : base(ActionTypes.AddActionReference, controller, actionReference) { TransitionId = actionReference.Transition.Id; ActionId = actionReference.Action.Id; Slot = slot; #if DEBUGUNDOREDO Debug.WriteLine($@">>> AddActionReferenceRecord.AddActionReferenceRecord: Created {UnitDescription} record, ID: {Id}, TransitionId: {TransitionId}, ActionId: {ActionId}, Slot: {Slot}"); #endif }
internal AddLayerMemberRecord(ViewModel.ViewModelController controller, ObjectModel.LayerPosition layerPosition, ObjectModel.ILayeredPositionableObject newMember) : base(ActionTypes.AddLayerMember, controller, layerPosition) { LayerId = layerPosition.LayerId; NewMemberId = newMember.Id; LeftTopPosition = layerPosition.LeftTopPosition; GroupStatus = layerPosition.GroupStatus; #if DEBUGUNDOREDO Debug.WriteLine($@">>> AddLayerMemberRecord.AddLayerMemberRecord: Created {UnitDescription} record, ID: {Id}, LayerID: {LayerId}, NewMemberId: {NewMemberId}"); #endif }
internal ParentRecord(ViewModel.ViewModelController controller, string description) : base(ActionTypes.Parent, controller) { Children = new Stack <IOleUndoUnit>(); OpenChildren = new List <IOleParentUndoUnit>(); _unitDescription = $@"{description}"; Sequence = System.Threading.Interlocked.Increment(ref NextSequence); #if DEBUGUNDOREDO Debug.WriteLine($@">>> ParentRecord.ParentRecord({Sequence}/{UnitDescription}): Created parent record"); #endif }
internal AddTransitionRecord(ViewModel.ViewModelController controller, ViewModel.Transition transition) : base(ActionTypes.AddTransition, controller, transition) { TransitionType = transition.TransitionType; DestinationStateId = transition.DestinationStateId; SourceStateId = transition.SourceStateId; TriggerEventId = transition.TriggerEvent?.Id ?? TrackableObject.NullId; ActionIds = transition.ActionReferences.Select(a => a.Action.Id).ToArray(); #if DEBUGUNDOREDO Debug.WriteLine($@">>> AddTransitionRecord.AddTransitionRecord: Created {UnitDescription} record, Id: {Id}, Src: {SourceStateId}, Dest: {DestinationStateId}"); #endif }
internal DeleteGroupRecord(ViewModel.ViewModelController controller, ViewModel.Group group) : base(ActionTypes.AddEventType, controller, group) { #if DEBUGUNDOREDO Debug.WriteLine($@">>> DeleteGroupRecord.DeleteGroupRecord: Created {UnitDescription} record, ID: {Id}, Name: {Name}"); #endif }
protected TrackableObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.TrackableObject trackableObject) : base(actionType, controller) { Id = trackableObject.Id; }
protected NamedObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.NamedObject namedObject) : base(actionType, controller, namedObject) { CoNamedObjectId = namedObject.CoNamedObjectId; Name = (namedObject.Name == null ? null : string.Copy(namedObject.Name)); }
protected PositionableObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.PositionableObject positionableObject) : base(actionType, controller, positionableObject) { LeftTopPosition = positionableObject.LeftTopPosition; }
protected LayeredPositionableObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.LayeredPositionableObject positionableObject) : base(actionType, controller, positionableObject) { CurrentLayerId = positionableObject.CurrentLayer.Id; }
protected DocumentedObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.DocumentedObject documentedObject) : base(actionType, controller, documentedObject) { Description = (documentedObject.Description == null ? null : string.Copy(documentedObject.Description)); }
protected UndoRedoRecord(ActionTypes actionType, ViewModel.ViewModelController controller) { ActionType = actionType; Controller = controller; }
public void Dispose() { System.Threading.Interlocked.Decrement(ref Controller.InhibitUndoRedoCount); Controller = null; }
internal DontLogBlock(ViewModel.ViewModelController controller) { Controller = controller; System.Threading.Interlocked.Increment(ref Controller.InhibitUndoRedoCount); }
// Constructor for use by Redo internal Group(ViewModel.ViewModelController controller, UndoRedo.AddGroupRecord redoRecord) : base(controller, redoRecord) { }
internal DeleteLayerRecord(ViewModel.ViewModelController controller, ViewModel.Layer layer) : base(ActionTypes.DeleteLayer, controller, layer) { #if DEBUGUNDOREDO Debug.WriteLine($@">>> DeleteLayerRecord.DeleteLayerRecord: Created {UnitDescription} record, ID: {Id}, Name: {Name}"); #endif }
internal TransitionHost(ViewModel.ViewModelController controller, IEnumerable <NamedObject> existingObjectList, string rootName, ViewModel.Layer currentLayer) : base(controller, existingObjectList, rootName, currentLayer) { TransitionsFrom = new ObservableCollection <ObjectModel.ITransition>(); TransitionsTo = new ObservableCollection <ObjectModel.ITransition>(); }
// Constructor for use by Redo internal EventType(ViewModel.ViewModelController controller, UndoRedo.AddEventTypeRecord redoRecord) : base(controller, redoRecord) { }
internal AddEventTypeRecord(ViewModel.ViewModelController controller, ViewModel.EventType eventType) : base(ActionTypes.AddEventType, controller, eventType) { #if DEBUGUNDOREDO Debug.WriteLine($@">>> AddEventTypeRecord.AddEventTypeRecord: Created {UnitDescription} record, ID: {Id}, Name: {Name}"); #endif }
internal DeleteTransitionRecord(ViewModel.ViewModelController controller, ViewModel.Transition transition) : base(ActionTypes.AddEventType, controller, transition) { #if DEBUGUNDOREDO Debug.WriteLine($@">>> DeleteTransitionRecord.DeleteTransitionRecord: Created {UnitDescription} record, Id: {Id}"); #endif }
// Constructor for use by Redo internal Action(ViewModel.ViewModelController controller, UndoRedo.AddActionRecord redoRecord) : base(controller, redoRecord) { }
internal GuiChangeBlock(ViewModel.ViewModelController controller) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); Controller = controller; controller?.BeginGuiChange(); }