85 lines
2.4 KiB
C#
85 lines
2.4 KiB
C#
// Copyright (c) 2020 LG Electronics Inc.
|
|
// SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
|
|
using Aurora;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
|
|
namespace AuroraMotor.Views
|
|
{
|
|
public partial class UCAuroraMotor : UserControl
|
|
{
|
|
public static readonly DependencyProperty SelectedMotorProperty
|
|
= DependencyProperty.Register(
|
|
nameof(SelectedMotor),
|
|
typeof(AuroraMotorBase),
|
|
typeof(UCAuroraMotor),
|
|
new FrameworkPropertyMetadata(
|
|
(d, e) => (d as UCAuroraMotor).SelectedMotorChanged(e)
|
|
)
|
|
);
|
|
|
|
UCAuroraMotorViewModel ViewModel { get; }
|
|
|
|
public AuroraMotorBase SelectedMotor
|
|
{
|
|
get => GetValue(SelectedMotorProperty) as AuroraMotorBase;
|
|
set => SetValue(SelectedMotorProperty, value);
|
|
}
|
|
|
|
public UCAuroraMotor()
|
|
{
|
|
ViewModel = new UCAuroraMotorViewModel(
|
|
Application.Current.AuroraEnv().EventObservable
|
|
);
|
|
|
|
InitializeComponent();
|
|
|
|
DataContext = ViewModel;
|
|
}
|
|
|
|
void SelectedMotorChanged(
|
|
DependencyPropertyChangedEventArgs e)
|
|
{
|
|
ViewModel.SelectedMotor = SelectedMotor;
|
|
}
|
|
|
|
void ExecuteJogCommand(
|
|
object sender,
|
|
string commandProperty,
|
|
object param = null)
|
|
{
|
|
(sender as UIElement).Focus();
|
|
var cmd = DataContext
|
|
.GetType()
|
|
.GetProperty(commandProperty)
|
|
.GetValue(DataContext) as ICommand;
|
|
cmd.Execute(param);
|
|
}
|
|
|
|
private void OnJogPositivePressed(
|
|
object sender,
|
|
System.Windows.Input.MouseButtonEventArgs e)
|
|
{
|
|
ExecuteJogCommand(sender, "CMD_JogPositive");
|
|
e.Handled = true;
|
|
}
|
|
|
|
private void OnJogNegativePressed(
|
|
object sender,
|
|
System.Windows.Input.MouseButtonEventArgs e)
|
|
{
|
|
ExecuteJogCommand(sender, "CMD_JogNegative");
|
|
e.Handled = true;
|
|
}
|
|
|
|
private void OnJogStop(
|
|
object sender,
|
|
System.Windows.Input.MouseButtonEventArgs e)
|
|
{
|
|
ExecuteJogCommand(sender, "CMD_Stop");
|
|
e.Handled = true;
|
|
}
|
|
}
|
|
} |