/// <summary>
        /// Initializes a new instance of the <see cref="OutputToMainWindowActionViewModel"/> class.
        /// </summary>
        /// <param name="action">The action.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <param name="parameterDescriptions">The parameter descriptions.</param>
        /// <param name="allDescriptions">All descriptions.</param>
        public OutputToMainWindowActionViewModel([NotNull] OutputToMainWindowAction action, [NotNull] ActionDescription actionDescriptor, [NotNull] IEnumerable <ParameterDescription> parameterDescriptions, [NotNull] IEnumerable <ActionDescription> allDescriptions)
            : base(action, actionDescriptor, parameterDescriptions, allDescriptions)
        {
            Assert.ArgumentNotNull(action, "action");
            Assert.ArgumentNotNull(actionDescriptor, "actionDescriptor");
            Assert.ArgumentNotNull(parameterDescriptions, "parameterDescriptions");
            Assert.ArgumentNotNull(allDescriptions, "allDescriptions");

            _action = action;
        }
        /// <summary>
        /// Clones this instance.
        /// </summary>
        /// <returns>A deep copy of this instance.</returns>
        public override ActionViewModelBase Clone()
        {
            var outputToMainWindowAction = new OutputToMainWindowAction();

            return(new OutputToMainWindowActionViewModel(outputToMainWindowAction, ActionDescriptor, ParametersModel.ParameterDescriptions, AllActionDescriptions)
            {
                BackgroundColor = BackgroundColor,
                TextColor = TextColor,
                TextToOutput = TextToOutput,
                ParametersModel = ParametersModel.Clone(outputToMainWindowAction.Parameters)
            });
        }