private void updateAddMappingContextMenus() { if (OutCommands.Contains(_separator)) { OutCommands.Remove(_separator); OutCommands.RemoveAt(OutCommands.Count - 1); } MappingViewModel selectedMapping = null; if (_selectedMappings.Count != 1 || (selectedMapping = _selectedMappings.Single().Item as MappingViewModel).Command.MappingType != MappingType.In) { return; } if (All.KnownOutCommands.ContainsKey(selectedMapping.Command.Id)) { var commandProxy = All.KnownOutCommands[selectedMapping.Command.Id]; if (!OutCommands.Contains(_separator)) { OutCommands.Add(_separator); OutCommands.Add(new MenuItemViewModel { Text = commandProxy.Name + " (" + selectedMapping.AssignmentExpression + ")", Tag = commandProxy, Command = new CommandHandler <MenuItemViewModel>(i => { int index = _mappings.Count; if (_selectedMappings.Count > 0) { index = _mappings.IndexOf(_selectedMappings.Last()) + 1; } var proxy = i.Tag as CommandProxy; var m = _device.CreateMapping(proxy); _device.InsertMapping(index, m); var mvm = new MappingViewModel(_device, m); mvm.Assignment = selectedMapping.Assignment; if (selectedMapping.CanOverrideFactoryMap) { mvm.OverrideFactoryMap = selectedMapping.OverrideFactoryMap; } if (selectedMapping.MidiBinding != null && MidiOutDefinitions.ContainsKey(selectedMapping.MidiBinding.Note)) { mvm.SetBinding(MidiOutDefinitions[selectedMapping.MidiBinding.Note]); } if (selectedMapping.Conditions.Condition1 != null) { mvm.SetCondition(TsiLib.Conditions.ConditionNumber.One, selectedMapping.Conditions.Condition1); } if (selectedMapping.Conditions.Condition2 != null) { mvm.SetCondition(TsiLib.Conditions.ConditionNumber.Two, selectedMapping.Conditions.Condition2); } var row = new RowItemViewModel(mvm); _mappings.Insert(index, row); selectExclusive(row); row.BringIntoView(); }) }); } } }
public UpKeyCommand(IArduino arduino) : base(arduino) { OutCommands.Add(new TestLightOnCommand()); }
public DownKeyCommand(IArduino arduino) : base(arduino) { OutCommands.Add(new TestLightOffCommand()); }