(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System.Web.Mobile / System.Web.UI.MobileControls / ObjectListItem.cs
blob9d576b1fd813368e94d30d7a8ebca0cca6d6a420
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 //
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 //
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 /**
23 * Project : Mono
24 * Namespace : System.Web.UI.MobileControls
25 * Class : ObjectListCommandEventHandler
26 * Author : Gaurav Vaish
28 * Copyright : 2003 with Gaurav Vaish, and with
29 * Ximian Inc
32 using System;
33 using System.Web.Mobile;
35 namespace System.Web.UI.MobileControls
37 public class ObjectListItem : MobileListItem
39 private ObjectList owner;
40 private string[] fields;
41 private bool dirty = false;
43 internal ObjectListItem(ObjectList owner, object dataItem)
44 : base(dataItem, null, null)
46 this.owner = owner;
47 this.fields = new string[owner.AllFields.Count];
50 internal ObjectListItem(ObjectList owner)
51 : this(owner, null)
55 public string this[int key]
57 get
59 if(fields != null && fields.Length >= key - 1
60 && fields[key] != null)
61 return fields[key];
62 return String.Empty;
64 set
66 if(fields != null && fields.Length >= key - 1)
67 fields[key] = value;
68 if(IsTrackingViewState)
69 dirty = true;
73 internal bool Dirty
75 get
77 return dirty;
79 set
81 dirty = value;
85 public string this[string fieldName]
87 get
89 return this[IndexOf(fieldName)];
91 set
93 this[IndexOf(fieldName)] = value;
97 [MonoTODO("Exception_Details_Not_Exact")]
98 private int IndexOf(string fieldName)
100 int index = owner.AllFields.IndexOf(fieldName);
101 if(index < 0)
103 throw new ArgumentException("ObjectList_FieldNotFound");
105 return index;
108 public override bool Equals(object obj)
110 bool retVal = false;
111 if(obj is ObjectListItem)
113 ObjectListItem oli = (ObjectListItem) obj;
114 if(oli.fields != null && this.fields != null)
116 if(this.fields.Length == oli.fields.Length)
118 int i;
119 for(i = 0; i < fields.Length; i++)
121 if(fields[i] != oli.fields[i])
122 break;
124 if(i == fields.Length)
125 retVal = true;
128 retVal &= (Value == oli.Value);
129 retVal &= (Text == oli.Text);
131 return retVal;
134 public override int GetHashCode()
136 return (fields == null ? Value.GetHashCode() :
137 fields[0].GetHashCode());