Ejemplo n.º 1
0
        /// <summary>
        /// Ask for confirmation
        /// </summary>
        /// <param name="title">Display Title with character limit</param>
        /// <param name="msg">Display message with character limit</param>
        public bool Confirm(string title = null, string msg = null)
        {
            var viewModel = new ConfirmDialogViewModel(title.LimitLength(20), msg.LimitLength(80));

            // Return dialogresult
            return(ShowDialog(viewModel) ?? false);
        }
 public ConfirmDialogView(ConfirmDialogViewModel viewModel)
 {
     InitializeComponent();
     DataContext    = _viewModel = viewModel;
     viewModel.View = this;
     Closed        += OnClosed;
 }
Ejemplo n.º 3
0
        public bool ShowConfirmationDialog(string messageText)
        {
            ShowChildWindowMessage message   = _messenger.CreateMessage <ShowChildWindowMessage>();
            ConfirmDialogViewModel viewModel = (ConfirmDialogViewModel)_viewModelFactory.GetChild <ConfirmDialogViewModel>(messageText);

            message.Content  = viewModel;
            message.IsDialog = true;
            _messenger.Send(message);
            return(viewModel.Status);
        }
Ejemplo n.º 4
0
        public ActionResult ConfirmDialog(Guid id, string url, string text)
        {
            ConfirmDialogViewModel cdm = new ConfirmDialogViewModel()
            {
                Id   = id,
                Url  = url,
                Text = text
            };

            return(PartialView(cdm));
        }
    public async Task ConfirmDialog_when_ClearSetting()
    {
        var model  = new MainModel(new MockFileSystem(), Scheduler.Immediate);
        var mainVM = new MainWindowViewModel(model);

        model.Initialize();
        await model.WaitIdleUI().Timeout(3000d);

        SettingAppViewModel settingVM = mainVM.SettingVM.Value;

        //ステージ 初期状態
        settingVM.IgnoreExtensions.Count
        .Should().BeGreaterThan(1, "設定がなにかあるはず");

        //ステージ 設定消去→確認ダイアログ表示
        Task taskClear1 = settingVM.ClearIgnoreExtensionsCommand.ExecuteAsync();

        mainVM.IsDialogOpen.Value
        .Should().BeTrue("確認ダイアログが開いているはず");

        mainVM.DialogContentVM.Value
        .Should().BeOfType <ConfirmDialogViewModel>("確認ダイアログが開いているはず");

        ConfirmDialogViewModel confirmVM = (mainVM.DialogContentVM.Value as ConfirmDialogViewModel) !;

        taskClear1.IsCompleted
        .Should().BeFalse("まだ確認ダイアログが開いたままのはず");

        //ステージ 確認ダイアログで拒否
        confirmVM.IsOkResult.Value = false;

        taskClear1.IsCompleted
        .Should().BeTrue("確認ダイアログが閉じたはず");
        mainVM.IsDialogOpen.Value
        .Should().BeFalse("確認ダイアログが閉じたはず");

        settingVM.IgnoreExtensions.Count
        .Should().BeGreaterThan(1, "設定はまだ消去されていないはず");

        //ステージ確認ダイアログでOK
        Task taskClear2 = settingVM.ClearIgnoreExtensionsCommand.ExecuteAsync();

        (mainVM.DialogContentVM.Value as ConfirmDialogViewModel) !.IsOkResult.Value = true;

        taskClear2.IsCompleted
        .Should().BeTrue("確認ダイアログが閉じたはず");
        mainVM.IsDialogOpen.Value
        .Should().BeFalse("確認ダイアログが閉じたはず");

        settingVM.IgnoreExtensions.Count
        .Should().Be(0, "設定が消去されたはず");
    }
