// // System.Windows.Forms.ListControl.cs // // Author: // stubbed out by Daniel Carrera (dcarrera@math.toronto.edu) // Dennis Hayes (dennish@raytek.com) // Brian Takita (brian.takita@runbox.com) // (C) 2002/3 Ximian, Inc // using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Reflection; namespace System.Windows.Forms { // // // public abstract class ListControl : Control { internal string DisplayMember_ = String.Empty; internal object DataSource_; //ControlStyles controlStyles; // // --- Public Properties // [MonoTODO] public object DataSource { get { return DataSource_; } set { if (DataSource_ != value) { if ((value is IList) || (value is IListSource)) { DataSource_ = value; OnDataSourceChanged (new EventArgs ()); } else { throw new Exception ("Complex DataBinding accepts as a data source either an IList or an IListSource"); } } } } [MonoTODO] public string DisplayMember { get { return DisplayMember_; } set { if (DisplayMember_ != value) { DisplayMember_ = value; OnDisplayMemberChanged(new EventArgs()); } } } internal string getDisplayMemberOfObj (object obj) { string objectString = String.Empty; Type t = obj.GetType(); if (DisplayMember != String.Empty) { if (t != null) { PropertyInfo prop = t.GetProperty (DisplayMember); if (prop != null) objectString = prop.GetValue (obj, null).ToString (); } } if (objectString == String.Empty) objectString = obj.ToString(); return objectString; } internal class ListControlComparer : IComparer { private ListControl owner_ = null; public ListControlComparer(ListControl owner) { owner_ = owner; } public int Compare(object x, object y) { return owner_.getDisplayMemberOfObj(x).CompareTo (owner_.getDisplayMemberOfObj (y)); } } [MonoTODO] public abstract int SelectedIndex {get;set;} [MonoTODO] public object SelectedValue { get { throw new NotImplementedException (); } set { //FIXME: } } [MonoTODO] public string ValueMember { get { throw new NotImplementedException (); } set { //FIXME: } } // // --- Public Methods // [MonoTODO] public string GetItemText (object item) { throw new NotImplementedException (); } // // --- Public Events // [MonoTODO] public event EventHandler DataSourceChanged; [MonoTODO] public event EventHandler DisplayMemberChanged; // // --- Protected Constructor // [MonoTODO] protected ListControl () { } // // --- Protected Properties // [MonoTODO] protected CurrencyManager DataManager { get { throw new NotImplementedException (); } } // // --- Protected Methods // [MonoTODO] protected object FilterItemOnProperty(object item){ throw new NotImplementedException (); } [MonoTODO] protected object FilterItemOnProperty(object item, string field){ throw new NotImplementedException (); } [MonoTODO] protected override bool IsInputKey (Keys keyData) { //FIXME: return base.IsInputKey(keyData); } [MonoTODO] protected virtual void OnDataSourceChanged (EventArgs e) { //FIXME: } [MonoTODO] protected virtual void OnDisplayMemberChanged (EventArgs e) { //FIXME: } [MonoTODO] protected virtual void OnSelectedIndexChanged (EventArgs e) { //FIXME: } [MonoTODO] protected virtual void OnSelectedValueChanged (EventArgs e) { //FIXME: } public event EventHandler SelectedValueChanged; public event EventHandler ValueMemberChanged; [MonoTODO] protected override void OnBindingContextChanged (EventArgs e) { //FIXME: base.OnBindingContextChanged(e); } [MonoTODO] protected virtual void OnValueMemberChanged (EventArgs e) { //FIXME: } [MonoTODO] protected virtual void SetItemCore (int index, object value) { //FIXME: } protected abstract void SetItemsCore (IList items); [MonoTODO] protected abstract void RefreshItem (int index); } }