Ejemplo n.º 1
0
 public GanttViewTimelineItemFormattingEventArgs(
     GanttViewTimelineDataItem item,
     GanttViewTimelineItemElement itemElement)
 {
     this.item        = item;
     this.itemElement = itemElement;
 }
Ejemplo n.º 2
0
        protected override bool MeasureElement(
            IVirtualizedElement <GanttViewTimelineDataItem> element)
        {
            GanttViewTimelineItemElement timelineItemElement = element as GanttViewTimelineItemElement;

            if (timelineItemElement == null)
            {
                return(false);
            }
            SizeF sizeF = this.MeasureElementCore((RadElement)timelineItemElement, this.availableSize);

            this.desiredSize.Height = Math.Max(this.desiredSize.Height, sizeF.Height);
            this.desiredSize.Width += sizeF.Width;
            return((double)this.desiredSize.Width - (double)this.Owner.TimelineScroller.Scrollbar.Value < (double)this.availableSize.Width);
        }
        public virtual void FillRangesMinWidths()
        {
            if (this.GraphicalViewElement.TimelineContainer.Children == null || this.GraphicalViewElement.TimelineContainer.Children.Count == 0)
            {
                return;
            }
            GanttViewTimelineItemElement child = this.GraphicalViewElement.TimelineContainer.Children[0] as GanttViewTimelineItemElement;

            if (child.BottomElement.Children == null || child.BottomElement.Children.Count == 0)
            {
                return;
            }
            Font font = ((VisualElement)child.BottomElement.Children[0]).Font;

            this.RangesMinWidths.Clear();
            Graphics graphics = Graphics.FromHwnd(IntPtr.Zero);
            float    num1     = 0.0f;
            float    num2     = 0.0f;
            GanttViewTimelineDataItem timelineDataItem = new GanttViewTimelineDataItem(DateTime.Now, DateTime.Now, TimeRange.YearHalves, this.GraphicalViewElement.OnePixelTime);

            for (int index = 0; index < 2; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, index * 7 + 1, 1);
                timelineDataItem.End   = timelineDataItem.Start.AddDays(1.0);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, index), font).Width;
                if ((double)width > (double)num2)
                {
                    num2 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.YearHalves, (int)((double)num2 * 2.0));
            timelineDataItem.Range = TimeRange.YearQuarters;
            num1 = 0.0f;
            float num3 = 0.0f;

            for (int index = 0; index < 4; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, index * 3 + 2, 1);
                timelineDataItem.End   = timelineDataItem.Start.AddDays(1.0);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, index + 1), font).Width;
                if ((double)width > (double)num3)
                {
                    num3 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.YearQuarters, (int)((double)num3 * 4.0));
            timelineDataItem.Range = TimeRange.Year;
            num1 = 0.0f;
            float num4 = 0.0f;

            for (int index = 0; index < 12; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, index + 1, 1);
                timelineDataItem.End   = timelineDataItem.Start.AddMonths(1);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, 0), font).Width;
                if ((double)width > (double)num4)
                {
                    num4 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.Year, (int)((double)num4 * 12.0));
            timelineDataItem.Range = TimeRange.Month;
            num1 = 0.0f;
            float num5 = 0.0f;

            for (int index = 0; index < 31; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, 1, index + 1);
                timelineDataItem.End   = timelineDataItem.Start.AddDays(1.0);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, 0), font).Width;
                if ((double)width > (double)num5)
                {
                    num5 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.Month, (int)((double)num5 * 31.0));
            timelineDataItem.Range = TimeRange.Day;
            num1 = 0.0f;
            float num6 = 0.0f;

            for (int index = 0; index < 24; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, 1, 1).AddHours((double)index);
                timelineDataItem.End   = timelineDataItem.Start.AddHours(1.0);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, 0), font).Width;
                if ((double)width > (double)num6)
                {
                    num6 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.Day, (int)((double)num6 * 24.0));
            timelineDataItem.Range = TimeRange.DayHalfHours;
            num1 = 0.0f;
            float num7 = 0.0f;

            for (int index = 0; index < 48; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, 1, 1).AddMinutes((double)(30 * index));
                timelineDataItem.End   = timelineDataItem.Start.AddMinutes(30.0);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, 0), font).Width;
                if ((double)width > (double)num7)
                {
                    num7 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.DayHalfHours, (int)((double)num7 * 48.0));
            timelineDataItem.Range = TimeRange.Hour;
            num1 = 0.0f;
            float num8 = 0.0f;

            for (int index = 0; index < 60; ++index)
            {
                timelineDataItem.Start = new DateTime(DateTime.Now.Year, 1, 1).AddMinutes((double)index);
                timelineDataItem.End   = timelineDataItem.Start.AddMinutes(1.0);
                float width = graphics.MeasureString(this.GetTimelineBottomElementText(timelineDataItem, 0), font).Width;
                if ((double)width > (double)num8)
                {
                    num8 = width + 6f;
                }
            }
            this.RangesMinWidths.Add(TimeRange.Hour, (int)((double)num8 * 60.0));
        }