Example #1
0
 public SorterVmImpl
 (
     ISorterEval sorter,
     List <Brush> lineBrushes,
     int width
 )
 {
     _sorter = sorter;
     foreach (var keyPair in Sorter.KeyPairs)
     {
         SwitchVms.Add
         (
             new SwitchGraphicVm
             (
                 keyPair: keyPair,
                 keyCount: sorter.KeyCount,
                 lineBrushes: lineBrushes,
                 width: width
             )
         {
             SwitchBrush = Brushes.Red
         }
         );
     }
 }
Example #2
0
        void SetUnstagedSwitchVms()
        {
            for (var i = 0; i < SorterEval.KeyPairCount; i++)
            {
                if ((SorterEval.SwitchEvals[i].UseCount == 0) && !ShowUnusedSwitches)
                {
                    continue;
                }

                var keyPair          = SorterEval.KeyPair(i);
                var switchBrushIndex = Math.Ceiling(
                    (SorterEval.SwitchEvals[i].UseCount * SwitchBrushes.Count)
                    /
                    SorterEval.SwitchableGroupCount
                    );

                SwitchVms.Add(new SwitchGraphicVm(keyPair, SorterEval.KeyCount, LineBrushes, Width)
                {
                    SwitchBrush = SwitchBrushes[(int)switchBrushIndex]
                });
            }
        }
Example #3
0
        public SorterStageVm
        (
            ISorterStage <ISwitchEval> sorterStage,
            List <Brush> lineBrushes,
            List <Brush> switchBrushes,
            int width,
            bool showUnusedSwitches,
            int switchableGroupCount
        )
        {
            _sorterStage        = sorterStage;
            _lineBrushes        = lineBrushes;
            _switchBrushes      = switchBrushes;
            _showUnusedSwitches = showUnusedSwitches;
            _width = width;
            _switchableGroupCount = switchableGroupCount;


            for (var i = 0; i < SorterStage.KeyPairCount; i++)
            {
                var keyPair = SorterStage.KeyPair(i);
                if ((keyPair.UseCount < 1) && !ShowUnusedSwitches)
                {
                    continue;
                }

                var switchBrushIndex = Math.Ceiling(
                    (keyPair.UseCount * (SwitchBrushes.Count - 1))
                    /
                    SwitchableGroupCount
                    );

                SwitchVms.Add(new SwitchGraphicVm(keyPair, SorterStage.KeyCount, LineBrushes, Width)
                {
                    SwitchBrush = SwitchBrushes[(int)switchBrushIndex]
                });
            }
        }
Example #4
0
        public UnstagedSorterVmImpl
        (
            ISorterEval sorterEval,
            List <Brush> lineBrushes,
            List <Brush> switchBrushes,
            int width,
            int height,
            bool showUnusedSwitches
        )
        {
            _sorterEval         = sorterEval;
            _lineBrushes        = lineBrushes;
            _switchBrushes      = switchBrushes;
            _showUnusedSwitches = showUnusedSwitches;
            _height             = height;
            _width = width;

            for (var i = 0; i < SorterEval.KeyPairCount; i++)
            {
                if ((SorterEval.SwitchEvals[i].UseCount < 1) && !ShowUnusedSwitches)
                {
                    continue;
                }

                var keyPair          = SorterEval.KeyPair(i);
                var switchBrushIndex = Math.Ceiling(
                    (SorterEval.SwitchEvals[i].UseCount * (SwitchBrushes.Count - 1))
                    /
                    SorterEval.SwitchableGroupCount
                    );

                SwitchVms.Add(new SwitchGraphicVm(keyPair, SorterEval.KeyCount, LineBrushes, Width)
                {
                    SwitchBrush = SwitchBrushes[(int)switchBrushIndex]
                });
            }
        }
Example #5
0
        void SetStagedSwitchVms()
        {
            var stagedKeyPairs = new List <ISwitchEval>();

            if (ShowUnusedSwitches)
            {
                stagedKeyPairs = SorterEval.SwitchEvals
                                 .ToList()
                                 .ToSorterStages(SorterEval.KeyPairCount)
                                 .SelectMany(st => st.KeyPairs)
                                 .ToList();
            }
            else
            {
                stagedKeyPairs = SorterEval.SwitchEvals
                                 .Where(ev => ev.UseCount > 0)
                                 .ToList()
                                 .ToSorterStages(SorterEval.KeyPairCount)
                                 .SelectMany(st => st.KeyPairs)
                                 .ToList();
            }


            foreach (var stagedKeyPair in stagedKeyPairs)
            {
                var switchBrushIndex = Math.Ceiling(
                    (stagedKeyPair.UseCount * SwitchBrushes.Count)
                    /
                    SorterEval.SwitchableGroupCount
                    );

                SwitchVms.Add(new SwitchGraphicVm(stagedKeyPair, SorterEval.KeyCount, LineBrushes, Width)
                {
                    SwitchBrush = SwitchBrushes[(int)switchBrushIndex]
                });
            }
        }