aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs
diff options
context:
space:
mode:
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.cs94
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;
+ }
+ }
+}