Пример #1
0
        /// <summary>
        /// Selects the proper addon that can handle the action request.
        /// </summary>
        public static ActionResponse DispatchAction(ActionRequest request)
        {
            ActionResponse response = null;

            switch (request.ActionType)
            {
                case ActionType.ActionSaveProperties:
                    if (propertyAddon != null)
                    {
                        PropBaseCtl propCtl = (propertyAddon.AddonPanel as PropBaseCtl);
                        if (propCtl != null)
                        {
                            propCtl.SaveProperties();
                        }
                    }
                    break;

                case ActionType.ActionBeginEdit:
                    {
                        // Stop editing properties if it's the case.
                        if (propertyAddon != null)
                        {
                            PropBaseCtl propCtl = (propertyAddon.AddonPanel as PropBaseCtl);
                            if (propCtl != null)
                            {
                                propCtl.EndEdit();
                                propertyAddon = null;
                            }
                        }

                        propertyAddon = SelectPropertyAddon(request.Items);
                        response = new ActionResponse(request, propertyAddon);
                    }
                    break;

                case ActionType.ActionBeginPreview:
                    {
                        // Stop previewing if it's the case.
                        if (request.ActionType == ActionType.ActionBeginPreview &&
                            previewAddon != null)
                        {
                            PreviewBaseCtl previewCtl = (previewAddon.AddonPanel as PreviewBaseCtl);
                            if (previewCtl != null)
                            {
                                previewCtl.EndPreview();
                                AddonsCore.Instance.FirePreviewEnded();
                                previewAddon = null;
                            }
                        }

                        previewAddon = SelectPreviewAddon(request.Items);
                        response = new ActionResponse(request, previewAddon);
                    }
                    break;

                default:
                    response = null;
                    break;
            }

            return response;
        }
Пример #2
0
 /// <summary>
 /// Verifies if the given action response represents
 /// a failed action or not.
 /// </summary>
 public static bool IsFailedAction(ActionResponse response)
 {
     return (response == null || response.TargetAddon == null || response.failed);
 }
 /// <summary>
 /// Verifies if the given action response represents
 /// a failed action or not.
 /// </summary>
 public static bool IsFailedAction(ActionResponse response)
 {
     return(response == null || response.TargetAddon == null || response.failed);
 }