diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-04-08 00:45:08 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-04-08 00:45:08 +0300 |
| commit | 1608e69a417bc5e40a607c3958c4a60f19f66f1a (patch) | |
| tree | c04d78e2abb5aac8c22350c90cb8b469f6eca30d /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs | |
| parent | 08dd6000fe3a218221003876a699f448835b62e4 (diff) | |
| parent | b4a71931ea52636c6b36376aa9d71697ccf73524 (diff) | |
| download | Tango-1608e69a417bc5e40a607c3958c4a60f19f66f1a.tar.gz Tango-1608e69a417bc5e40a607c3958c4a60f19f66f1a.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs')
| -rw-r--r-- | Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs new file mode 100644 index 000000000..7121e6ce0 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media.Imaging; +using Tango.Scripting.IDE.Windows; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Notifications +{ + public class DefaultNotificationManager : INotificationManager + { + public Task<TViewModel> ShowDialog<TViewModel, TView>(TViewModel viewModel, TView view) + where TViewModel : IDEDialogViewModel + where TView : FrameworkElement + { + TaskCompletionSource<TViewModel> source = new TaskCompletionSource<TViewModel>(); + + Application.Current.Dispatcher.BeginInvoke(new Action(() => + { + DialogWindow window = new DialogWindow(); + window.Title = viewModel.Title; + window.Content = view; + view.DataContext = viewModel; + window.WindowStartupLocation = WindowStartupLocation.CenterOwner; + window.Owner = Application.Current.MainWindow; + viewModel.Accepted += () => + { + window.Close(); + source.SetResult(viewModel); + }; + viewModel.Canceled += () => + { + window.Close(); + source.SetResult(viewModel); + }; + window.ShowDialog(); + })); + + return source.Task; + } + + public Task<TViewModel> ShowDialog<TViewModel>(TViewModel viewModel) where TViewModel : IDEDialogViewModel + { + var modelName = typeof(TViewModel).Name; + var viewName = modelName.Replace("VM", ""); + var viewType = typeof(TViewModel).Assembly.GetType(typeof(TViewModel).Namespace + "." + viewName); + var view = Activator.CreateInstance(viewType) as FrameworkElement; + return ShowDialog(viewModel, view); + } + + public Task<TViewModel> ShowDialog<TViewModel>() where TViewModel : IDEDialogViewModel + { + return ShowDialog(Activator.CreateInstance<TViewModel>()); + } + + public Task ShowError(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowInfo(string title, string message) + { + throw new NotImplementedException(); + } + + public ProgressNotificationHandler ShowProgress(string title, string message, bool canCancel = false) + { + throw new NotImplementedException(); + } + + public Task<bool> ShowQuestion(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowSuccess(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowWarning(string title, string message) + { + throw new NotImplementedException(); + } + + private Task ShowMessageBox(String title, String message, bool hasCancel, BitmapSource icon) + { + return null; + } + } +} |
