Exemplo n.º 1
0
        protected override IEnumerable <IEventInfo> GetEventInfos(TimeLineVisualizationState state, Telerik.Windows.Core.HierarchicalItem hierarchicalItem)
        {
            foreach (var eventInfo in base.GetEventInfos(state, hierarchicalItem))
            {
                yield return(eventInfo);
            }

            var task = hierarchicalItem.SourceItem as GanttTask;

            if (task != null && !task.IsMilestone)
            {
                var roundedStart    = state.Rounder.Round(new DateRange(task.Start, task.Start));
                var roundedEnd      = state.Rounder.Round(new DateRange(task.End, task.End));
                var offSetTime      = 0.3;
                var startLabelRange = new Range <long>(roundedStart.Start.AddDays(-1 - offSetTime).Ticks, roundedStart.Start.AddDays(-offSetTime).Ticks);
                var endLabelRange   = new Range <long>(roundedEnd.Start.AddDays(offSetTime).Ticks, roundedEnd.Start.AddDays(1 + offSetTime).Ticks);

                if (startLabelRange.IntersectsWith(state.VisibleTimeRange))
                {
                    yield return(new StartLabelEventInfo(startLabelRange, hierarchicalItem.Index)
                    {
                        OriginalEvent = hierarchicalItem.SourceItem
                    });
                }

                if (endLabelRange.IntersectsWith(state.VisibleTimeRange))
                {
                    yield return(new EndLabelEventInfo(endLabelRange, hierarchicalItem.Index)
                    {
                        OriginalEvent = hierarchicalItem.SourceItem
                    });
                }
            }
        }
Exemplo n.º 2
0
        protected override IEnumerable <IEventInfo> GetEventInfos(TimeLineVisualizationState state, Telerik.Windows.Core.HierarchicalItem hierarchicalItem)
        {
            foreach (var eventInfo in base.GetEventInfos(state, hierarchicalItem))
            {
                yield return(eventInfo);
            }

            var task = hierarchicalItem.SourceItem as CustomGanttTask;

            foreach (var deadLine in task.CustomDeadLines)
            {
                if (deadLine != null)
                {
                    var roundedDeadline = state.Rounder.Round(deadLine);
                    var deadlineRange   = new Range <long>(roundedDeadline.Start.Ticks, roundedDeadline.End.Ticks);

                    if (deadlineRange.IntersectsWith(state.VisibleTimeRange))
                    {
                        yield return(new NationalEventSlotInfo(deadlineRange, hierarchicalItem.Index));
                    }
                }
            }
        }
        protected override IEnumerable <IEventInfo> GetEventInfos(TimeLineVisualizationState state, Telerik.Windows.Core.HierarchicalItem hierarchicalItem)
        {
            foreach (var eventInfo in base.GetEventInfos(state, hierarchicalItem))
            {
                yield return(eventInfo);
            }

            var task = hierarchicalItem.SourceItem as GanttResourceTask;

            yield return(new TimeLineResourceEventInfo(new Range <long>(task.End.Ticks, task.End.AddYears(2).Ticks), hierarchicalItem.Index, 1, new Range <int>(0), IsSummary(hierarchicalItem.SourceItem), IsMilestone(hierarchicalItem.SourceItem))
            {
                OriginalEvent = hierarchicalItem.SourceItem
            });
        }
Exemplo n.º 4
0
        protected override IEnumerable <IEventInfo> GetEventInfos(TimeLineVisualizationState state, Telerik.Windows.Core.HierarchicalItem hierarchicalItem)
        {
            foreach (var eventInfo in base.GetEventInfos(state, hierarchicalItem))
            {
                yield return(eventInfo);
            }

            var task     = hierarchicalItem.SourceItem as GanttDeadlineTask;
            var deadline = task != null ? task.GanttDeadLine : default(DateTime?);

            if (deadline.HasValue)
            {
                var roundedDeadline = state.Rounder.Round(new DateRange(deadline.Value, deadline.Value));
                var deadlineRange   = new Range <long>(roundedDeadline.Start.Ticks, roundedDeadline.End.Ticks);

                if (deadlineRange.IntersectsWith(state.VisibleTimeRange))
                {
                    yield return(new TimeLineDeadlineEventInfo(deadlineRange, hierarchicalItem.Index));
                }
            }
        }