private static MultiPropertyDescriptorGridEntry[] SortParenEntries(MultiPropertyDescriptorGridEntry[] entries) { MultiPropertyDescriptorGridEntry[] entryArray = null; int num = 0; for (int i = 0; i < entries.Length; i++) { if (entries[i].ParensAroundName) { if (entryArray == null) { entryArray = new MultiPropertyDescriptorGridEntry[entries.Length]; } entryArray[num++] = entries[i]; entries[i] = null; } } if (num > 0) { for (int j = 0; j < entries.Length; j++) { if (entries[j] != null) { entryArray[num++] = entries[j]; } } entries = entryArray; } return(entries); }
private static MultiPropertyDescriptorGridEntry[] SortParenEntries(MultiPropertyDescriptorGridEntry[] entries) { MultiPropertyDescriptorGridEntry[] newEntries = null; int newPos = 0; // first scan the list and move any parentesized properties to the front. for (int i = 0; i < entries.Length; i++) { if (entries[i].ParensAroundName) { if (newEntries == null) { newEntries = new MultiPropertyDescriptorGridEntry[entries.Length]; } newEntries[newPos++] = entries[i]; entries[i] = null; } } // second pass, copy any that didn't have the parens. if (newPos > 0) { for (int i = 0; i < entries.Length; i++) { if (entries[i] != null) { newEntries[newPos++] = entries[i]; } } entries = newEntries; } return(entries); }
public static MultiPropertyDescriptorGridEntry[] GetMergedProperties(object[] rgobjs, GridEntry parentEntry, PropertySort sort, PropertyTab tab) { MultiPropertyDescriptorGridEntry[] result = null; try { int cLength = rgobjs.Length; object[] rgobjArgs = new object[1]; if ((sort & PropertySort.Alphabetical) != 0) { ArrayList props = GetCommonProperties(rgobjs, true, tab, parentEntry); MultiPropertyDescriptorGridEntry[] entries = new MultiPropertyDescriptorGridEntry[props.Count]; for (int i = 0; i < entries.Length; i++) { entries[i] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[])props[i], false); } result = SortParenEntries(entries); } else { object[] sortObjs = new object[cLength - 1]; Array.Copy(rgobjs, 1, sortObjs, 0, cLength - 1); ArrayList props = GetCommonProperties(sortObjs, true, tab, parentEntry); // this'll work for just one as well ArrayList firstProps = GetCommonProperties(new object[] { rgobjs[0] }, false, tab, parentEntry); PropertyDescriptor[] firstPds = new PropertyDescriptor[firstProps.Count]; for (int i = 0; i < firstProps.Count; i++) { firstPds[i] = ((PropertyDescriptor[])firstProps[i])[0]; } props = UnsortedMerge(firstPds, props); MultiPropertyDescriptorGridEntry[] entries = new MultiPropertyDescriptorGridEntry[props.Count]; for (int i = 0; i < entries.Length; i++) { entries[i] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[])props[i], false); } result = SortParenEntries(entries); } } catch { } return(result); }
public static MultiPropertyDescriptorGridEntry[] GetMergedProperties(object[] rgobjs, GridEntry parentEntry, PropertySort sort, PropertyTab tab) { MultiPropertyDescriptorGridEntry[] entryArray = null; try { int length = rgobjs.Length; if ((sort & PropertySort.Alphabetical) != PropertySort.NoSort) { ArrayList list = GetCommonProperties(rgobjs, true, tab, parentEntry); MultiPropertyDescriptorGridEntry[] entryArray2 = new MultiPropertyDescriptorGridEntry[list.Count]; for (int k = 0; k < entryArray2.Length; k++) { entryArray2[k] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[])list[k], false); } return(SortParenEntries(entryArray2)); } object[] destinationArray = new object[length - 1]; Array.Copy(rgobjs, 1, destinationArray, 0, length - 1); ArrayList sortedMergedEntries = GetCommonProperties(destinationArray, true, tab, parentEntry); ArrayList list3 = GetCommonProperties(new object[] { rgobjs[0] }, false, tab, parentEntry); PropertyDescriptor[] baseEntries = new PropertyDescriptor[list3.Count]; for (int i = 0; i < list3.Count; i++) { baseEntries[i] = ((PropertyDescriptor[])list3[i])[0]; } sortedMergedEntries = UnsortedMerge(baseEntries, sortedMergedEntries); MultiPropertyDescriptorGridEntry[] entries = new MultiPropertyDescriptorGridEntry[sortedMergedEntries.Count]; for (int j = 0; j < entries.Length; j++) { entries[j] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[])sortedMergedEntries[j], false); } entryArray = SortParenEntries(entries); } catch { } return(entryArray); }
private static MultiPropertyDescriptorGridEntry[] SortParenEntries(MultiPropertyDescriptorGridEntry[] entries) { MultiPropertyDescriptorGridEntry[] entryArray = null; int num = 0; for (int i = 0; i < entries.Length; i++) { if (entries[i].ParensAroundName) { if (entryArray == null) { entryArray = new MultiPropertyDescriptorGridEntry[entries.Length]; } entryArray[num++] = entries[i]; entries[i] = null; } } if (num > 0) { for (int j = 0; j < entries.Length; j++) { if (entries[j] != null) { entryArray[num++] = entries[j]; } } entries = entryArray; } return entries; }
public static MultiPropertyDescriptorGridEntry[] GetMergedProperties(object[] rgobjs, GridEntry parentEntry, PropertySort sort, PropertyTab tab) { MultiPropertyDescriptorGridEntry[] entryArray = null; try { int length = rgobjs.Length; if ((sort & PropertySort.Alphabetical) != PropertySort.NoSort) { ArrayList list = GetCommonProperties(rgobjs, true, tab, parentEntry); MultiPropertyDescriptorGridEntry[] entryArray2 = new MultiPropertyDescriptorGridEntry[list.Count]; for (int k = 0; k < entryArray2.Length; k++) { entryArray2[k] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[]) list[k], false); } return SortParenEntries(entryArray2); } object[] destinationArray = new object[length - 1]; Array.Copy(rgobjs, 1, destinationArray, 0, length - 1); ArrayList sortedMergedEntries = GetCommonProperties(destinationArray, true, tab, parentEntry); ArrayList list3 = GetCommonProperties(new object[] { rgobjs[0] }, false, tab, parentEntry); PropertyDescriptor[] baseEntries = new PropertyDescriptor[list3.Count]; for (int i = 0; i < list3.Count; i++) { baseEntries[i] = ((PropertyDescriptor[]) list3[i])[0]; } sortedMergedEntries = UnsortedMerge(baseEntries, sortedMergedEntries); MultiPropertyDescriptorGridEntry[] entries = new MultiPropertyDescriptorGridEntry[sortedMergedEntries.Count]; for (int j = 0; j < entries.Length; j++) { entries[j] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[]) sortedMergedEntries[j], false); } entryArray = SortParenEntries(entries); } catch { } return entryArray; }
public static MultiPropertyDescriptorGridEntry[] GetMergedProperties(object[] rgobjs, GridEntry parentEntry, PropertySort sort, PropertyTab tab) { MultiPropertyDescriptorGridEntry[] result = null; try { int cLength = rgobjs.Length; object[] rgobjArgs = new object[1]; if((sort & PropertySort.Alphabetical) != 0) { ArrayList props = GetCommonProperties(rgobjs, true, tab, parentEntry); MultiPropertyDescriptorGridEntry[] entries = new MultiPropertyDescriptorGridEntry[props.Count]; for (int i=0; i < entries.Length; i++) { entries[i] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[])props[i], false); } result = SortParenEntries(entries); } else { object[] sortObjs = new object[cLength - 1]; Array.Copy(rgobjs, 1, sortObjs, 0, cLength - 1); ArrayList props = GetCommonProperties(sortObjs, true, tab, parentEntry); // this'll work for just one as well ArrayList firstProps = GetCommonProperties(new object[]{rgobjs[0]}, false, tab, parentEntry); PropertyDescriptor[] firstPds = new PropertyDescriptor[firstProps.Count]; for (int i = 0; i < firstProps.Count; i++) { firstPds[i] = ((PropertyDescriptor[])firstProps[i])[0]; } props = UnsortedMerge(firstPds, props); MultiPropertyDescriptorGridEntry[] entries = new MultiPropertyDescriptorGridEntry[props.Count]; for (int i=0; i < entries.Length; i++) { entries[i] = new MultiPropertyDescriptorGridEntry(parentEntry.OwnerGrid, parentEntry, rgobjs, (PropertyDescriptor[])props[i], false); } result = SortParenEntries(entries); } } catch { } return result; }
private static MultiPropertyDescriptorGridEntry[] SortParenEntries(MultiPropertyDescriptorGridEntry[] entries) { MultiPropertyDescriptorGridEntry[] newEntries = null; int newPos = 0; // first scan the list and move any parentesized properties to the front. for (int i = 0; i < entries.Length; i++) { if (entries[i].ParensAroundName) { if (newEntries == null) { newEntries = new MultiPropertyDescriptorGridEntry[entries.Length]; } newEntries[newPos++] = entries[i]; entries[i] = null; } } // second pass, copy any that didn't have the parens. if (newPos > 0) { for (int i = 0; i < entries.Length; i++) { if (entries[i] != null) { newEntries[newPos++] = entries[i]; } } entries = newEntries; } return entries; }
public static MultiPropertyDescriptorGridEntry[] GetMergedProperties( object[] objects, GridEntry parentEntry, PropertySort sort, PropertyTab tab) { MultiPropertyDescriptorGridEntry[] result = null; try { int length = objects.Length; if ((sort & PropertySort.Alphabetical) != 0) { ArrayList commonProperties = GetCommonProperties(objects, presort: true, tab, parentEntry); var entries = new MultiPropertyDescriptorGridEntry[commonProperties.Count]; for (int i = 0; i < entries.Length; i++) { entries[i] = new MultiPropertyDescriptorGridEntry( parentEntry.OwnerGrid, parentEntry, objects, (PropertyDescriptor[])commonProperties[i], hide: false); } result = SortParenEntries(entries); } else { object[] sortObjects = new object[length - 1]; Array.Copy(objects, 1, sortObjects, 0, length - 1); ArrayList properties = GetCommonProperties(sortObjects, presort: true, tab, parentEntry); // This will work for just one as well. ArrayList firstProperties = GetCommonProperties(new object[] { objects[0] }, presort: false, tab, parentEntry); var firstPropertyDescriptors = new PropertyDescriptor[firstProperties.Count]; for (int i = 0; i < firstProperties.Count; i++) { firstPropertyDescriptors[i] = ((PropertyDescriptor[])firstProperties[i])[0]; } properties = UnsortedMerge(firstPropertyDescriptors, properties); var entries = new MultiPropertyDescriptorGridEntry[properties.Count]; for (int i = 0; i < entries.Length; i++) { entries[i] = new MultiPropertyDescriptorGridEntry( parentEntry.OwnerGrid, parentEntry, objects, (PropertyDescriptor[])properties[i], hide: false); } result = SortParenEntries(entries); } } catch { } return(result); }