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; }
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); }
private void CalculateAxesWidth() { AxisElement axis = null; for (int i = _axes.Count - 1; i >= 0; i--) { _axes[i].CalculateWidth(axis); axis = _axes[i]; } }
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; } } } }
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); }