using Prism.Commands;
using Prism.Events;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using TeamAAS_VP.Events;
using TeamAAS_VP.Core;
using TeamAAS_VP.Models;
using Team.FFFeederService;
namespace TeamAAS_VP.ViewModels
{
public class DebugViewModel : BindableBase
{
#region 字段
IRegionManager _regionManager;
IEventAggregator _eventAggregator;
IContainerProvider _container;
IDialogService _dialogService;
#endregion
#region 属性
private Management _management;
public Management management
{
get { return _management; }
set { SetProperty(ref _management, value); }
}
private DeviceConfiguration _DeviceConfig;
///
/// 设备配置参数
///
public DeviceConfiguration DeviceConfig
{
get { return _DeviceConfig; }
set { SetProperty(ref _DeviceConfig, value); }
}
private RobotInfo _SelectRobot;
///
/// 选中的机器人
///
public RobotInfo SelectRobot
{
get { return _SelectRobot; }
set { SetProperty(ref _SelectRobot, value); }
}
private FeederInfo _SelectFeeder;
///
/// 选中的Feeder
///
public FeederInfo SelectFeeder
{
get { return _SelectFeeder; }
set { SetProperty(ref _SelectFeeder, value); }
}
#endregion
#region 命令
public DelegateCommand LoadedCommand { get; set; }
#endregion
#region 事件
#endregion
public DebugViewModel(IRegionManager regionManager, IEventAggregator ea, IContainerProvider container, IDialogService dialogService)
{
_regionManager = regionManager;
_eventAggregator = ea;
_container = container;
_dialogService = dialogService;
management = _container.Resolve();
LoadedCommand = new DelegateCommand(OnLoad);
DeviceConfig = management.DeviceConfig;
//订阅权限登录事件
_eventAggregator.GetEvent().Subscribe(LoginChange);
}
#region 方法
private void OnLoad()
{
}
public void SelectView(string view,object vm)
{
switch (view)
{
case "robot":
_regionManager.RequestNavigate("DebugRegionContext", "RobotManualStep");
break;
case "feeder":
if (SelectFeeder!=null && SelectFeeder.FeederBrand== FeederBrand.TEAM)
{
_regionManager.RequestNavigate("DebugRegionContext", "FeederManual");
}
else if (SelectFeeder != null && SelectFeeder.FeederBrand == FeederBrand.AFAG)
{
_regionManager.RequestNavigate("DebugRegionContext", "AfagFeederManual");
}
break;
case "VisionSolution":
_regionManager.RequestNavigate("DebugRegionContext", "VisionSolution");
break;
case "InchingControl":
_regionManager.RequestNavigate("DebugRegionContext", "InchingControl");
break;
case "ScriptHome":
_regionManager.RequestNavigate("DebugRegionContext", "ScriptHome");
break;
case "FeederClear":
_regionManager.RequestNavigate("DebugRegionContext", "FeederClear");
break;
default:
break;
}
}
#endregion
private void LoginChange(Models.User user)
{
}
}
}