aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-02-20 16:45:00 +0200
committerAvi Levkovich <avi@twine-s.com>2018-02-20 16:45:00 +0200
commit6c208c90bc45aff4a7fa214356a42fe7757c5e6f (patch)
tree0d77bc6a0ecfbb53cf42c5462ee19212197ee1bd /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
parentb0823127f152fe97a6e8fce29e427c7f3db9cf5a (diff)
parent1a573aaa346ec4b8bd58a0e35ab9df571a09b855 (diff)
downloadTango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.tar.gz
Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.zip
MERGE
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs137
1 files changed, 137 insertions, 0 deletions
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..27ea3cae8
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs
@@ -0,0 +1,137 @@
+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
+{
+ /// <summary>
+ /// Interaction logic for JobView.xaml
+ /// </summary>
+ 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.ActiveJob != null)
+ {
+ List<Segment> segments = new List<Segment>();
+ foreach (var s in _vm.ActiveJob.Segments)
+ {
+ segments.Add(s);
+
+ if (_vm.ActiveJob.EnableInterSegment && _vm.ActiveJob.Segments.IndexOf(s) != _vm.ActiveJob.Segments.Count - 1)
+ {
+ segments.Add(new Segment()
+ {
+ Length = _vm.ActiveJob.InterSegmentLength,
+ BrushStops = new System.Collections.ObjectModel.ObservableCollection<BrushStop>()
+ {
+ new BrushStop()
+ {
+ Color = Colors.White,
+ }
+ },
+ });
+ }
+ }
+
+ jobBrushList.ItemsSource = segments;
+ }
+ }
+
+ private void Offset_Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> 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;
+ }
+
+ private void OnSegmentDrop(object sender, DropEventArgs e)
+ {
+ _vm.OnDropSegment(e.Draggable.DataContext as Segment, e.Droppable.DataContext as Segment);
+ }
+ }
+}