Ejemplo n.º 6
0
        public MainWindowViewModel()
        {
            Dictionary <string, Page> pageCache = new Dictionary <string, Page>();

            Model = new MainWindowModel();
            Page  = Model.ToReactivePropertySlimAsSynchronized(m => m.Page);

            TransitPage = new ReactiveCommand <string>();
            TransitPage.Subscribe(page =>
            {
                if (!pageCache.ContainsKey(page))
                {
                    pageCache.Add(page, (Page)Activator.CreateInstance(null !, page)?.Unwrap() !);
                }
                Page.Value = pageCache[page] !;
            });

            ButtonPower = new AsyncReactiveCommand();
            ButtonPower.Subscribe(async _ =>
            {
                var vm = new ConfirmDialogViewModel {
                    Message = { Value = "Are you sure to quit the application?" }
                };
                var dialog = new ConfirmDialog
                {
                    DataContext = vm
                };
                var res = await DialogHost.Show(dialog, "MessageDialogHost");
                if (res is bool quit && quit)
                {
                    AUTDHandler.Instance.Dispose();
                    SettingManager.SaveSetting("settings.json");
                    Application.Current.Shutdown();
                }
            });

            OpenUrl = new ReactiveCommand <string>();
            OpenUrl.Subscribe(url =>
            {
                var psi = new ProcessStartInfo
                {
                    FileName        = url,
                    UseShellExecute = true
                };
                Process.Start(psi);
            });

            Save = new AsyncReactiveCommand();
            Save.Subscribe(async _ =>
            {
                var dialogArgs = new SaveFileDialogArguments
                {
                    Width   = 600,
                    Height  = 800,
                    Filters = "json files|*.json",
                    ForceFileExtensionOfFileFilter = true,
                    CreateNewDirectoryEnabled      = true
                };
                var result = await SaveFileDialog.ShowDialogAsync("MessageDialogHost", dialogArgs);
                if (result.Canceled)
                {
                    return;
                }
                try
                {
                    SettingManager.SaveSetting(result.File);
                }
                catch
                {
                    var vm = new ErrorDialogViewModel {
                        Message = { Value = "Failed to save settings." }
                    };
                    var dialog = new ErrorDialog
                    {
                        DataContext = vm
                    };
                    await DialogHost.Show(dialog, "MessageDialogHost");
                }
            });

            Load = new AsyncReactiveCommand();
            Load.Subscribe(async _ =>
            {
                var dialogArgs = new OpenFileDialogArguments
                {
                    Width   = 600,
                    Height  = 800,
                    Filters = "json files|*.json"
                };
                var result = await OpenFileDialog.ShowDialogAsync("MessageDialogHost", dialogArgs);
                if (result.Canceled)
                {
                    return;
                }
                try
                {
                    SettingManager.LoadSetting(result.File);
                }
                catch
                {
                    var vm = new ErrorDialogViewModel {
                        Message = { Value = "Failed to load settings." }
                    };
                    var dialog = new ErrorDialog
                    {
                        DataContext = vm
                    };
                    await DialogHost.Show(dialog, "MessageDialogHost");
                }
            });

            Start = AUTDHandler.Instance.IsRunning.Select(x => !x).ToAsyncReactiveCommand();
            Start.Subscribe(async _ =>
            {
                if (!AUTDHandler.Instance.IsOpen.Value)
                {
                    var res = await Task.Run(() => AUTDHandler.Instance.Open());
                    if (res != null)
                    {
                        var vm = new ErrorDialogViewModel {
                            Message = { Value = $"Failed to open AUTD: {res}.\nSee Link options." }
                        };
                        var dialog = new ErrorDialog
                        {
                            DataContext = vm
                        };
                        await DialogHost.Show(dialog, "MessageDialogHost");
                        return;
                    }
                }

                AUTDHandler.Instance.SendGain();
                AUTDHandler.Instance.SendModulation();
            });
            Stop = AUTDHandler.Instance.IsRunning.Select(x => x).ToReactiveCommand();
            Stop.Subscribe(_ =>
            {
                AUTDHandler.Instance.Stop();
            });
        }