view Tools/DocGen/Content/Doc/EditableObjects/EditableObject.cs @ 9:1e85f66cf767 default tip

update bltoolkit
author nickolay
date Thu, 05 Apr 2018 20:53:26 +0300
parents f990fcb411a9
children
line wrap: on
line source

[BLToolkitGenerated]
public sealed class TestObject : EditableObjectTest.TestObject, IEditable, IMemberwiseEditable, IPrintDebugState
{
	// Note that the internal representation of the properties is EditableValue<string>.
	// The EditableValue class provides a mechanism to keep and control the field value state.
	//
	private /*[a]*/EditableValue<string>/*[/a]*/ _firstName;
	private /*[a]*/EditableValue<string>/*[/a]*/ _lastName;

	// PropertyInfo is used for internal purposes.
	//
	private static PropertyInfo _firstName_propertyInfo =
		TypeHelper.GetPropertyInfo(typeof(EditableObjectTest.TestObject), "FirstName", typeof(string), Type.EmptyTypes);
	private static PropertyInfo _lastName_propertyInfo  =
		TypeHelper.GetPropertyInfo(typeof(EditableObjectTest.TestObject), "LastName",  typeof(string), Type.EmptyTypes);

	// Constructors.
	//
	public TestObject()
	{
		this._firstName = new EditableValue<string>("");
		this._lastName  = new EditableValue<string>("");
	}

	public TestObject(InitContext ctx)
	{
		this._firstName = new EditableValue<string>("");
		this._lastName  = new EditableValue<string>("");
	}

	// Abstract property implementation.
	//
	public override string FirstName
	{
		get
		{
			return _firstName./*[a]*/Value/*[/a]*/;
		}

		set
		{
			_firstName./*[a]*/Value/*[/a]*/ = value;

			// The PropertyChanged event support.
			//
			((IPropertyChanged)this)./*[a]*/OnPropertyChanged/*[/a]*/(_firstName_propertyInfo);
		}
	}

	public override string LastName
	{
		get
		{
			return _lastName./*[a]*/Value/*[/a]*/;
		}

		set
		{
			_lastName./*[a]*/Value/*[/a]*/ = value;
			((IPropertyChanged)this)./*[a]*/OnPropertyChanged/*[/a]*/(_lastName_propertyInfo);
		}
	}

	// The IEditable interface implementation.
	//
	bool IEditable.IsDirty
	{
		get { return _firstName.IsDirty || _lastName.IsDirty; }
	}

	void IEditable.AcceptChanges()
	{
		this._firstName.AcceptChanges();
		this._lastName. AcceptChanges();
	}

	void IEditable.RejectChanges()
	{
		this._firstName.RejectChanges();
		this._lastName. RejectChanges();
	}

	// The IMemberwiseEditable interface implementation.
	//
	bool IMemberwiseEditable.AcceptMemberChanges(PropertyInfo propertyInfo, string memberName)
	{
		return
			_firstName.AcceptMemberChanges(_firstName_propertyInfo, memberName) ||
			_lastName. AcceptMemberChanges(_lastName_propertyInfo,  memberName);
	}

	void IMemberwiseEditable.GetDirtyMembers(PropertyInfo propertyInfo, ArrayList list)
	{
		_firstName.GetDirtyMembers(_firstName_propertyInfo, list);
		_lastName. GetDirtyMembers(_lastName_propertyInfo,  list);
	}

	bool IMemberwiseEditable.IsDirtyMember(PropertyInfo propertyInfo, string memberName, ref bool isDirty)
	{
		return
			_firstName.IsDirtyMember(_firstName_propertyInfo, memberName, ref isDirty) ||
			_lastName. IsDirtyMember(_lastName_propertyInfo,  memberName, ref isDirty);
	}

	bool IMemberwiseEditable.RejectMemberChanges(PropertyInfo propertyInfo, string memberName)
	{
		return
			_firstName.RejectMemberChanges(_firstName_propertyInfo, memberName) ||
			_lastName. RejectMemberChanges(_lastName_propertyInfo,  memberName);
	}

	// The IPrintDebugState interface implementation.
	//
	void IPrintDebugState.PrintDebugState(PropertyInfo propertyInfo, ref string str)
	{
		_firstName.PrintDebugState(_firstName_propertyInfo, ref str);
		_lastName. PrintDebugState(_lastName_propertyInfo,  ref str);
	}
}