Esempio n. 1
0
        private void RenderItemLabelsContinuous(VisualPayload payload, List <ICriterionMetaSelector> criteria)
        {
            if (MinValue.UseLiteralValue)
            {
                MinimumValue = MinValue.GetLastKeyValue(payload.Data);
            }
            else
            {
                var entries = MinValue.GetEntries(payload.Data);
                MinimumValue = entries.Min(e => MinValue.GetValue(e));
            }

            if (MaxValue.UseLiteralValue)
            {
                MaximumValue = MaxValue.GetLastKeyValue(payload.Data);
            }
            else
            {
                var entries = MaxValue.GetEntries(payload.Data);
                MaximumValue = entries.Max(e => MaxValue.GetValue(e));
            }

            var numLabels = LabelCount.GetLastKeyValue(payload.Data);

            var totalLength = AxisLength.GetLastKeyValue(payload.Data);

            if (numLabels > 0)
            {
                float sizePeriod;

                if (numLabels > 1)
                {
                    sizePeriod = totalLength / (float)(numLabels - 1);
                }
                else
                {
                    sizePeriod = totalLength;
                }


                foreach (var criterion in criteria)
                {
                    var rangeCriterion = criterion as CriterionRangeMetaSelector;
                    if (rangeCriterion == null)
                    {
                        return;
                    }

                    rangeCriterion.RangeWidth = (MaximumValue - MinimumValue) / ((numLabels - 1) * 2f);
                }


                RenderItemLabelsInternal(payload, numLabels, sizePeriod, 0.0f, false, criteria);
            }
        }