private static string GetSignals(Type componentType) { var memberNames = CoreReflector.GetFieldAndPropertyNames(componentType); //memberNames.Sort(MemberInfoSort); List<MemberInfo> infos = new List<MemberInfo>(); foreach (var name in memberNames) { MemberWrapper mw = new MemberWrapper(componentType, name); if (mw.MemberType == typeof(Signal)) infos.Add(mw.MemberInfo); } infos.Sort(MemberInfoSort); StringBuilder sb = new StringBuilder(); foreach (var memberInfo in infos) { sb.AppendLine(memberInfo.Name); } return string.Format(@"Signals ({0}): {1} {2}", infos.Count, Line, sb) + NewLine/* + NewLine*/; }
/*private static int ClassNameSort(Type x, Type y) { return String.Compare(x.Name, y.Name, StringComparison.OrdinalIgnoreCase); }*/ #endregion #region Skin parts /// <summary> /// Describes skin parts /// </summary> /// <param name="componentType"></param> /// <returns></returns> public static string GetSkinParts(Type componentType) { if (!typeof(SkinnableComponent).IsAssignableFrom(componentType)) { return string.Format(@"Skin parts: Not a skinnable component." + NewLine + NewLine); } var dict = GuiReflector.GetSkinParts(componentType); // string->bool var list = new List<string>(); foreach (string key in dict.Keys) { list.Add(key); } list.Sort(); StringBuilder sb = new StringBuilder(); foreach (var name in list) { MemberWrapper mw = new MemberWrapper(componentType, name); sb.AppendLine(string.Format("{0} [Type: {1}, Required: {2}]", name, mw.MemberType, dict[name])); } return string.Format(@"Skin parts ({0}): {1} {2}", list.Count, Line, sb) + NewLine/* + NewLine*/; }
/// <summary> /// Describes mulricast delegates /// </summary> /// <param name="componentType"></param> /// <returns></returns> public static string GetMulticastDelegates(Type componentType) { var memberNames = CoreReflector.GetFieldAndPropertyNames(componentType); //memberNames.Sort(MemberInfoSort); List<string> data = new List<string>(); foreach (var name in memberNames) { MemberWrapper mw = new MemberWrapper(componentType, name); if (mw.MemberType == typeof (Core.Events.MulticastDelegate)) { var output = mw.MemberInfo.Name; /*var clazz = mw.MemberInfo.DeclaringType; if (null != clazz) { var types = var instance = Activator.CreateInstance(clazz); var value = mw.GetValue(instance); if (null != value) output = string.Format(@"{0} [{1}]", output, value.GetType().FullName); }*/ var attributes = CoreReflector.GetMemberAttributes<EventAttribute>(mw.MemberInfo); if (attributes.Count > 0) { var eventAttribute = attributes[0]; output = string.Format(@"{0} → {1}", output, eventAttribute); } data.Add(output); } } data.Sort(); StringBuilder sb = new StringBuilder(); foreach (var item in data) { sb.AppendLine(item); } return string.Format(@"Multicast delegates ({0}): {1} {2}", data.Count, Line, sb) + NewLine/* + NewLine*/; }
/** * */ private List<object> CopySelectedItemsForDragDrop() { // Copy the vector so that we don't modify the original // since SelectedIndices returns a reference. var draggedIndices = new List<int>(SelectedIndices); var result = new List<Object>(draggedIndices.Count); // Sort in the order of the data source draggedIndices.Sort(CompareValues); // Copy the items var count = draggedIndices.Count; for (var i = 0; i < count; i++) { result[i] = DataProvider.GetItemAt(draggedIndices[i]); } return result; }