aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs89
1 files changed, 89 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs
index 9c7e52d23..77fad1fc6 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs
@@ -13,6 +13,79 @@ namespace Tango.MachineStudio.Common
/// <typeparam name="Module">The type of the module.</typeparam>
/// <seealso cref="Tango.SharedUI.ViewModel" />
/// <seealso cref="Tango.MachineStudio.Common.IStudioViewModel" />
+ public abstract class StudioViewModelInternal : ViewModel, IStudioViewModel
+ {
+ /// <summary>
+ /// Gets or sets a value indicating whether this view model studio module is currently loaded.
+ /// </summary>
+ public bool IsModuleLoaded { get; private set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="StudioViewModel{Module}"/> class.
+ /// </summary>
+ public StudioViewModelInternal() : 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()
+ {
+ IsModuleLoaded = false;
+ }
+
+ /// <summary>
+ /// Called when the user has navigated in to the module.
+ /// </summary>
+ public virtual void OnNavigatedTo()
+ {
+ IsModuleLoaded = true;
+ }
+
+ /// <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()
+ {
+
+ }
+
+ /// <summary>
+ /// Called when the application has been started
+ /// </summary>
+ public virtual void OnApplicationStarted()
+ {
+
+ }
+ }
+
+ /// <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
{
/// <summary>
@@ -70,6 +143,14 @@ namespace Tango.MachineStudio.Common
{
}
+
+ /// <summary>
+ /// Called when the application has been started
+ /// </summary>
+ public virtual void OnApplicationStarted()
+ {
+
+ }
}
/// <summary>
@@ -91,6 +172,14 @@ namespace Tango.MachineStudio.Common
}
/// <summary>
+ /// Called when the application has been started
+ /// </summary>
+ public virtual void OnApplicationStarted()
+ {
+
+ }
+
+ /// <summary>
/// Called when another module has wants to navigate to this module with some arguments.
/// </summary>
/// <param name="args">The arguments.</param>