public GridViewRelationDataProvider(GridViewTemplate template) : base(template) { this.relation = template.MasterTemplate.Relations.Find(template.Parent, template); if (this.relation == null) { return; } this.comparer = new GridViewRelationRowComparer(this.relation); this.indexer = new AvlTree <GridViewRowInfo>((IComparer <GridViewRowInfo>) this.comparer); this.Refresh(); this.Template.ListSource.CollectionChanged += new NotifyCollectionChangedEventHandler(this.ListSource_CollectionChanged); }
public GridViewSelfReferenceComparer(GridViewRelation relation) { this.relation = relation; this.parentColumns = new GridViewColumn[relation.ParentColumnNames.Count]; for (int index = 0; index < this.relation.ParentColumnNames.Count; ++index) { this.parentColumns[index] = (GridViewColumn)this.relation.ParentTemplate.Columns[this.relation.ParentColumnNames[index]]; } this.childColumns = new GridViewColumn[relation.ChildColumnNames.Count]; for (int index = 0; index < this.relation.ChildColumnNames.Count; ++index) { this.childColumns[index] = (GridViewColumn)this.relation.ChildTemplate.Columns[this.relation.ChildColumnNames[index]]; } }
public void CopyTo(GridViewRelation relation) { relation.RelationName = this.relationName; relation.parentTemplate = this.parentTemplate; relation.childTemplate = this.childTemplate; for (int index = 0; index < this.ParentColumnNames.Count; ++index) { relation.ParentColumnNames.Add(this.parentColumnNames[index]); } for (int index = 0; index < this.ChildColumnNames.Count; ++index) { relation.ChildColumnNames.Add(this.childColumnNames[index]); } }
object ICloneable.Clone() { GridViewRelation gridViewRelation = new GridViewRelation(); gridViewRelation.RelationName = this.relationName; gridViewRelation.parentTemplate = this.parentTemplate; gridViewRelation.childTemplate = this.childTemplate; for (int index = 0; index < this.ParentColumnNames.Count; ++index) { gridViewRelation.ParentColumnNames.Add(this.parentColumnNames[index]); } for (int index = 0; index < this.ChildColumnNames.Count; ++index) { gridViewRelation.ChildColumnNames.Add(this.childColumnNames[index]); } return((object)gridViewRelation); }
public static GridViewHierarchyDataProvider Create( GridViewRelation relation) { if (relation == null) { return((GridViewHierarchyDataProvider)null); } if (relation.IsSelfReference) { return((GridViewHierarchyDataProvider) new GridViewSelfReferenceDataProvider(relation.ChildTemplate)); } if (relation.IsObjectRelational) { return((GridViewHierarchyDataProvider) new GridViewObjectRelationalDataProvider(relation.ChildTemplate)); } return((GridViewHierarchyDataProvider) new GridViewRelationDataProvider(relation.ChildTemplate)); }
public int CompareTo(object obj) { GridViewRelation gridViewRelation = obj as GridViewRelation; if (gridViewRelation == null || this.ParentTemplate != gridViewRelation.ParentTemplate || (this.ChildTemplate != gridViewRelation.ChildTemplate || this.ParentColumnNames.Count != gridViewRelation.parentColumnNames.Count) || this.ChildColumnNames.Count != gridViewRelation.ChildColumnNames.Count) { return(-1); } for (int index = 0; index < this.ParentColumnNames.Count; ++index) { if (this.ParentColumnNames[index].CompareTo(gridViewRelation.ParentColumnNames[index]) != 0) { return(-1); } } for (int index = 0; index < this.ChildColumnNames.Count; ++index) { if (this.ChildColumnNames[index].CompareTo(gridViewRelation.ChildColumnNames[index]) != 0) { return(-1); } } return(0); }
private void FillParentData() { GridViewHierarchyRowInfo parent = this.Parent as GridViewHierarchyRowInfo; if (parent == null) { return; } GridViewRelation relation = this.ViewTemplate.HierarchyDataProvider.Relation; if (relation == null) { return; } for (int index = 0; index < relation.ChildColumnNames.Count; ++index) { GridViewColumn column = (GridViewColumn)this.ViewTemplate.Columns[relation.ChildColumnNames[index]]; if (column != null) { this[column] = parent[(GridViewColumn)parent.ViewTemplate.Columns[relation.ParentColumnNames[index]]]; } } this.InvalidateRow(); }
public GridViewRelationRowComparer(GridViewRelation relation) { this.relation = relation; this.Reset(); }
public GridViewObjectRelationalDataProvider(GridViewTemplate template) : base(template) { this.relation = template.MasterTemplate.Relations.Find(template.Parent, template); }