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]];
     }
 }
Beispiel #3
0
 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]);
     }
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 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));
 }
Beispiel #6
0
        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);
        }
Beispiel #7
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);
 }