public ReflectedMinMaxEditableProperty(String name, ReflectedVariable variable, DoubleBackedNumber minValue, DoubleBackedNumber maxValue, DoubleBackedNumber increment) : base(name, variable) { this.MinValue = minValue; this.MaxValue = maxValue; this.Increment = increment; }
/// <summary> /// This is the test function. It will return true if the member should /// be accepted. /// </summary> /// <param name="wrapper">The MemberWrapper with info about the field/property being scanned.</param> /// <returns>True if the member should be included in the results. False to omit it.</returns> public bool allowMember(MemberWrapper wrapper) { if (wrapper.getCustomAttributes(typeof(EditableAttribute), true).Any()) { Type wrappedType = wrapper.getWrappedType(); return(ReflectedVariable.canCreateVariable(wrappedType) || wrappedType.GetInterface(BEHAVIOR_OBJECT_INTERFACE) != null); } return(false); }
/// <summary> /// Constructor. /// </summary> /// <param name="target">The target object.</param> /// <param name="scanner">The MemberScanner to use to learn about target.</param> public ReflectedObjectEditableProperty(Object target, MemberScanner scanner) { this.target = target; this.memberScanner = scanner; IEnumerable <MemberWrapper> matches = memberScanner.getMatchingMembers(target.GetType()); variableList = new List <ReflectedVariable>(); foreach (MemberWrapper wrapper in matches) { if (ReflectedVariable.canCreateVariable(wrapper.getWrappedType())) { variableList.Add(ReflectedVariable.createVariable(wrapper, target)); } } }
/// <summary> /// Constructor. /// </summary> /// <param name="name">A name for this interface.</param> /// <param name="collection">The collection that has the elements this interface will hold.</param> /// <param name="scanner">A MemberScanner to discover the properties of T with.</param> public ReflectedCollectionEditInterface(String name, IEnumerable <T> collection, MemberScanner scanner) { this.memberScanner = scanner; this.name = name; IEnumerable <MemberWrapper> matches = memberScanner.getMatchingMembers(typeof(T)); foreach (MemberWrapper wrapper in matches) { if (ReflectedVariable.canCreateVariable(wrapper.getWrappedType())) { propertyInfo.addColumn(new EditablePropertyColumn(wrapper.getWrappedName(), false)); } } foreach (T item in collection) { addItem(item); } }
/// <summary> /// Constructor. /// </summary> /// <param name="name">The name of the wrapped variable.</param> /// <param name="variable">The ReflectedVariable to be edited.</param> public ReflectedEditableProperty(String name, ReflectedVariable variable) { this.name = name; this.variable = variable; }
/// <summary> /// Add properties to an existing EditInterface. /// </summary> /// <param name="scanner"></param> /// <param name="target"></param> /// <param name="edit"></param> private static void addProperties(MemberScanner scanner, Object target, Type startType, EditInterface edit, ReflectedEditablePropertyProvider customPropProvider) { IEnumerable <MemberWrapper> members = scanner.getMatchingMembers(startType); foreach (MemberWrapper memberWrapper in members) { if (!customPropProvider.addProperties(memberWrapper, target, edit)) { EditableAttribute editable = findEditableAttribute(memberWrapper); bool addAsProperty = (editable != null && editable.ForceAsProperty) || ReflectedVariable.canCreateVariable(memberWrapper.getWrappedType()); if (addAsProperty) { edit.addEditableProperty(editable.createEditableProperty(memberWrapper, target)); } else { Object subObject = memberWrapper.getValue(target, null); if (subObject is EditInterfaceOverride) { EditInterfaceOverride custom = (EditInterfaceOverride)subObject; edit.addSubInterface(custom.getEditInterface(memberWrapper.getWrappedName(), scanner)); } else if (subObject != null) { edit.addSubInterface(createEditInterface(subObject, scanner, memberWrapper.getWrappedName() + " - " + memberWrapper.getWrappedType(), null)); } } } } }
public virtual EditableProperty createEditableProperty(MemberWrapper memberWrapper, Object target) { return(new ReflectedEditableProperty(PrettyName != null ? PrettyName : memberWrapper.getWrappedName(), ReflectedVariable.createVariable(memberWrapper, target)) { Advanced = Advanced }); }
public override EditableProperty createEditableProperty(MemberWrapper memberWrapper, Object target) { return(new ReflectedMinMaxEditableProperty(PrettyName != null ? PrettyName : memberWrapper.getWrappedName(), ReflectedVariable.createVariable(memberWrapper, target), MinValue, MaxValue, Increment) { Advanced = Advanced, }); }