File: DesignTimeParseData.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 (134 lines) | stat: -rw-r--r-- 3,807 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
//------------------------------------------------------------------------------
// <copyright file="DesignTimeParseData.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web.UI {
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Security.Permissions;


    /// <internalonly/>
    public sealed class DesignTimeParseData {

        private IDesignerHost _designerHost;

        private string _documentUrl;

        private EventHandler _dataBindingHandler;

        private string _parseText;

        private string _filter;

        private bool _shouldApplyTheme = false;

        private ICollection _userControlRegisterEntries;


        public DesignTimeParseData(IDesignerHost designerHost, string parseText) : this(designerHost, parseText, String.Empty) {
        }


        public DesignTimeParseData(IDesignerHost designerHost, string parseText, string filter) {

            // note that designerHost can be null, we continue on without using any designer-specific services.
            if (String.IsNullOrEmpty(parseText)) {
                throw new ArgumentNullException("parseText");
            }

            _designerHost = designerHost;
            _parseText = parseText;
            _filter = filter;
        }

        public bool ShouldApplyTheme {
            get {
                return _shouldApplyTheme;
            }
            set {
                _shouldApplyTheme = value;
            }
        }


        public EventHandler DataBindingHandler {
            get {
                return _dataBindingHandler;
            }
            set {
                _dataBindingHandler = value;
            }
        }


        public IDesignerHost DesignerHost {
            get {
                return _designerHost;
            }
        }


        public string DocumentUrl {
            get {
                if (_documentUrl == null) {
                    return String.Empty;
                }

                return _documentUrl;
            }
            set {
                _documentUrl = value;
            }
        }


        public string Filter {
            get {
                if (_filter == null) {
                    return String.Empty;
                }

                return _filter;
            }
        }


        public string ParseText {
            get {
                return _parseText;
            }
        }

        public ICollection UserControlRegisterEntries {
            get {
                return _userControlRegisterEntries;
            }
        }

        internal void SetUserControlRegisterEntries(ICollection userControlRegisterEntries, List<TagNamespaceRegisterEntry> tagRegisterEntries) {
            if (userControlRegisterEntries == null && tagRegisterEntries == null) {
                return;
            }

            List<Triplet> allEntries = new List<Triplet>();
            if (userControlRegisterEntries != null) {
                foreach (UserControlRegisterEntry entry in userControlRegisterEntries) {
                    allEntries.Add(new Triplet(entry.TagPrefix, new Pair(entry.TagName, entry.UserControlSource.ToString()), null));
                }
            }
            if (tagRegisterEntries != null) {
                foreach (TagNamespaceRegisterEntry entry in tagRegisterEntries) {
                    allEntries.Add(new Triplet(entry.TagPrefix, null, new Pair(entry.Namespace, entry.AssemblyName)));
                }
            }

            _userControlRegisterEntries = allEntries;
        }
    }
}