///--------------------------------------------------------------------------------
 /// <summary>This method sets the default values.</summary>
 ///--------------------------------------------------------------------------------
 protected override void OnSetDefaults()
 {
     if (StageTransition.ReverseInstance != null)
     {
         EditStageTransition.TransformDataFromObject(StageTransition.ReverseInstance, null, false);
     }
     else if (StageTransition.IsAutoUpdated == true)
     {
         EditStageTransition.TransformDataFromObject(StageTransition, null, false);
     }
     else
     {
         StageTransition newStageTransition = new StageTransition();
         newStageTransition.StageTransitionID = EditStageTransition.StageTransitionID;
         EditStageTransition.TransformDataFromObject(newStageTransition, null, false);
     }
     EditStageTransition.ResetModified(true);
 }
        ///--------------------------------------------------------------------------------
        /// <summary>This method updates the view model data and sends update command back
        /// to the solution builder.</summary>
        ///--------------------------------------------------------------------------------
        protected override void OnUpdate()
        {
            // set up reverse engineering instance if not present
            if (StageTransition.ReverseInstance == null && StageTransition.IsAutoUpdated == true)
            {
                StageTransition.ReverseInstance = new StageTransition();
                StageTransition.ReverseInstance.TransformDataFromObject(StageTransition, null, false);

                // perform the update of EditStageTransition back to StageTransition
                StageTransition.TransformDataFromObject(EditStageTransition, null, false);
                StageTransition.IsAutoUpdated = false;
            }
            else if (StageTransition.ReverseInstance != null)
            {
                EditStageTransition.ResetModified(StageTransition.ReverseInstance.IsModified);
                if (EditStageTransition.Equals(StageTransition.ReverseInstance))
                {
                    // perform the update of EditStageTransition back to StageTransition
                    StageTransition.TransformDataFromObject(EditStageTransition, null, false);
                    StageTransition.IsAutoUpdated = true;
                }
                else
                {
                    // perform the update of EditStageTransition back to StageTransition
                    StageTransition.TransformDataFromObject(EditStageTransition, null, false);
                    StageTransition.IsAutoUpdated = false;
                }
            }
            else
            {
                // perform the update of EditStageTransition back to StageTransition
                StageTransition.TransformDataFromObject(EditStageTransition, null, false);
                StageTransition.IsAutoUpdated = false;
            }
            StageTransition.ForwardInstance = null;
            if (StageTransitionNameCustomized || FromStageIDCustomized || DescriptionCustomized || TagsCustomized)
            {
                StageTransition.ForwardInstance = new StageTransition();
                StageTransition.ForwardInstance.StageTransitionID = EditStageTransition.StageTransitionID;
                StageTransition.SpecSourceName = StageTransition.DefaultSourceName;
                if (StageTransitionNameCustomized)
                {
                    StageTransition.ForwardInstance.StageTransitionName = EditStageTransition.StageTransitionName;
                }
                if (FromStageIDCustomized)
                {
                    StageTransition.ForwardInstance.FromStageID = EditStageTransition.FromStageID;
                }
                if (DescriptionCustomized)
                {
                    StageTransition.ForwardInstance.Description = EditStageTransition.Description;
                }
                if (TagsCustomized)
                {
                    StageTransition.ForwardInstance.Tags = EditStageTransition.Tags;
                }
            }
            EditStageTransition.ResetModified(false);
            OnUpdated(this, null);

            // send update back to solution builder
            SendEditStageTransitionPerformed();
        }
 ///--------------------------------------------------------------------------------
 /// <summary>This method resets the data.</summary>
 ///--------------------------------------------------------------------------------
 protected override void OnReset()
 {
     EditStageTransition.TransformDataFromObject(StageTransition, null, false);
     EditStageTransition.ResetModified(false);
 }