aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2018-12-30 01:27:53 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2018-12-30 01:27:53 +0200
commitcc3480d4aac4175b1072060dd2d6d398d3451ae8 (patch)
tree0c416705eca9d499a3118d83d84b5143f3cee262 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs
parent7b69f9a96ab82e3a6e2345092600edf5854f5f4f (diff)
downloadTango-cc3480d4aac4175b1072060dd2d6d398d3451ae8.tar.gz
Tango-cc3480d4aac4175b1072060dd2d6d398d3451ae8.zip
Working on dispenserssssssss
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs172
1 files changed, 172 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs
new file mode 100644
index 000000000..941a2792d
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs
@@ -0,0 +1,172 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+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.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.BL.Entities;
+using Tango.DragAndDrop;
+using Tango.MachineStudio.MachineDesigner.ViewModels;
+
+namespace Tango.MachineStudio.MachineDesigner.Views
+{
+ /// <summary>
+ /// Interaction logic for MainView.xaml
+ /// </summary>
+ public partial class ConfigurationView : UserControl
+ {
+ private MainViewVM _vm;
+ private Rectangle _highlightRect;
+ private bool _highlightShown;
+ private DoubleAnimation _highlightAnimation;
+
+ public ColumnDefinition PanelColumnDefinition { get; set; }
+
+ public ConfigurationView()
+ {
+ InitializeComponent();
+
+ PanelColumnDefinition = panelColumnDefinition;
+
+ DraggingSurface = dragSufrace;
+ this.Loaded += (x, y) =>
+ {
+ _vm = DataContext as MainViewVM;
+ };
+
+ DragAndDropService.DragStarted += DragAndDropService_DragStarted;
+ DragAndDropService.DragEnded += DragAndDropService_DragEnded;
+
+ _highlightRect = new Rectangle();
+ _highlightRect.IsHitTestVisible = false;
+ _highlightRect.Stroke = Application.Current.Resources["AccentColorBrush"] as Brush;
+ _highlightRect.StrokeThickness = 2;
+ _highlightRect.StrokeDashArray = new DoubleCollection(new double[] { 3, 3, 3, 3 });
+ }
+
+ private void DragAndDropService_DragEnded(object sender, FrameworkElement e)
+ {
+ canvas.Children.Remove(_highlightRect);
+ _highlightShown = false;
+ _highlightRect.BeginAnimation(Rectangle.OpacityProperty, null);
+ }
+
+ private void DragAndDropService_DragStarted(object sender, FrameworkElement e)
+ {
+ if (e.DataContext is HardwareVersion)
+ {
+ SetHighlightRegion(hardwareGrid);
+ }
+ else if (e.DataContext is ApplicationOsVersion || e.DataContext is ApplicationDisplayPanelVersion || e.DataContext is ApplicationFirmwareVersion)
+ {
+ SetHighlightRegion(gridTablet);
+ }
+ else if (e.DataContext is EmbeddedFirmwareVersion)
+ {
+ SetHighlightRegion(gridEmbedded);
+ }
+ else if (e.DataContext is DispenserType || e.DataContext is CartridgeType || e.DataContext is LiquidType || e.DataContext is MidTankType || e.DataContext is IdsPackFormula)
+ {
+ SetHighlightRegion(gridIds);
+ }
+ }
+
+ public DraggingSurface DraggingSurface
+ {
+ get { return (DraggingSurface)GetValue(DraggingSurfaceProperty); }
+ set { SetValue(DraggingSurfaceProperty, value); }
+ }
+ public static readonly DependencyProperty DraggingSurfaceProperty =
+ DependencyProperty.Register("DraggingSurface", typeof(DraggingSurface), typeof(MainView), new PropertyMetadata(null));
+
+ private void OnDropOnIdsPack(object sender, DropEventArgs e)
+ {
+ if (e.Draggable.DataContext is Dispenser)
+ {
+ _vm.DropDispenser(e.Draggable.DataContext as Dispenser, e.Droppable.DataContext as IdsPack);
+ }
+ else if (e.Draggable.DataContext is LiquidType)
+ {
+ _vm.DropLiquidType(e.Draggable.DataContext as LiquidType, e.Droppable.DataContext as IdsPack);
+ }
+ else if (e.Draggable.DataContext is CartridgeType)
+ {
+ _vm.DropCartridgeType(e.Draggable.DataContext as CartridgeType, e.Droppable.DataContext as IdsPack);
+ }
+ else if (e.Draggable.DataContext is MidTankType)
+ {
+ _vm.DropMidTankType(e.Draggable.DataContext as MidTankType, e.Droppable.DataContext as IdsPack);
+ }
+ else if (e.Draggable.DataContext is IdsPackFormula)
+ {
+ _vm.DropIdsFormula(e.Draggable.DataContext as IdsPackFormula, e.Droppable.DataContext as IdsPack);
+ }
+ else if (e.Draggable.DataContext is IdsPack)
+ {
+ _vm.DropIdsPack(e.Draggable.DataContext as IdsPack, e.Droppable.DataContext as IdsPack);
+ }
+ }
+
+ private void OnTabletDrop(object sender, DropEventArgs e)
+ {
+ if (e.Draggable.DataContext is ApplicationDisplayPanelVersion)
+ {
+ _vm.DropTouchPanel(e.Draggable.DataContext as ApplicationDisplayPanelVersion);
+ }
+ else if (e.Draggable.DataContext is ApplicationOsVersion)
+ {
+ _vm.DropApplicationOsVersion(e.Draggable.DataContext as ApplicationOsVersion);
+ }
+ else if (e.Draggable.DataContext is ApplicationFirmwareVersion)
+ {
+ _vm.DropApplicationFirmwareVersion(e.Draggable.DataContext as ApplicationFirmwareVersion);
+ }
+ }
+
+ private void OnEmbeddedDrop(object sender, DropEventArgs e)
+ {
+ if (e.Draggable.DataContext is EmbeddedFirmwareVersion)
+ {
+ _vm.DropEmbeddedFirmware(e.Draggable.DataContext as EmbeddedFirmwareVersion);
+ }
+ }
+
+ private void MachineDrop(object sender, DropEventArgs e)
+ {
+ if (e.Draggable.DataContext is HardwareVersion)
+ {
+ _vm.DropHardwareVersion(e.Draggable.DataContext as HardwareVersion);
+ }
+ }
+
+ private void SetHighlightRegion(FrameworkElement element)
+ {
+ if (!_highlightShown)
+ {
+ _highlightRect.Width = element.Width;
+ _highlightRect.Height = element.Height;
+ Canvas.SetLeft(_highlightRect, Canvas.GetLeft(element));
+ Canvas.SetTop(_highlightRect, Canvas.GetTop(element));
+ canvas.Children.Add(_highlightRect);
+ _highlightShown = true;
+ _highlightAnimation = new DoubleAnimation();
+ _highlightAnimation.From = 0;
+ _highlightAnimation.To = 1;
+ _highlightAnimation.Duration = TimeSpan.FromSeconds(0.2);
+ _highlightAnimation.AutoReverse = true;
+ _highlightAnimation.RepeatBehavior = RepeatBehavior.Forever;
+ _highlightRect.BeginAnimation(Rectangle.OpacityProperty, _highlightAnimation);
+ }
+ }
+ }
+}