File: ControlAdapter.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (136 lines) | stat: -rw-r--r-- 4,315 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
//How to set the _control

//------------------------------------------------------------------------------
// <copyright file="ControlAdapter.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------

namespace System.Web.UI.Adapters {
    using System;
    using System.ComponentModel;
    using System.Security.Permissions;

    /* Defines the properties, methods, and events shared by all server control
     * adapters in the Web Forms page framework.
    */
    public abstract class ControlAdapter {
        private HttpBrowserCapabilities _browser = null;

        internal Control _control; //control associated with this adapter

        [
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
        ]
        protected Control Control {
            get {
                return _control;
            }
        }

        /* Indicates the page on which the associated control resides.
        */
        [
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
        ]
        protected Page Page {
            get {
                if(Control != null)
                    return Control.Page;
                return null;
            }
        }

        [
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
        ]
        protected PageAdapter PageAdapter {
            get {
                if(Control != null && Control.Page != null)
                    return Control.Page.PageAdapter;
                return null;
            }
        }

        protected HttpBrowserCapabilities Browser {
            get {
                if (_browser == null) {
                    if (Page.RequestInternal != null) {
                        _browser = Page.RequestInternal.Browser;
                    }
                    else {
                        /* VSWhidbey 83667: In post-cache substitution, Page.Request 
                         * would not be available. Then we try to 
                         * use the more expensive way to access the current 
                         * context and get the request handle.
                         */
                        HttpContext context = HttpContext.Current;
                        if (context != null && context.Request != null) {
                            _browser = context.Request.Browser;
                        }
                    }
                }

                return _browser;
            }
        }

        protected internal virtual void OnInit(EventArgs e) {
            Control.OnInit(e);
        }

        protected internal virtual void OnLoad(EventArgs e) {
            Control.OnLoad(e);
        }

        protected internal virtual void OnPreRender(EventArgs e) {
            Control.OnPreRender(e);
        }

        protected internal virtual void Render(HtmlTextWriter writer) {
            //
            if(_control != null) {
                _control.Render(writer);
            }
        }

        protected virtual void RenderChildren(HtmlTextWriter writer) {
            if(_control != null) {
                _control.RenderChildren(writer);
            }
        }

        protected internal virtual void OnUnload(EventArgs e) {
            Control.OnUnload(e);
        }

        protected internal virtual void BeginRender(HtmlTextWriter writer) {
            writer.BeginRender();
        }

        protected internal virtual void CreateChildControls() {
            Control.CreateChildControls();
        }

        protected internal virtual void EndRender(HtmlTextWriter writer) {
            writer.EndRender();
        }

        protected internal virtual void LoadAdapterControlState(object state) {
        }
        
        protected internal virtual void LoadAdapterViewState(object state) {
        }

        protected internal virtual object SaveAdapterControlState() {
            return null;
        }
        
        protected internal virtual object SaveAdapterViewState() {
            return null;
        }
    }
}