1 //------------------------------------------------------------------------------
2 // <copyright file="PageWrapper.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //------------------------------------------------------------------------------
6 
7 namespace System.Web.UI {
8     using System;
9     using System.Collections;
10     using System.Collections.Generic;
11     using System.Diagnostics;
12     using System.Web.UI;
13     using System.Web.UI.HtmlControls;
14     using System.Web;
15 
16     internal sealed class PageWrapper : IPage {
17         private readonly Page _page;
18 
PageWrapper(Page page)19         public PageWrapper(Page page) {
20             Debug.Assert(page != null);
21             _page = page;
22         }
23 
24         #region IPage Members
25         string IPage.AppRelativeVirtualPath {
26             get {
27                 return _page.AppRelativeVirtualPath;
28             }
29         }
30 
31         IDictionary<String, String> IPage.HiddenFieldsToRender {
32             get {
33                 return _page._hiddenFieldsToRender;
34             }
35         }
36 
37         IClientScriptManager IPage.ClientScript {
38             get {
39                 return new ClientScriptManagerWrapper(_page.ClientScript);
40             }
41         }
42 
43         bool IPage.EnableEventValidation {
44             get {
45                 return _page.EnableEventValidation;
46             }
47         }
48 
49         IHtmlForm IPage.Form {
50             get {
51                 if (_page.Form != null) {
52                     return new HtmlFormWrapper(_page.Form);
53                 }
54                 return null;
55             }
56         }
57 
58         HtmlHead IPage.Header {
59             get {
60                 return _page.Header;
61             }
62         }
63 
64         bool IPage.IsPostBack {
65             get {
66                 return _page.IsPostBack;
67             }
68         }
69 
70         bool IPage.IsValid {
71             get {
72                 return _page.IsValid;
73             }
74         }
75 
76         IDictionary IPage.Items {
77             get {
78                 return _page.Items;
79             }
80         }
81 
82         HttpRequestBase IPage.Request {
83             get {
84                 return new HttpRequestWrapper(_page.Request);
85             }
86         }
87 
88         HttpResponseInternalBase IPage.Response {
89             get {
90                 return new HttpResponseInternalWrapper(_page.Response);
91             }
92         }
93 
94         HttpServerUtilityBase IPage.Server {
95             get {
96                 return new HttpServerUtilityWrapper(_page.Server);
97             }
98         }
99 
100         string IPage.Title {
101             get {
102                 return _page.Title;
103             }
104             set {
105                 _page.Title = value;
106             }
107         }
108 
109         event EventHandler IPage.Error {
110             add {
111                 _page.Error += value;
112             }
113             remove {
114                 _page.Error -= value;
115             }
116         }
117 
118         event EventHandler IPage.InitComplete {
119             add {
120                 _page.InitComplete += value;
121             }
122             remove {
123                 _page.InitComplete -= value;
124             }
125         }
126 
127         event EventHandler IPage.LoadComplete {
128             add {
129                 _page.LoadComplete += value;
130             }
131             remove {
132                 _page.LoadComplete -= value;
133             }
134         }
135 
IPage.RegisterRequiresViewStateEncryption()136         void IPage.RegisterRequiresViewStateEncryption() {
137             _page.RegisterRequiresViewStateEncryption();
138         }
139 
IPage.SetFocus(Control control)140         void IPage.SetFocus(Control control) {
141             _page.SetFocus(control);
142         }
143 
IPage.SetFocus(string clientID)144         void IPage.SetFocus(string clientID) {
145             _page.SetFocus(clientID);
146         }
147 
148         event EventHandler IPage.PreRender {
149             add {
150                 _page.PreRender += value;
151             }
152             remove {
153                 _page.PreRender -= value;
154             }
155         }
156 
157         event EventHandler IPage.PreRenderComplete {
158             add {
159                 _page.PreRenderComplete += value;
160             }
161             remove {
162                 _page.PreRenderComplete -= value;
163             }
164         }
165 
IPage.SetPostFormRenderDelegate(RenderMethod renderMethod)166         void IPage.SetPostFormRenderDelegate(RenderMethod renderMethod) {
167             _page.SetPostFormRenderDelegate(renderMethod);
168         }
169 
IPage.SetRenderMethodDelegate(RenderMethod renderMethod)170         void IPage.SetRenderMethodDelegate(RenderMethod renderMethod) {
171             _page.SetRenderMethodDelegate(renderMethod);
172         }
173 
IPage.Validate(string validationGroup)174         void IPage.Validate(string validationGroup) {
175             _page.Validate(validationGroup);
176         }
177 
IPage.VerifyRenderingInServerForm(Control control)178         void IPage.VerifyRenderingInServerForm(Control control) {
179             _page.VerifyRenderingInServerForm(control);
180         }
181         #endregion
182     }
183 }
184