From 858a2b114f78c87883510e3627874c7632f81177 Mon Sep 17 00:00:00 2001 From: Roy Date: Sun, 18 Feb 2018 09:23:15 +0200 Subject: Developer redesign.. --- .../DeveloperModule.cs | 2 +- .../Navigation/DeveloperNavigationManager.cs | 18 + .../Navigation/DeveloperNavigationView.cs | 14 + .../Tango.MachineStudio.Developer.csproj | 23 + .../ViewModelLocator.cs | 2 + .../ViewModels/MainViewVM.cs | 47 +- .../Views/DeveloperView.xaml | 24 + .../Views/DeveloperView.xaml.cs | 31 + .../Views/JobView.xaml | 1749 ++++++++++++++++++++ .../Views/JobView.xaml.cs | 140 ++ .../Views/MachineJobSelectionView.xaml | 202 +++ .../Views/MachineJobSelectionView.xaml.cs | 28 + .../Views/MainView.xaml | 4 +- 13 files changed, 2263 insertions(+), 21 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationView.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModule.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModule.cs index 6cdda4bc8..17c08adc4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModule.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/DeveloperModule.cs @@ -36,7 +36,7 @@ namespace Tango.MachineStudio.Developer /// /// Gets the module entry point view. /// - public override FrameworkElement MainView => new MainView(); + public override FrameworkElement MainView => new DeveloperView(); /// /// Gets the permission required to see and load this module. diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs new file mode 100644 index 000000000..297caf2dc --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.MachineStudio.Common.Navigation; +using Tango.MachineStudio.Developer.Views; + +namespace Tango.MachineStudio.Developer.Navigation +{ + public class DeveloperNavigationManager + { + public void NavigateTo(DeveloperNavigationView view) + { + DeveloperView.Instance.TransitionControl.AutoNavigate(view.ToString()); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationView.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationView.cs new file mode 100644 index 000000000..90548d1b4 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationView.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Developer.Navigation +{ + public enum DeveloperNavigationView + { + MachineJobSelectionView, + JobView + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj index f076106bc..1291fb0cd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj @@ -110,11 +110,22 @@ + + + + DeveloperView.xaml + + + JobView.xaml + + + MachineJobSelectionView.xaml + MainView.xaml @@ -129,6 +140,18 @@ MSBuild:Compile Designer + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs index 46c7ecf00..415643e3f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs @@ -1,6 +1,7 @@ using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Ioc; using Microsoft.Practices.ServiceLocation; +using Tango.MachineStudio.Developer.Navigation; using Tango.MachineStudio.Developer.ViewModels; using Tango.MachineStudio.Developer.Views; @@ -21,6 +22,7 @@ namespace Tango.MachineStudio.Developer SimpleIoc.Default.Register(() => MainView.Self); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); } public static MainViewVM MainViewVM diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 013129fc1..267f0bb0c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -32,6 +32,7 @@ using Tango.MachineStudio.Technician.ViewModels; using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.Video; using Tango.Integration.Services; +using Tango.MachineStudio.Developer.Navigation; namespace Tango.MachineStudio.Developer.ViewModels { @@ -46,6 +47,7 @@ namespace Tango.MachineStudio.Developer.ViewModels private Dictionary _controllers; private int _fullScreenGraphIndex; private JobHandler _jobHandler; + private DeveloperNavigationManager _navigation; #region Properties @@ -148,7 +150,6 @@ namespace Tango.MachineStudio.Developer.ViewModels { _selectedJob = value; RaisePropertyChangedAuto(); - OnSelectedJobChanged(); } } @@ -427,6 +428,11 @@ namespace Tango.MachineStudio.Developer.ViewModels /// public RelayCommand ExitFullScreenCommand { get; set; } + /// + /// Gets or sets the load job command. + /// + public RelayCommand LoadJobCommand { get; set; } + #endregion #region Constructors @@ -452,9 +458,10 @@ namespace Tango.MachineStudio.Developer.ViewModels /// The application manager. /// The notification provider. [PreferredConstructor] - public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IMainView view, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider) : this(view) + public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IMainView view, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation) : this(view) { _notification = notificationProvider; + _navigation = navigation; ApplicationManager = applicationManager; VideoCaptureProvider = videoCaptureProvider; diagnosticsFrameProvider.FrameReceived += DiagnosticsFrameProvider_FrameReceived; @@ -476,6 +483,7 @@ namespace Tango.MachineStudio.Developer.ViewModels StopJobCommand = new RelayCommand(StopJob, () => IsJobRunning); CloseJobCompletionStatusCommand = new RelayCommand(CloseJobCompletionStatusBar); ExitFullScreenCommand = new RelayCommand(ExitFullScreen); + LoadJobCommand = new RelayCommand(LoadJob, () => SelectedJob != null); ToggleCameraCommand = new RelayCommand(ToggleCamera); @@ -584,22 +592,6 @@ namespace Tango.MachineStudio.Developer.ViewModels } } - /// - /// Called when the selected job has been changed. - /// - protected virtual void OnSelectedJobChanged() - { - if (SelectedJob != null) - { - SelectedSegment = SelectedJob.Segments.FirstOrDefault(); - - SelectedJob.LengthChanged -= SelectedJob_LengthChanged; - SelectedJob.LengthChanged += SelectedJob_LengthChanged; - - UpdateEstimatedDuration(); - } - } - /// /// Called when the selected group history has been changed /// @@ -623,6 +615,25 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Private Methods + private void LoadJob() + { + if (SelectedJob != null) + { + Task.Factory.StartNew(() => + { + SelectedSegment = SelectedJob.Segments.FirstOrDefault(); + + SelectedJob.LengthChanged -= SelectedJob_LengthChanged; + SelectedJob.LengthChanged += SelectedJob_LengthChanged; + + UpdateEstimatedDuration(); + }); + + _navigation.NavigateTo(DeveloperNavigationView.JobView); + + } + } + private void ClearGraphs() { _controllers.ToList().ForEach(x => x.Value.Clear()); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml new file mode 100644 index 000000000..9a48f605b --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml.cs new file mode 100644 index 000000000..dfa7a2441 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/DeveloperView.xaml.cs @@ -0,0 +1,31 @@ +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.MachineStudio.Developer.Views +{ + /// + /// Interaction logic for DeveloperView.xaml + /// + public partial class DeveloperView : UserControl + { + public static DeveloperView Instance { get; set; } + + public DeveloperView() + { + InitializeComponent(); + Instance = this; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml new file mode 100644 index 000000000..17e0461e8 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -0,0 +1,1749 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transparent + + + + + + + + + + + + + + + + + + + SELECT COLOR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Job Completed Successfully + + + + + + + + + + + + + + + + + + + + + + + Job Failed To Complete + + + + + + + + + + + + + + + + + + + + + + + + + Job Aborted By User + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # + SEGMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name + + + + + + + + + + Winding Method + + + + + + + + + + Inter Segment + + + + + + + + + + + + + Lubrication + + + + + + + + + + + + Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Length + + + + + + + + MEDIA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LIQUID FACTORS ( Max Nanolitter/CM ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SEGMENT BRUSH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Color Space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESTIMATED DURATION: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT MACHINE & MEDIA + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs new file mode 100644 index 000000000..a030cf885 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs @@ -0,0 +1,140 @@ +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; +using System.Windows.Threading; +using Tango.DragAndDrop; +using Tango.Integration.Observables; +using Tango.MachineStudio.Developer.Converters; +using Tango.MachineStudio.Developer.ViewModels; + +namespace Tango.MachineStudio.Developer.Views +{ + /// + /// Interaction logic for JobView.xaml + /// + public partial class JobView : UserControl + { + private MainViewVM _vm; + private DispatcherTimer _jobBrushTimer; + + public DraggingSurface DraggingSurface + { + get { return (DraggingSurface)GetValue(DraggingSurfaceProperty); } + set { SetValue(DraggingSurfaceProperty, value); } + } + public static readonly DependencyProperty DraggingSurfaceProperty = + DependencyProperty.Register("DraggingSurface", typeof(DraggingSurface), typeof(JobView), new PropertyMetadata(null)); + + public JobView() + { + InitializeComponent(); + + DraggingSurface = draggingSurface; + + this.Loaded += (x, y) => + { + _vm = DataContext as MainViewVM; + }; + + _jobBrushTimer = new DispatcherTimer(); + _jobBrushTimer.Interval = TimeSpan.FromSeconds(1); + _jobBrushTimer.Tick += _jobBrushTimer_Tick; + _jobBrushTimer.Start(); + } + + private void _jobBrushTimer_Tick(object sender, EventArgs e) + { + if (_vm != null && _vm.SelectedJob != null) + { + List segments = new List(); + foreach (var s in _vm.SelectedJob.Segments) + { + segments.Add(s); + + if (_vm.SelectedJob.EnableInterSegment && _vm.SelectedJob.Segments.IndexOf(s) != _vm.SelectedJob.Segments.Count - 1) + { + segments.Add(new Segment() + { + Length = _vm.SelectedJob.InterSegmentLength, + BrushStops = new System.Collections.ObjectModel.ObservableCollection() + { + new BrushStop() + { + Color = Colors.White, + } + }, + }); + } + } + + jobBrushList.ItemsSource = segments; + } + } + + private void OnDropAvailableGraph(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is TechMonitor) + { + _vm.OnDropAvailableGraph(e.Draggable.DataContext as TechMonitor); + } + } + + private void Offset_Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + UpdateGradientBrushDisplay(); + } + + private void UpdateGradientBrushDisplay() + { + if (_vm.SelectedSegment != null) + { + SegmentToGradientStopsConverter converter = new SegmentToGradientStopsConverter(); + GradientStopCollection stops = converter.Convert(_vm.SelectedSegment, null, null, null) as GradientStopCollection; + gradientBrush.GradientStops = stops; + } + else + { + gradientBrush.GradientStops = new GradientStopCollection(); + } + } + + private void OnBrushStopBorderDrop(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is BrushStop) + { + _vm.OnDropBrushStop(e.Draggable.DataContext as BrushStop, e.Droppable.DataContext as BrushStop); + } + } + + private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + UpdateGradientBrushDisplay(); + } + + private void OnJobStartClick(object sender, RoutedEventArgs e) + { + + } + + private void HiveColorPickerControl_SelectedColorChanged(object sender, Color e) + { + UpdateGradientBrushDisplay(); + } + + private void Popup_MouseDown(object sender, MouseButtonEventArgs e) + { + e.Handled = true; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml new file mode 100644 index 000000000..998ba474d --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + TARGET MACHINE + + + + + + + + + + + + + + + + + + + + + + + MACHINE JOBS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml.cs new file mode 100644 index 000000000..52786a59f --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.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.MachineStudio.Developer.Views +{ + /// + /// Interaction logic for MachineJobSelectionView.xaml + /// + public partial class MachineJobSelectionView : UserControl + { + public MachineJobSelectionView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml index 240e3127c..442385731 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml @@ -583,7 +583,7 @@ - + @@ -2026,7 +2026,7 @@ - + -- cgit v1.3.1