private void AddGenericsToToolBox <T>(MultiPicker <T> picker) where T : class { ILNode AddToolBoxNode = new ILNode(null, null, null, StructureView.None); ILNode GenericExtension = AddToolBoxNode.Add("<Local GenericParameter>", "<Local GenericParameter>", null, StructureView.Structure); if (methodDefinition.HasGenericParameters) { foreach (GenericParameter gpar in methodDefinition.GenericParameters) { GenericExtension.Add(gpar.Name, gpar.FullName, gpar, StructureView.Classes); } } TypeDefinition recdef = methodDefinition.DeclaringType; while (recdef != null) { if (recdef.HasGenericParameters) { foreach (GenericParameter gpar in recdef.GenericParameters) { GenericExtension.Add(gpar.Name, gpar.FullName, gpar, StructureView.Classes); } } if (recdef.IsNested) { recdef = recdef.DeclaringType; } else { recdef = null; } } picker.AddToolboxNode(AddToolBoxNode); }
public void MultiPickerFilter_CheckedValueSetMatchAllOf_MatchingResults() { //given var selectedValues = new[] { _tagA, _tagC }; MapperConfiguration.Configure(); var source = _tags.Select(x => new Selectable(x)).ToArray(); var selector = new MultiPicker(MultiPickerType.Tag, source) { IsChecked = true, CanMatchMultipleElements = true, ShouldMatchAllOfTheElements = true }; foreach (var result in selector.ComboBox.InternalDisplayableSearchResults) { if (selectedValues.Any(x => x.Id == result.Id)) { result.IsSelected = true; } } var filter = MultiPickerFilter.Create(selector); var expected = new[] { _positions[2] }; //when var results = filter.Execute(_positions); //then Assert.Equal(expected.Length, results.Count()); Assert.Equal(expected, results); }
private void btnTMFPicker_Click(object sender, EventArgs e) { switch (currentPOT) { case PickOperandType.None: ((InstructionInfo)instructionEditor.DragItem).NewInstruction.Operand = null; lblTMFPicker.Text = string.Empty; RedrawBoth(); break; case PickOperandType.FieldReference: MultiPicker <FieldReference> .ShowStructure(dataStruct, StructureView.Fields, x => true, ApplyOperand); break; case PickOperandType.MethodReference: MultiPicker <MethodReference> .ShowStructure(dataStruct, StructureView.Methods, x => true, ApplyOperand); break; case PickOperandType.TypeReference: var typPicker = MultiPicker <TypeReference> .ShowStructure(dataStruct, StructureView.Classes, x => true, ApplyOperand); AddGenericsToToolBox(typPicker); break; case PickOperandType.TMFReferenceDynamic: var mrfPicker = MultiPicker <MemberReference> .ShowStructure(dataStruct, StructureView.All, x => true, ApplyOperand); AddGenericsToToolBox(mrfPicker); break; case PickOperandType.InstructionArrReference: Instruction[] oldop = ((InstructionInfo)instructionEditor.DragItem).NewInstruction.Operand as Instruction[]; InstructArrPicker.Instance.ShowStructure(mInstructBox.Items, oldop, x => ApplyOperand(x)); break; default: Log.Write(Log.Level.Warning, $"OperandType \"{currentPOT}\" cannot be processed with the TMFPicker"); break; } }
public static MultiPickerFilter Create(MultiPicker picker) { return(new MultiPickerFilter(picker)); }
private MultiPickerFilter(MultiPicker picker) { _picker = picker; _picker.PropertyChanged += PickerOnPropertyChanged; }
private void btnPickMethod_Click(object sender, EventArgs e) { MultiPicker <MethodDefinition> .ShowStructure(dataStruct, StructureView.Methods, x => true, LoadMetDef, true); }