using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace Harlinn.Oracle.DBTool.Example.Entities
{
public class EntitySourceBase : Component, IBindingList
{
[NonSerialized]
IBindingList bindingList;
public EntitySourceBase()
{
}
[Bindable(false),Browsable(false)]
public IBindingList BindingList
{
get
{
return bindingList;
}
}
public void SetBindingList(IBindingList theBindingList)
{
if (bindingList == theBindingList)
return;
if (bindingList != null)
{
bindingList.ListChanged -= bindingList_ListChanged;
}
bindingList = theBindingList;
if (bindingList != null)
{
bindingList.ListChanged += bindingList_ListChanged;
}
OnListChanged(new ListChangedEventArgs(ListChangedType.Reset,null));
}
protected virtual IBindingList GetBindingList()
{
return bindingList;
}
void bindingList_ListChanged(object sender, ListChangedEventArgs e)
{
if (ListChanged != null)
{
ListChanged(this, e);
}
}
protected virtual void OnListChanged(ListChangedEventArgs eventArgs)
{
if (ListChanged != null)
{
ListChanged(this, eventArgs);
}
}
public void AddIndex(PropertyDescriptor property)
{
GetBindingList().AddIndex(property);
}
public object AddNew()
{
return GetBindingList().AddNew();
}
public bool AllowEdit
{
get
{
return GetBindingList().AllowEdit;
}
}
public bool AllowNew
{
get
{
return GetBindingList().AllowNew;
}
}
public bool AllowRemove
{
get
{
return GetBindingList().AllowRemove;
}
}
public void ApplySort(PropertyDescriptor property, ListSortDirection direction)
{
GetBindingList().ApplySort(property, direction);
}
public int Find(PropertyDescriptor property, object key)
{
return GetBindingList().Find(property, key);
}
public bool IsSorted
{
get
{
return GetBindingList().IsSorted;
}
}
public event ListChangedEventHandler ListChanged;
public void RemoveIndex(PropertyDescriptor property)
{
GetBindingList().RemoveIndex(property);
}
public void RemoveSort()
{
GetBindingList().RemoveSort();
}
public ListSortDirection SortDirection
{
get
{
return GetBindingList().SortDirection;
}
}
public PropertyDescriptor SortProperty
{
get
{
return GetBindingList().SortProperty;
}
}
public bool SupportsChangeNotification
{
get
{
return GetBindingList().SupportsChangeNotification;
}
}
public bool SupportsSearching
{
get
{
return GetBindingList().SupportsSearching;
}
}
public bool SupportsSorting
{
get
{
return GetBindingList().SupportsSorting;
}
}
public int Add(object value)
{
return GetBindingList().Add(value);
}
public void Clear()
{
GetBindingList().Clear();
}
public bool Contains(object value)
{
return GetBindingList().Contains(value);
}
public int IndexOf(object value)
{
return GetBindingList().IndexOf(value);
}
public void Insert(int index, object value)
{
GetBindingList().Insert(index, value);
}
public bool IsFixedSize
{
get
{
return GetBindingList().IsFixedSize;
}
}
public bool IsReadOnly
{
get
{
return GetBindingList().IsReadOnly;
}
}
public void Remove(object value)
{
GetBindingList().Remove(value);
}
public void RemoveAt(int index)
{
GetBindingList().RemoveAt(index);
}
public object this[int index]
{
get
{
return GetBindingList()[index];
}
set
{
GetBindingList()[index] = value;
}
}
public void CopyTo(Array array, int index)
{
GetBindingList().CopyTo(array, index);
}
public int Count
{
get
{
return GetBindingList().Count;
}
}
public bool IsSynchronized
{
get
{
return GetBindingList().IsSynchronized;
}
}
public object SyncRoot
{
get
{
return GetBindingList().SyncRoot;
}
}
public System.Collections.IEnumerator GetEnumerator()
{
return GetBindingList().GetEnumerator();
}
}
}