2009-10-30 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / DataControlFieldHeaderCell.cs
1 //
2 // System.Web.UI.WebControls.DataControlFieldHeaderCell.cs
3 //
4 // Authors:
5 //  Lluis Sanchez Gual (lluis@novell.com)
6 //
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
8 //
9
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 // 
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 // 
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30
31 #if NET_2_0
32 using System.Web.UI;
33
34 namespace System.Web.UI.WebControls
35 {
36         public class DataControlFieldHeaderCell : DataControlFieldCell
37         {
38                 TableHeaderScope scope;
39                 
40                 public DataControlFieldHeaderCell (DataControlField containerField): base (HtmlTextWriterTag.Th, containerField)
41                 {
42                 }
43                 
44                 internal DataControlFieldHeaderCell (DataControlField containerField, TableHeaderScope scope): this (containerField)
45                 {
46                         this.scope = scope;
47                 }
48                 
49                 public virtual TableHeaderScope Scope {
50                         get {
51                                 object ob = ViewState ["Scope"];
52                                 if (ob != null) return (TableHeaderScope) ob;
53                                 else return TableHeaderScope.NotSet;
54                         }
55                         set {
56                                 ViewState ["Scope"] = value;
57                         }
58                 }
59                 
60                 public virtual string AbbreviatedText {
61                         get {
62                                 object ob = ViewState ["AbbreviatedText"];
63                                 if (ob != null) return (string) ob;
64                                 else return string.Empty;
65                         }
66                         set {
67                                 ViewState ["AbbreviatedText"] = value;
68                         }
69                 }
70                 
71                 protected override void AddAttributesToRender (HtmlTextWriter writer)
72                 {
73                         base.AddAttributesToRender (writer);
74                         switch (scope) {
75                                 case TableHeaderScope.Column:
76                                         writer.AddAttribute (HtmlTextWriterAttribute.Scope, "col", false);
77                                         break;
78                                 case TableHeaderScope.Row:
79                                         writer.AddAttribute (HtmlTextWriterAttribute.Scope, "row", false);
80                                         break;
81                         }
82                         if (AbbreviatedText.Length > 0)
83                                 writer.AddAttribute (HtmlTextWriterAttribute.Abbr, AbbreviatedText);
84                 }
85         }
86 }
87 #endif