Пример #1
0
 internal TimeCell(int index, DateTime startDate, TimeSpan interval, float left, float width, AxisElement owner)
 {
     _index     = index;
     _startDate = startDate;
     _interval  = interval;
     _left      = left;
     _width     = width;
     _owner     = owner;
 }
Пример #2
0
        public AxisElement CreateAxisElement(ScaleLevel scale, int interval, string format, DayOfWeek?firstDay)
        {
            AxisElement element = new AxisElement(this, scale, interval, format, firstDay);

            element.ViewStartDate = _startDate;
            _axes.Add(element);
            AddElement(element, _head);
            return(element);
        }
Пример #3
0
 internal TimeCell(int index, DateTime startDate, TimeSpan interval, float left, float width, AxisElement owner)
 {
     _index = index;
     _startDate = startDate;
     _interval = interval;
     _left = left;
     _width = width;
     _owner = owner;
 }
Пример #4
0
        private void CalculateAxesWidth()
        {
            AxisElement axis = null;

            for (int i = _axes.Count - 1; i >= 0; i--)
            {
                _axes[i].CalculateWidth(axis);
                axis = _axes[i];
            }
        }
Пример #5
0
        public void CalculateWidth(AxisElement nextAxis)
        {
            if (this.Width <= 0)
            {
                if (nextAxis != null)
                {
                    this.Width = Convert.ToSingle(nextAxis.Width * this.Interval.TotalMinutes / nextAxis.Interval.TotalMinutes);
                }
                else
                {
                    // TODO: Calculate cell width.
                    switch (_scale)
                    {
                    case ScaleLevel.Hour:
                        this.Width = 60;
                        break;

                    case ScaleLevel.Day:
                        this.Width = 24;
                        break;
                    }
                }
            }
        }
Пример #6
0
        private Element LoadElement(XPathNavigator node)
        {
            Element element = null;

            switch (node.Name)
            {
            case DataElement.ElementName:
                _data = new DataElement(this, node);
                if (_data.StartDate != null)
                {
                    _startDate = _data.StartDate.Value;
                }
                element = _data;
                break;

            case HeadElement.ElementName:
                _head   = new HeadElement(this, node);
                element = _head;
                break;

            case BodyElement.ElementName:
                _body   = new BodyElement(this, node);
                element = _body;
                break;

            case CalendarElement.ElementName:
                _calendar = new CalendarElement(this, node);
                element   = _calendar;
                break;

            case DayElement.ElementName:
                element = new DayElement(this, node);
                break;

            case AxisElement.ElementName:
                AxisElement axis = new AxisElement(this, node);
                axis.ViewStartDate = _startDate;
                _axes.Add(axis);
                element = axis;
                break;

            case SpanElement.ElementName:
                element = new SpanElement(this, node);
                break;

            case IntervalElement.ElementName:
                element = new IntervalElement(this, node);
                break;

            case PointElement.ElementName:
                element = new PointElement(this, node);
                break;

            case RelationElement.ElementName:
                RelationElement relation = new RelationElement(this, node);
                relation.Origin = _map[relation.OriginId];
                relation.Target = _map[relation.TargetId];
                element         = relation;
                break;

            default:
                element = new GanttElement(this, node);
                break;
            }

            if (element != null)
            {
                AddElementToMap(element);

                if (node.HasChildren)
                {
                    foreach (XPathNavigator childNode in node.SelectChildren(XPathNodeType.Element))
                    {
                        Element childElement = LoadElement(childNode);
                        if (childElement != null)
                        {
                            element.AddChild(childElement);
                        }
                    }
                }
            }

            return(element);
        }