/// <inheritdoc/> protected override void Initialize() { base.Initialize(); var comparisonRules = new ComparisonRules[Order.Count]; for (int i = 0; i < Order.Count; i++) { var orderItem = Order[i]; var culture = CultureInfo.InvariantCulture; var column = Header.Columns[orderItem.Key]; var mappedColumn = column as MappedColumn; if (mappedColumn != null && mappedColumn.ColumnInfoRef != null) { culture = mappedColumn.ColumnInfoRef.CultureInfo; } comparisonRules[i] = new ComparisonRule(orderItem.Value, culture); } var fieldTypes = new Type[Order.Count]; var map = new int[Order.Count]; for (var i = 0; i < Order.Count; i++) { var p = Order[i]; fieldTypes[i] = Header.Columns[p.Key].Type; map[i] = p.Key; } var orderKeyDescriptor = TupleDescriptor.Create(fieldTypes); OrderKeyExtractorTransform = new MapTransform(true, orderKeyDescriptor, map); }
public QuizEditorCard(QuizEditor owner, int number) { InitializeComponent(); QuizEditor = owner; Number = number; RemoveSynonymsEqualToWords(); ComparisonRules.BeforeDataChanged += (sender, e) => { if (QuizEditor.UpdateUndoRedoStacks) { QuizEditor.UndoStack.Push(new UndoRedoActionPair( new Action[] { ComparisonRules.SetSemiSilentUR(ComparisonRules.Data) }, new Action[] { ComparisonRules.SetSemiSilentUR(e) }, "Change comparison rules", new OwnerControlData(this, this.Parent) )); QuizEditor.UpdateUndoRedoTooltips(); } QuizEditor.ChangedSinceLastSave = true; }; ComparisonRules.AfterDataChanged += (sender, e) => { chk_smartComp.CheckStateChanged -= Chk_smartComp_CheckStateChanged; if (ComparisonRules.Data.HasFlag(StringComp.SMART_RULES)) { chk_smartComp.CheckState = CheckState.Checked; } else if (ComparisonRules.Data == StringComp.Rules.None) { chk_smartComp.CheckState = CheckState.Unchecked; } else { chk_smartComp.CheckState = CheckState.Indeterminate; } chk_smartComp.CheckStateChanged += Chk_smartComp_CheckStateChanged; QuizEditor.SetGlobalSmartComparisonState(); }; SetTheme(); }
protected override IAdvancedComparer <Pair <TypeInfo, TypeInfo> > CreateNew(ComparisonRules rules) { return(new TypePairComparer(Provider, rules)); }
public TypePairComparer(IComparerProvider provider, ComparisonRules comparisonRules) : base(provider, comparisonRules) { }
public Wrapper1Comparer(IComparerProvider provider, ComparisonRules comparisonRules) : base(provider, comparisonRules) { }
protected override IAdvancedComparer <Wrapper1 <T> > CreateNew(ComparisonRules rules) { return(new Wrapper1Comparer <T>(Provider, ComparisonRules.Combine(rules))); }