Ejemplo n.º 1
0
 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
        }
Ejemplo n.º 12
0
        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
        }
Ejemplo n.º 15
0
 protected TrackableObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.TrackableObject trackableObject) : base(actionType, controller)
 {
     Id = trackableObject.Id;
 }
Ejemplo n.º 16
0
 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));
 }
Ejemplo n.º 17
0
 protected PositionableObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.PositionableObject positionableObject) : base(actionType, controller, positionableObject)
 {
     LeftTopPosition = positionableObject.LeftTopPosition;
 }
Ejemplo n.º 18
0
 protected LayeredPositionableObjectRecord(ActionTypes actionType, ViewModel.ViewModelController controller, ObjectModel.LayeredPositionableObject positionableObject) : base(actionType, controller, positionableObject)
 {
     CurrentLayerId = positionableObject.CurrentLayer.Id;
 }
Ejemplo n.º 19
0
 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;
 }
Ejemplo n.º 21
0
 public void Dispose()
 {
     System.Threading.Interlocked.Decrement(ref Controller.InhibitUndoRedoCount);
     Controller = null;
 }
Ejemplo n.º 22
0
 internal DontLogBlock(ViewModel.ViewModelController controller)
 {
     Controller = controller;
     System.Threading.Interlocked.Increment(ref Controller.InhibitUndoRedoCount);
 }
Ejemplo n.º 23
0
        //  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
        }
Ejemplo n.º 29
0
        //  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();
 }