2004-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / Literal.cs
1 //
2 // System.Web.UI.WebControls.Literal.cs
3 //
4 // Authors:
5 //   Gaurav Vaish (gvaish@iitk.ac.in)
6 //   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
7 //
8 // (C) Gaurav Vaish (2002)
9 // (C) 2003 Andreas Nahr
10 //\r
11
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32 \r
33 using System;\r
34 using System.Web;\r
35 using System.Web.UI;\r
36 using System.ComponentModel;\r
37 \r
38 namespace System.Web.UI.WebControls\r
39 {\r
40         [DefaultProperty("Text")]\r
41         [ControlBuilder(typeof(LiteralControlBuilder))]\r
42         [DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, " + Consts.AssemblySystem_Design)]\r
43         public class Literal : Control\r
44         {\r
45                 public Literal () : base ()\r
46                 {\r
47                 }\r
48
49                 [DefaultValue (""), Bindable (true), WebCategory ("Appearance")]
50                 [WebSysDescription ("The text for the literal WebControl.")]\r
51                 public string Text\r
52                 {\r
53                         get {\r
54                                 object o = ViewState ["Text"];\r
55                                 return (o == null) ? String.Empty : (string) o;\r
56                         }\r
57 \r
58                         set { ViewState ["Text"] = value; }\r
59                 }\r
60 \r
61                 protected override ControlCollection CreateControlCollection ()\r
62                 {\r
63                         return new EmptyControlCollection (this);\r
64                 }\r
65 \r
66                 protected override void AddParsedSubObject (object obj)\r
67                 {\r
68                         if (!(obj is LiteralControl))\r
69                                 throw new HttpException (HttpRuntime.FormatResourceString (\r
70                                                         "Cannot_Have_Children_Of_Type", "Literal",\r
71                                                         obj.GetType ().Name.ToString ()));\r
72 \r
73                         Text = ((LiteralControl) obj).Text;\r
74                 }\r
75 \r
76                 protected override void Render (HtmlTextWriter writer)\r
77                 {\r
78                         if (Text.Length > 0)\r
79                                 writer.Write (Text);\r
80                 }\r
81         }\r
82 }\r
83 \r