diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-23 19:22:22 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-23 19:22:22 +0300 |
| commit | b4f429f9a54e87b7a73774780cacbce618defab0 (patch) | |
| tree | 44fa5c7ce6e4c43e9233324b1077dd764a9c9d5a /Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI | |
| parent | ee72ccffd9aafa79e2b5b444f4adc448c33c14df (diff) | |
| download | Tango-b4f429f9a54e87b7a73774780cacbce618defab0.tar.gz Tango-b4f429f9a54e87b7a73774780cacbce618defab0.zip | |
FSE LogViewer Basics.
Diffstat (limited to 'Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI')
19 files changed, 857 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.config b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.config new file mode 100644 index 000000000..731f6de6c --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.xaml b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.xaml new file mode 100644 index 000000000..d33871cb1 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.xaml @@ -0,0 +1,95 @@ +<Application x:Class="Tango.FSE.LogViewer.UI.App" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:local="clr-namespace:Tango.FSE.LogViewer.UI" + StartupUri="MainWindow.xaml"> + <Application.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + + <!--LOADS IN App.xaml.cs--> + + <!--<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Colors.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Styles.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />--> + + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.Slider.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Themes/RangeSlider.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" /> + + <!--LOADS IN App.xaml.cs--> + + <materialDesign:BundledTheme BaseTheme="Dark" PrimaryColor="LightBlue" SecondaryColor="Cyan" /> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /> + + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/materialdesigncolor.lightblue.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/materialdesigncolor.yellow.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.CheckBox.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.PopupBox.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.TextBlock.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Label.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Slider.xaml"> + </ResourceDictionary> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.ProgressBar.xaml"/> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ComboBox.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Menu.xaml" /> + <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Slider.xaml" /> + + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Converters.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Images.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Colors.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Fonts.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Styles.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Controls.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/Graphs.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Resources/MahApps.xaml" /> + + <ResourceDictionary> + <!--OVERRIDE MAHAPPS--> + <SolidColorBrush x:Key="HighlightBrush" Color="{DynamicResource Primary700}"/> + <SolidColorBrush x:Key="AccentBaseColorBrush" Color="{DynamicResource Primary600}" /> + <SolidColorBrush x:Key="AccentColorBrush" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="AccentColorBrush2" Color="{DynamicResource Primary400}"/> + <SolidColorBrush x:Key="AccentColorBrush3" Color="{DynamicResource Primary300}"/> + <SolidColorBrush x:Key="AccentColorBrush4" Color="{DynamicResource Primary200}"/> + <SolidColorBrush x:Key="WindowTitleColorBrush" Color="{DynamicResource Primary700}"/> + <SolidColorBrush x:Key="AccentSelectedColorBrush" Color="{DynamicResource Primary500Foreground}"/> + <LinearGradientBrush x:Key="ProgressBrush" EndPoint="0.001,0.5" StartPoint="1.002,0.5"> + <GradientStop Color="{DynamicResource Primary700}" Offset="0"/> + <GradientStop Color="{DynamicResource Primary300}" Offset="1"/> + </LinearGradientBrush> + <SolidColorBrush x:Key="CheckmarkFill" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="RightArrowFill" Color="{DynamicResource Primary500}"/> + <SolidColorBrush x:Key="IdealForegroundColorBrush" Color="{DynamicResource Primary500Foreground}"/> + <SolidColorBrush x:Key="IdealForegroundDisabledBrush" Color="{DynamicResource Primary500}" Opacity="0.4"/> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchBrush.Win10" Color="{DynamicResource Primary500}" /> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchMouseOverBrush.Win10" Color="{DynamicResource Primary400}" /> + <SolidColorBrush x:Key="MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorCheckedBrush.Win10" Color="{DynamicResource Primary500Foreground}" /> + </ResourceDictionary> + + </ResourceDictionary.MergedDictionaries> + </ResourceDictionary> + </Application.Resources> +</Application> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.xaml.cs new file mode 100644 index 000000000..05f20d822 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace Tango.FSE.LogViewer.UI +{ + /// <summary> + /// Interaction logic for App.xaml + /// </summary> + public partial class App : Application + { + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/LogViewerViewModel.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/LogViewerViewModel.cs new file mode 100644 index 000000000..f61984b7d --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/LogViewerViewModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.FSE.Common.Notifications; +using Tango.SharedUI; + +namespace Tango.FSE.LogViewer.UI +{ + public abstract class LogViewerViewModel : ViewModel + { + [TangoInject] + public INotificationProvider NotificationProvider { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/MainWindow.xaml b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/MainWindow.xaml new file mode 100644 index 000000000..0b602ea14 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/MainWindow.xaml @@ -0,0 +1,41 @@ +<mahapps:MetroWindow x:Class="Tango.FSE.LogViewer.UI.MainWindow" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:commonControls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:views="clr-namespace:Tango.FSE.LogViewer.UI.Views" + xmlns:local="clr-namespace:Tango.FSE.LogViewer.UI" + mc:Ignorable="d" + Title="Tango FSE - Log Viewer" + Height="720" + Width="1280" + WindowStartupLocation="CenterScreen" + TextElement.Foreground="{StaticResource FSE_PrimaryForegroundBrush}" + Foreground="{StaticResource FSE_PrimaryForegroundBrush}" + Background="{StaticResource FSE_PrimaryBackgroundBrush}" + TextElement.FontSize="{StaticResource FSE_DefaultFontSize}" + TitleCharacterCasing="Normal" + UseNoneWindowStyle="true" + EnableDWMDropShadow="True" + MinWidth="600" + MinHeight="400" + BorderThickness="1" + BorderBrush="Gray" + FontFamily="{StaticResource flexo}" + WindowTitleBrush="{StaticResource FSE_PrimaryBackgroundBrush}"> + <Grid x:Name="mainGrid"> + <views:MainView/> + <Grid VerticalAlignment="Top" Height="40"> + <DockPanel> + <UniformGrid DockPanel.Dock="Right" Columns="3" HorizontalAlignment="Right" Width="130" Visibility="{Binding ApplicationManager.DisplayWindowControls,Converter={StaticResource BooleanToVisibilityConverter}}"> + <commonControls:IconButton Padding="8" x:Name="btnMinimize" Icon="WindowMinimize" /> + <commonControls:IconButton Padding="8" x:Name="btnMaximize" Icon="WindowMaximize" /> + <commonControls:IconButton Padding="8" x:Name="btnClose" Icon="WindowClose" /> + </UniformGrid> + <Grid Background="Transparent" x:Name="gridTitle" Margin="170 0 0 0" Height="25" VerticalAlignment="Top"></Grid> + </DockPanel> + </Grid> + </Grid> +</mahapps:MetroWindow> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/MainWindow.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/MainWindow.xaml.cs new file mode 100644 index 000000000..e2277c78b --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/MainWindow.xaml.cs @@ -0,0 +1,97 @@ +using MahApps.Metro.Controls; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.LogViewer.UI +{ + /// <summary> + /// Interaction logic for MainWindow.xaml + /// </summary> + public partial class MainWindow : MetroWindow + { + private Point _startPoint; + private bool _isMouseDown; + + public MainWindow() + { + InitializeComponent(); + + btnMinimize.Click += (_, __) => WindowState = WindowState.Minimized; + btnMaximize.Click += (_, __) => WindowState = WindowState == WindowState.Maximized ? WindowState = WindowState.Normal : WindowState = WindowState.Maximized; + btnClose.Click += (_, __) => Close(); + gridTitle.MouseLeftButtonDown += (x, e) => + { + Mouse.Capture(gridTitle); + + _startPoint = e.GetPosition(this); + + if (e.ClickCount > 1) + { + WindowState = WindowState == WindowState.Normal ? WindowState.Maximized : WindowState.Normal; + return; + } + + _isMouseDown = true; + }; + gridTitle.MouseLeftButtonUp += (x, e) => + { + _isMouseDown = false; + gridTitle.ReleaseMouseCapture(); + }; + gridTitle.MouseMove += GridTitle_MouseMove; + StateChanged += MainWindow_StateChanged; + } + + private void MainWindow_StateChanged(object sender, EventArgs e) + { + if (WindowState == WindowState.Maximized) + { + btnMaximize.Icon = MaterialDesignThemes.Wpf.PackIconKind.WindowRestore; + //_settings.WindowMaximizedOnStartup = true; + //_settings.Save(); + } + else if (WindowState == WindowState.Normal) + { + btnMaximize.Icon = MaterialDesignThemes.Wpf.PackIconKind.WindowMaximize; + //_settings.WindowMaximizedOnStartup = false; + //_settings.Save(); + } + } + + private void GridTitle_MouseMove(object sender, MouseEventArgs e) + { + if (_isMouseDown) + { + if (WindowState == WindowState.Maximized) + { + var previousWidth = Width; + WindowState = WindowState.Normal; + var currentWidth = Width; + var locationPrecentageBefore = _startPoint.X / previousWidth; + var newLocationX = currentWidth * locationPrecentageBefore; + _startPoint = new Point(newLocationX, _startPoint.Y); + } + else + { + Point pointToWindow = Mouse.GetPosition(this); + Point pointToScreen = PointToScreen(pointToWindow); + + Left = pointToScreen.X - _startPoint.X; + Top = pointToScreen.Y - _startPoint.Y; + } + } + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..65ebfe508 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/AssemblyInfo.cs @@ -0,0 +1,12 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango FSE Log Viewer")] +[assembly: AssemblyVersion("1.0.0.0")] + diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Resources.Designer.cs new file mode 100644 index 000000000..0ad159fe8 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.FSE.LogViewer.UI.Properties +{ + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.FSE.LogViewer.UI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Resources.resx b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Resources.resx @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Settings.Designer.cs new file mode 100644 index 000000000..591d42346 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.FSE.LogViewer.UI.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Settings.settings b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Properties/Settings.settings @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> + <Settings /> +</SettingsFile>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Tango.FSE.LogViewer.UI.csproj b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Tango.FSE.LogViewer.UI.csproj new file mode 100644 index 000000000..399ae3a39 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Tango.FSE.LogViewer.UI.csproj @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{44908607-2E91-4713-821E-C35E25430BA0}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>Tango.FSE.LogViewer.UI</RootNamespace> + <AssemblyName>Tango.FSE.LogViewer.UI</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <WarningLevel>4</WarningLevel> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xaml"> + <RequiredTargetFramework>4.0</RequiredTargetFramework> + </Reference> + <Reference Include="WindowsBase" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + </ItemGroup> + <ItemGroup> + <ApplicationDefinition Include="App.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </ApplicationDefinition> + <Compile Include="LogViewerViewModel.cs" /> + <Compile Include="ViewModelLocator.cs" /> + <Compile Include="ViewModels\LayoutViewVM.cs" /> + <Compile Include="ViewModels\MainViewVM.cs" /> + <Compile Include="Views\LayoutView.xaml.cs"> + <DependentUpon>LayoutView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\MainView.xaml.cs"> + <DependentUpon>MainView.xaml</DependentUpon> + </Compile> + <Page Include="MainWindow.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Compile Include="..\..\Versioning\GlobalVersionInfo.cs"> + <Link>GlobalVersionInfo.cs</Link> + </Compile> + <Compile Include="App.xaml.cs"> + <DependentUpon>App.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Compile Include="MainWindow.xaml.cs"> + <DependentUpon>MainWindow.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Page Include="Views\LayoutView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\MainView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="MahApps.Metro"> + <Version>1.6.5</Version> + </PackageReference> + <PackageReference Include="MaterialDesignThemes"> + <Version>3.0.1</Version> + </PackageReference> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj"> + <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project> + <Name>Tango.Core</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Settings\Tango.Settings.csproj"> + <Project>{d8f1ad85-526a-4f50-b6dc-d437af63d8d8}</Project> + <Name>Tango.Settings</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj"> + <Project>{8491D07B-C1F6-4B62-A412-41B9FD2D6538}</Project> + <Name>Tango.SharedUI</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.FSE.Common\Tango.FSE.Common.csproj"> + <Project>{bc37cccb-7392-4f78-8d1c-e9629e6e046e}</Project> + <Name>Tango.FSE.Common</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.FSE.UI\Tango.FSE.UI.csproj"> + <Project>{26c54a4f-315d-4b79-b163-eddde8f93a86}</Project> + <Name>Tango.FSE.UI</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModelLocator.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModelLocator.cs new file mode 100644 index 000000000..e5cae3106 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModelLocator.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.FSE.Common.Notifications; +using Tango.FSE.LogViewer.UI.ViewModels; +using Tango.FSE.UI.Notifications; + +namespace Tango.FSE.LogViewer.UI +{ + public static class ViewModelLocator + { + static ViewModelLocator() + { + TangoIOC.Default.Unregister<INotificationProvider>(); + + TangoIOC.Default.Register<INotificationProvider, DefaultNotificationProvider>(); + + TangoIOC.Default.Register<MainViewVM>(); + TangoIOC.Default.Register<LayoutViewVM>(); + } + + public static MainViewVM MainViewVM + { + get + { + return TangoIOC.Default.GetInstance<MainViewVM>(); + } + } + + public static LayoutViewVM LayoutViewVM + { + get + { + return TangoIOC.Default.GetInstance<LayoutViewVM>(); + } + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModels/LayoutViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModels/LayoutViewVM.cs new file mode 100644 index 000000000..be185a8df --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModels/LayoutViewVM.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Commands; + +namespace Tango.FSE.LogViewer.UI.ViewModels +{ + public class LayoutViewVM : LogViewerViewModel + { + public RelayCommand TestCommand { get; set; } + + public LayoutViewVM() + { + TestCommand = new RelayCommand(Test); + } + + private async void Test() + { + await NotificationProvider.ShowInfo("This is a test message."); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModels/MainViewVM.cs new file mode 100644 index 000000000..86512ce48 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/ViewModels/MainViewVM.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.FSE.LogViewer.UI.ViewModels +{ + public class MainViewVM : LogViewerViewModel + { + + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/LayoutView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/LayoutView.xaml new file mode 100644 index 000000000..908796d0e --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/LayoutView.xaml @@ -0,0 +1,21 @@ +<UserControl x:Class="Tango.FSE.LogViewer.UI.Views.LayoutView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:Tango.FSE.LogViewer.UI.Views" + xmlns:global="clr-namespace:Tango.FSE.LogViewer.UI" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:vm="clr-namespace:Tango.FSE.LogViewer.UI.ViewModels" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + d:DataContext="{d:DesignInstance Type=vm:LayoutViewVM, IsDesignTimeCreatable=False}" + DataContext="{x:Static global:ViewModelLocator.LayoutViewVM}" + Background="{StaticResource FSE_PrimaryBackgroundBrush}" + Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> + <Grid> + <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> + <Button Width="200" Height="50" Command="{Binding TestCommand}" Style="{StaticResource FSE_RaisedButton_Dark_Hover}">TEST ME</Button> + </StackPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/LayoutView.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/LayoutView.xaml.cs new file mode 100644 index 000000000..4cb39fb95 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/LayoutView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.LogViewer.UI.Views +{ + /// <summary> + /// Interaction logic for LayoutView.xaml + /// </summary> + public partial class LayoutView : UserControl + { + public LayoutView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/MainView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/MainView.xaml new file mode 100644 index 000000000..ef10527e4 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/MainView.xaml @@ -0,0 +1,42 @@ +<UserControl x:Class="Tango.FSE.LogViewer.UI.Views.MainView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:global="clr-namespace:Tango.FSE.LogViewer.UI" + xmlns:vm="clr-namespace:Tango.FSE.LogViewer.UI.ViewModels" + xmlns:uiControls="clr-namespace:Tango.FSE.UI.Controls;assembly=Tango.FSE.UI" + xmlns:local="clr-namespace:Tango.FSE.LogViewer.UI.Views" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" + d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" + DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + <Grid> + <DockPanel> + <Grid Height="40" DockPanel.Dock="Top" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}"> + + <StackPanel Margin="5 0 0 0" HorizontalAlignment="Left" Orientation="Horizontal"> + <Image Source="{StaticResource FSE_Machine_Full}" RenderOptions.BitmapScalingMode="Fant" Margin="8" /> + <TextBlock FontWeight="SemiBold" Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource AncestorType=Window},Path=Title,FallbackValue='Tango FSE - Log Viewer'}"></TextBlock> + </StackPanel> + + <Image Source="{StaticResource FSE_Twine_Logo_Colored}" RenderOptions.BitmapScalingMode="Fant" HorizontalAlignment="Center" Margin="5"></Image> + + <Polygon HorizontalAlignment="Right" Points="200,0 300,0 300,100 0,100" Width="250" Stretch="Fill"> + <Polygon.Fill> + <ImageBrush Viewport="0 0 800 300" ViewportUnits="Absolute" ImageSource="{StaticResource FSE_Abstract}" Stretch="None" Opacity="0.6" /> + </Polygon.Fill> + </Polygon> + </Grid> + <Grid Margin="0,-2,0,2"> + <Border x:Name="contentBorder" x:FieldModifier="public" BorderBrush="{StaticResource FSE_PrimaryBackgroundBrush}" BorderThickness="2"> + <local:LayoutView/> + </Border> + + <uiControls:NotificationsControl/> + + <Image IsHitTestVisible="False" Source="{StaticResource FSE_Shadow_Top}" VerticalAlignment="Top" Stretch="Fill" Height="10" Opacity="0.6" /> + </Grid> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/MainView.xaml.cs new file mode 100644 index 000000000..199998aa5 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.LogViewer.UI/Views/MainView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.LogViewer.UI.Views +{ + /// <summary> + /// Interaction logic for MainView.xaml + /// </summary> + public partial class MainView : UserControl + { + public MainView() + { + InitializeComponent(); + } + } +} |
