aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs95
1 files changed, 95 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs
new file mode 100644
index 000000000..1ed516b28
--- /dev/null
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using Tango.SharedUI;
+
+namespace Tango.Scripting.IDE.Notifications
+{
+ /// <summary>
+ /// Represents the IDE notification manager.
+ /// </summary>
+ public interface INotificationManager
+ {
+ /// <summary>
+ /// Displays the specified TView as a dialog and TViewModel as it's data context.
+ /// </summary>
+ /// <typeparam name="TViewModel">The type of the view model.</typeparam>
+ /// <typeparam name="TView">The type of the view.</typeparam>
+ /// <param name="viewModel">The view model.</param>
+ /// <param name="view">The view.</param>
+ /// <returns></returns>
+ Task<TViewModel> ShowDialog<TViewModel, TView>(TViewModel viewModel, TView view) where TViewModel : IDEDialogViewModel where TView : FrameworkElement;
+
+ /// <summary>
+ /// Finds (by convention )the appropriate view by the specified TViewModel name.
+ /// The search pattern is ViewVM - VM + View.
+ /// </summary>
+ /// <typeparam name="TViewModel">The type of the view model.</typeparam>
+ /// <param name="viewModel">The view model.</param>
+ /// <returns></returns>
+ Task<TViewModel> ShowDialog<TViewModel>(TViewModel viewModel) where TViewModel : IDEDialogViewModel;
+
+ /// <summary>
+ /// Finds (by convention )the appropriate view by the specified TViewModel name.
+ /// The search pattern is ViewVM - VM + View.
+ /// The view model instance will be created automatically and must contain a parameterless constructor.
+ /// </summary>
+ /// <typeparam name="TViewModel">The type of the view model.</typeparam>
+ /// <param name="viewModel">The view model.</param>
+ /// <returns></returns>
+ Task<TViewModel> ShowDialog<TViewModel>() where TViewModel : IDEDialogViewModel;
+
+ /// <summary>
+ /// Displays an error message.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ /// <param name="message">The message.</param>
+ /// <returns></returns>
+ Task ShowError(String title, String message);
+
+ /// <summary>
+ /// Displays an error message.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ /// <param name="message">The message.</param>
+ /// <returns></returns>
+ Task ShowInfo(String title, String message);
+
+ /// <summary>
+ /// Displays a warning message.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ /// <param name="message">The message.</param>
+ /// <returns></returns>
+ Task ShowWarning(String title, String message);
+
+ /// <summary>
+ /// Displays a positive message.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ /// <param name="message">The message.</param>
+ /// <returns></returns>
+ Task ShowSuccess(String title, String message);
+
+ /// <summary>
+ /// Displays a question and returns the result.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ /// <param name="message">The message.</param>
+ /// <returns></returns>
+ Task<bool> ShowQuestion(String title, String message);
+
+ /// <summary>
+ /// Displays an intermediate progress dialog and returns an instance of <see cref="ProgressNotificationHandler"/>.
+ /// Once the progress notification handler will be disposed the dialog will close.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="canCancel">if set to <c>true</c> the dialog will contain a cancel button.</param>
+ /// <returns></returns>
+ ProgressNotificationHandler ShowProgress(String title, String message, bool canCancel = false);
+ }
+}