private MachineElementViewModel ToViewModel(MachineElement me) { MachineElementViewModel vm = null; if (me != null) { if (me.ToolHolderType != MachineModels.Enums.ToolHolderType.None) { vm = new ToolHolderViewModel() { ToolHolderId = me.ToolHolderData.Id, ToolHolderType = me.ToolHolderType }; } else { vm = new MachineElementViewModel(); } vm.Name = me.Name; if (me.Children.Count > 0) { var children = new List <MachineElementViewModel>(); foreach (var item in me.Children) { children.Add(ToViewModel(item)); } vm.Children = children; } } return(vm); }
private void OnMachineElementsLoaded(MachineElementsLoaded msg) { Selected = null; Elements = new List <MachineElementViewModel>() { ToViewModel(msg.Elements) }; RaisePropertyChanged(nameof(Elements)); }
private void UnloadTools(MachineElementViewModel vm) { if (vm is IToolHolderManagement thm) { thm.UnloadTool(); } else if (vm.Children.Count() > 0) { foreach (var item in vm.Children) { UnloadTools(item); } } }
private void GetActiveTooling(MachineElementViewModel vm, Tooling tooling) { if (vm is IToolHolderManagement thm) { if (thm.IsToolPresent) { if (thm is IToolingUnitProvider tup) { tooling.Units.Add(tup.GetToolingUnit()); } } } else if (vm.Children.Count() > 0) { foreach (var item in vm.Children) { GetActiveTooling(item, tooling); } } }
private void SetActiveTooling(MachineElementViewModel vm, Dictionary <int, ToolingUnit> td) { if (vm is IToolHolderManagement thm) { if (vm is IToolingUnitProvider tup) { if (td.TryGetValue(tup.GetToolHolderId(), out ToolingUnit tu)) { Messenger.Default.Send(new TryToLoadTool() { ToolingHolder = thm, ToolName = tu.ToolName }); } } } else if (vm.Children.Count() > 0) { foreach (var item in vm.Children) { SetActiveTooling(item, td); } } }