diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs | 117 |
1 files changed, 112 insertions, 5 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs index 6b7984faf..30e96bd0a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs @@ -7,19 +7,126 @@ using Tango.SharedUI; namespace Tango.MachineStudio.Common { - public abstract class StudioViewModel : ViewModel + /// <summary> + /// Represents a Machine Studio view model + /// </summary> + /// <typeparam name="Module">The type of the module.</typeparam> + /// <seealso cref="Tango.SharedUI.ViewModel" /> + /// <seealso cref="Tango.MachineStudio.Common.IStudioViewModel" /> + public abstract class StudioViewModel<Module> : ViewModel, IStudioViewModel where Module : IStudioModule { - public abstract Task<bool> RequestShutdown(); + /// <summary> + /// Initializes a new instance of the <see cref="StudioViewModel{Module}"/> class. + /// </summary> + public StudioViewModel() : base() + { + + } + + /// <summary> + /// Called when another module has wants to navigate to this module with some arguments. + /// </summary> + /// <param name="args">The arguments.</param> + public virtual void OnModuleRequest(params object[] args) + { + + } + + /// <summary> + /// Called when the user has navigated out of the module. + /// </summary> + public virtual void OnNavigatedFrom() + { + + } + + /// <summary> + /// Called when the user has navigated in to the module. + /// </summary> + public virtual void OnNavigatedTo() + { + + } + + /// <summary> + /// Called before the application is shutting down. + /// Return false to cancel the shutdown in case an important process is in progress. + /// </summary> + /// <returns></returns> + public virtual Task<bool> OnShutdownRequest() + { + return Task.FromResult(true); + } + + /// <summary> + /// Called when application is shutting down. + /// </summary> + public virtual void OnShuttingDown() + { + + } } - public abstract class StudioViewModel<T> : ViewModel<T> where T : IView + /// <summary> + /// Represents a Machine Studio view model. + /// </summary> + /// <typeparam name="Module">The type of the module.</typeparam> + /// <typeparam name="T"></typeparam> + /// <seealso cref="Tango.SharedUI.ViewModel" /> + /// <seealso cref="Tango.MachineStudio.Common.IStudioViewModel" /> + public abstract class StudioViewModel<Module, T> : ViewModel<T>, IStudioViewModel where Module : IStudioModule where T : IView { - public abstract Task<bool> OnShutdownRequest(); - + /// <summary> + /// Initializes a new instance of the <see cref="StudioViewModel{Module, T}"/> class. + /// </summary> + /// <param name="view">The view.</param> public StudioViewModel(T view) : base(view) { } + + /// <summary> + /// Called when another module has wants to navigate to this module with some arguments. + /// </summary> + /// <param name="args">The arguments.</param> + public virtual void OnModuleRequest(params object[] args) + { + + } + + /// <summary> + /// Called when the user has navigated out of the module. + /// </summary> + public virtual void OnNavigatedFrom() + { + + } + + /// <summary> + /// Called when the user has navigated in to the module. + /// </summary> + public virtual void OnNavigatedTo() + { + + } + + /// <summary> + /// Called before the application is shutting down. + /// Return false to cancel the shutdown in case an important process is in progress. + /// </summary> + /// <returns></returns> + public virtual Task<bool> OnShutdownRequest() + { + return Task.FromResult(true); + } + + /// <summary> + /// Called when application is shutting down. + /// </summary> + public virtual void OnShuttingDown() + { + + } } } |
