aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-05-02 17:36:54 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-05-02 17:36:54 +0300
commitee697f7a3350d0a97bddee4de3a2ae4f9d285052 (patch)
tree2dc2e3bb811b0d89a3c4c51801c1572966fcee7c /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
parent73c4b814f1f28170ae72723568189096413c3564 (diff)
downloadTango-ee697f7a3350d0a97bddee4de3a2ae4f9d285052.tar.gz
Tango-ee697f7a3350d0a97bddee4de3a2ae4f9d285052.zip
merge
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Converters/PermissionToVisibilityConverter.cs38
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs8
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs89
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj4
5 files changed, 144 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Converters/PermissionToVisibilityConverter.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Converters/PermissionToVisibilityConverter.cs
new file mode 100644
index 000000000..08e7d1c12
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Converters/PermissionToVisibilityConverter.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using Tango.BL.Entities;
+using Tango.BL.Enumerations;
+using Tango.Core.DI;
+using Tango.MachineStudio.Common.Authentication;
+
+namespace Tango.MachineStudio.Common.Converters
+{
+ public class PermissionToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ User user = value as User;
+
+ if (user != null)
+ {
+ if (user.HasPermission((Permissions)parameter))
+ {
+ return Visibility.Visible;
+ }
+ }
+
+ return Visibility.Collapsed;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs
index 35ed50cd9..4203a1e8b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs
@@ -38,5 +38,10 @@ namespace Tango.MachineStudio.Common
/// </summary>
/// <param name="args">The arguments.</param>
void OnModuleRequest(params object[] args);
+
+ /// <summary>
+ /// Called when the application has been started
+ /// </summary>
+ void OnApplicationStarted();
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
index be793ac81..1de18ac94 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Windows;
using Tango.Integration.Services;
namespace Tango.MachineStudio.Common.StudioApplication
@@ -53,5 +54,12 @@ namespace Tango.MachineStudio.Common.StudioApplication
/// Gets the machine studio application version.
/// </summary>
String Version { get; }
+
+ /// <summary>
+ /// Notify the application manager about an external opened window.
+ /// When application exists. All registered windows will be closed.
+ /// </summary>
+ /// <param name="window">The window.</param>
+ void RegisterOpenedWindow(Window window);
}
}
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>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
index e4a2720b9..ac6f84618 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
@@ -89,6 +89,7 @@
<DependentUpon>RealTimeGraphControl.xaml</DependentUpon>
</Compile>
<Compile Include="Controls\TableGrid.cs" />
+ <Compile Include="Converters\PermissionToVisibilityConverter.cs" />
<Compile Include="Converters\SecondsToGraphPointsConverter.cs" />
<Compile Include="Diagnostics\DefaultDiagnosticsFrameProvider.cs" />
<Compile Include="Diagnostics\IDiagnosticsFrameProvider.cs" />
@@ -287,5 +288,8 @@
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
+ <ItemGroup>
+ <Folder Include="MarkupExtensions\" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file