(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System.Design / System.Web.UI.Design.WebControls / RepeaterDesigner.cs
blob2056c009ab1d611dc17a2d24029618981872be51
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 * Namespace: System.Web.UI.Design.WebControls
24 * Class: RepeaterDesigner
26 * Author: Gaurav Vaish
27 * Maintainer: gvaish_mono@lycos.com
29 * (C) Gaurav Vaish (2002)
32 using System;
33 using System.Collections;
34 using System.Data;
35 using System.Web.UI.WebControls;
36 using System.Web.UI.Design;
38 namespace System.Web.UI.Design.WebControls
40 public class RepeaterDesigner : ControlDesigner, IDataSourceProvider
42 private DataTable desTimeDataTable;
43 private DataTable dummyDataTable;
44 private Repeater repeater;
46 public RepeaterDesigner()
50 public string DataMember
52 get
54 return repeater.DataMember;
56 set
58 repeater.DataMember = value;
62 public string DataSource
64 get
66 DataBinding db = DataBindings["DataSource"];
67 if(db != null)
68 return db.Expression;
69 return String.Empty;
71 set
73 if(value == null || value.Length == 0)
75 DataBindings.Remove("DataSource");
76 } else
78 DataBinding toSet = new DataBinding("DataSource",
79 typeof(IEnumerable), value);
80 toSet.Expression = value;
81 DataBindings.Add(toSet);
83 OnDataSourceChanged();
84 OnBindingsCollectionChanged("DataSource");
88 public virtual void OnDataSourceChanged()
90 desTimeDataTable = null;
93 protected bool TemplateExists
95 get
97 return (repeater.ItemTemplate != null ||
98 repeater.HeaderTemplate != null ||
99 repeater.FooterTemplate != null ||
100 repeater.AlternatingItemTemplate != null);
104 protected IEnumerable GetDesignTimeDataSource(int minimumRows)
106 return GetDesignTimeDataSource(GetResolvedSelectedDataSource(),
107 minimumRows);
110 protected IEnumerable GetDesignTimeDataSource(IEnumerable selectedDataSource,
111 int minimumRows)
113 DataTable toDeploy = desTimeDataTable;
114 if(toDeploy == null)
116 if(selectedDataSource != null)
118 desTimeDataTable = DesignTimeData.CreateSampleDataTable(
119 selectedDataSource);
120 toDeploy = desTimeDataTable;
121 } else
123 if(dummyDataTable == null)
124 dummyDataTable = DesignTimeData.CreateDummyDataTable();
125 toDeploy = dummyDataTable;
128 return DesignTimeData.GetDesignTimeDataSource(toDeploy,
129 minimumRows);
132 protected override void Dispose(bool disposing)
134 if(disposing)
135 repeater = null;
136 base.Dispose(disposing);
139 public object GetSelectedDataSource()
141 object retVal = null;
142 DataBinding db = DataBindings["DataSource"];
143 if(db != null)
145 retVal = DesignTimeData.GetSelectedDataSource(repeater, db.Expression);
147 return retVal;
150 public virtual IEnumerable GetResolvedSelectedDataSource()
152 IEnumerable retVal = null;
153 DataBinding db = DataBindings["DataSource"];
154 if(db != null)
156 retVal = DesignTimeData.GetSelectedDataSource(repeater, db.Expression, DataMember);
158 return retVal;