/// <summary> /// Provide an ordered list for displaying attributes /// </summary> protected override CompartmentMapping[] GetCompartmentMappings(Type melType) { CompartmentMapping[] retVal = base.GetCompartmentMappings(melType); if (melType == typeof(EntityType) && !OrderedElementList <Barker.Attribute, AttributeElementListCompartment> .IsInitialized) { ElementListCompartmentMapping mapping = (ElementListCompartmentMapping)retVal[0]; OrderedElementList <Barker.Attribute, AttributeElementListCompartment> .Initialize( mapping.ElementListGetter, delegate(Barker.Attribute x, Barker.Attribute y) { if (x == y) { return(0); } bool leftIsPrimary = x.IsPrimaryIdComponent; bool rightIsPrimary = y.IsPrimaryIdComponent; if (leftIsPrimary ^ rightIsPrimary) { return(leftIsPrimary ? -1 : 1); } return(x.Name.CompareTo(y.Name)); }); mapping.ElementListGetter = OrderedElementList <Barker.Attribute, AttributeElementListCompartment> .ElementListGetter; } return(retVal); }
/// <summary> /// Provide an ordered list for displaying columns /// </summary> protected override CompartmentMapping[] GetCompartmentMappings(Type melType) { CompartmentMapping[] retVal = base.GetCompartmentMappings(melType); if (melType == typeof(Table) && !OrderedElementList <Column, ColumnElementListCompartment> .IsInitialized) { ElementListCompartmentMapping mapping = (ElementListCompartmentMapping)retVal[0]; OrderedElementList <Column, ColumnElementListCompartment> .Initialize( mapping.ElementListGetter, delegate(Column x, Column y) { if (x == y) { return(0); } bool leftIsPrimary = x.IsPartOfPrimaryIdentifier; bool rightIsPrimary = y.IsPartOfPrimaryIdentifier; if (leftIsPrimary ^ rightIsPrimary) { return(leftIsPrimary ? -1 : 1); } return(x.Name.CompareTo(y.Name)); }); mapping.ElementListGetter = OrderedElementList <Column, ColumnElementListCompartment> .ElementListGetter; } return(retVal); }