using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; using Tango.Core.Commands; using Tango.SharedUI; using Tango.Touch.Controls; namespace Tango.PPC.Common.Notifications { /// /// Represents the PPC user notification provider responsible for displaying information, alerts and dialogs to the user. /// public interface INotificationProvider { /// /// Gets the collection of notification items. /// ObservableCollection NotificationItems { get; } /// /// Gets the notification items view. /// ICollectionView NotificationItemsView { get; } /// /// Gets the collection of taskbar items. /// ObservableCollection TaskBarItems { get; } /// /// Gets the application bar items. /// ObservableCollection AppBarItems { get; } /// /// Gets a value indicating whether this instance has any application bar items. /// bool HasAppBarItems { get; } /// /// Gets a value indicating whether this instance has notification items. /// bool HasNotificationItems { get; } /// /// Gets the current message box. /// MessageBoxVM CurrentMessageBox { get; } /// /// Gets a value indicating whether this instance has message box. /// bool HasMessageBox { get; } /// /// Gets the current dialog. /// FrameworkElement CurrentDialog { get; } /// /// Gets the current app button. /// AppButton CurrentAppButton { get; } /// /// Gets a value indicating whether this instance has a dialog. /// bool HasDialog { get; } /// /// Shows an information message box. /// /// The message. Task ShowInfo(String message); /// /// Shows warning message box. /// /// The message. Task ShowWarning(String message); /// /// Shows an error message box. /// /// The message. Task ShowError(String message); /// /// Shows a success message box. /// /// The message. Task ShowSuccess(String message); /// /// Shows a question message box. /// /// The message. Task ShowQuestion(String message); /// /// Inserts the notification item to the bottom of the notifications collection. /// /// The item. NotificationItem PushNotification(NotificationItem item); /// /// Pushes the notification. /// /// /// NotificationItem PushNotification() where T : NotificationItem; /// /// Displays the specified dialog in a modal design. /// /// /// The data context. /// The view. /// Task ShowDialog(VM datacontext, FrameworkElement view) where VM : DialogViewVM; /// /// Displays the specified dialog in a modal design. /// The notification provider will try to locate the view automatically using conventions. /// /// /// The data context. /// Task ShowDialog(VM datacontext) where VM : DialogViewVM; /// /// Displays the specified dialog in a modal design. /// The data context instance will be automatically created. /// The notification provider will try to locate the view automatically using conventions. /// /// /// Task ShowDialog() where VM : DialogViewVM; /// /// Removed the specified notification item. /// /// The item. void PopNotification(NotificationItem item); /// /// Gets a value indicating whether this instance is in global busy state. /// bool IsInGlobalBusyState { get; } /// /// Sets the global busy message. /// /// The message. void SetGlobalBusyMessage(String message); /// /// Releases the global busy message. /// void ReleaseGlobalBusyMessage(); /// /// Gets the current global busy message. /// String GlobalBusyMessage { get; } /// /// Pushes the application bar item. /// /// The application bar item. /// AppBarItem PushAppBarItem(AppBarItem appBarItem); /// /// Pushes the application bar item. /// /// /// T PushAppBarItem() where T : AppBarItem; /// /// Pops the application bar item. /// /// The application bar item. void PopAppBarItem(AppBarItem appBarItem); /// /// Pushes the task bar item. /// /// The task bar item. /// TaskBarItem PushTaskBarItem(TaskBarItem taskBarItem); /// /// Handles the Push Task Bar Item event. /// /// /// TaskBarItem PushTaskBarItem() where T : TaskBarItem; /// /// Pops the task bar item. /// /// The task bar item. void PopTaskBarItem(TaskBarItem taskBarItem); /// /// Gets or sets a value indicating whether to allow notifications visibility. /// bool NotificationsVisible { get; set; } /// /// Pushes the app button. /// /// The app button. void PushAppButton(AppButton appButton); /// /// Pops the app button. /// /// The app button. void PopAppButton(AppButton appButton); } }