Esempio n. 1
0
        public static AbstractCommandModel FromButtonWrapper(AbstractDialogModel dialog, AbstractButton wrapper)
        {
            var result = MapButtonWrapperToModel(dialog, wrapper);
            if (result == null)
            {
                Log.WarnFormat("Cannot instatiate model for wrapper of type {0}", wrapper.GetType().Name);
                return null;
            }

            result.Enabled = wrapper.Enabled;
            result.Text = wrapper.Text;
            result.Visibility = wrapper.Visible ? Visibility.Visible : Visibility.Collapsed;
            result.Target = wrapper.Target;
            result.IsDefaultButton = wrapper.IsDefaultButton;
            result.IsCancelButton = wrapper.IsCancelButton;
            return result;
        }
Esempio n. 2
0
        private static AbstractCommandModel MapButtonWrapperToModel(AbstractDialogModel dialog, AbstractButton wrapper)
        {
            var kernal = Application.Current.CurrentKernel();
            var modelParameter = new ConstructorArgument("model", dialog);

            if (wrapper is ResultButton)
                return kernal.Get<ReturnResultModel>(
                    new IParameter[]
                        {
                            modelParameter,
                            new ConstructorArgument("result", (wrapper as ResultButton).TaskResult)
                        });

            if (wrapper is UrlButton)
            {
                var link = kernal.Get<UrlLink>();
                link.Target = (wrapper as UrlButton).Value;
                return kernal.Get<OpenLinkModel>(
                    new IParameter[]
                        {
                            modelParameter,
                            new ConstructorArgument("link", link)
                        }
                    );
            }

            if (wrapper is SettingsButton)
            {
                var link = kernal.Get<SettingsLink>();
                link.Target = (wrapper as SettingsButton).Key;
                link.Value = "true";
                return kernal.Get<ModifySettingsModel>(
                    new IParameter[]
                        {
                            modelParameter,
                            new ConstructorArgument("wrapper", link)
                        }
                    );
            }

            if (wrapper is TopicButton)
            {
                var value = (wrapper as TopicButton).Value;
                return kernal.Get<OpenTopicModel>(
                   new IParameter[]
                        {
                            modelParameter,
                            new ConstructorArgument("topic",value)
                        }
                   );
            }

            if (wrapper is StoredResultButton)
            {
                return kernal.Get<ReturnStoredResultModel>(
                    new IParameter[]
                        {
                            modelParameter,
                            new ConstructorArgument("key",(wrapper as StoredResultButton).Key)
                        });
            }

            if (wrapper is OpenAdvancedMenuButton)
            {
                var group = (wrapper as OpenAdvancedMenuButton).Group;
                return kernal.Get<OpenAdvancedButtonModel>(
                    new IParameter[]
                        {
                            modelParameter,
                            new ConstructorArgument("group", group)
                        });

            }

            if (wrapper is DisabledButton)
                return kernal.Get<DisabledCommandModel>(modelParameter);

            if (wrapper is CancelButton)
                return kernal.Get<CancelButtonModel>(modelParameter);

            if (wrapper is DoNothingButton)
                return kernal.Get<DoNothingCommandModel>(modelParameter);

            return null;
        }