/// <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);
        }
Exemplo n.º 2
0
        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)
 {
 }
Exemplo n.º 5
0
 public Wrapper1Comparer(IComparerProvider provider, ComparisonRules comparisonRules)
     : base(provider, comparisonRules)
 {
 }
Exemplo n.º 6
0
 protected override IAdvancedComparer <Wrapper1 <T> > CreateNew(ComparisonRules rules)
 {
     return(new Wrapper1Comparer <T>(Provider, ComparisonRules.Combine(rules)));
 }