File: AdCreatedEventArgs.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 (164 lines) | stat: -rw-r--r-- 5,784 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
//------------------------------------------------------------------------------
// <copyright file="AdCreatedEventArgs.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------

namespace System.Web.UI.WebControls {

    using System.Collections;
    using System.Collections.Specialized;
    using System.Globalization;
    using System.Web.Util;


    /// <devdoc>
    /// <para>Provides data for the <see langword='AdCreated'/> event.</para>
    /// </devdoc>
    public class AdCreatedEventArgs : EventArgs {

        internal const string ImageUrlElement = "ImageUrl";
        internal const string NavigateUrlElement = "NavigateUrl";
        internal const string AlternateTextElement = "AlternateText";
        private const string WidthElement = "Width";
        private const string HeightElement = "Height";

        private string imageUrl = String.Empty;
        private string navigateUrl = String.Empty;
        private string alternateText = String.Empty;
        private IDictionary adProperties;

        private bool hasHeight;
        private bool hasWidth;
        private Unit width;
        private Unit height;


        /// <devdoc>
        /// <para>Initializes a new instance of the <see cref='System.Web.UI.WebControls.AdCreatedEventArgs'/> 
        /// class.</para>
        /// </devdoc>
        public AdCreatedEventArgs(IDictionary adProperties) :
            this(adProperties, null, null, null) {
        }

        /// <devdoc>
        ///     <para>Internal constructor for making use of parameter keys if
        ///     provided.  A note is that we cannot change the constructor
        ///     above because it was made public.</para>
        /// </devdoc>
        internal AdCreatedEventArgs(IDictionary adProperties,
                                    String imageUrlField,
                                    String navigateUrlField,
                                    String alternateTextField) {
            if (adProperties != null) {
                // Initialize the other properties from the dictionary
                this.adProperties = adProperties;
                this.imageUrl = GetAdProperty(ImageUrlElement, imageUrlField);
                this.navigateUrl = GetAdProperty(NavigateUrlElement, navigateUrlField);
                this.alternateText = GetAdProperty(AlternateTextElement, alternateTextField);

                // VSWhidbey 141916: Check validity of Width and Height
                hasWidth = GetUnitValue(adProperties, WidthElement, ref width);
                hasHeight = GetUnitValue(adProperties, HeightElement, ref height);
            }
        }

        /// <devdoc>
        ///    <para>Gets the dictionary containing all the advertisement 
        ///       properties extracted from the XML file after the <see langword='AdCreated '/>
        ///       event is raised.</para>
        /// </devdoc>
        public IDictionary AdProperties {
            get {
                return adProperties;
            }
        }

        /// <devdoc>
        ///    <para> 
        ///       Specifies the alternate text and tooltip (if browser supported) that will be
        ///       rendered in the <see cref='System.Web.UI.WebControls.AdRotator'/>.</para>
        /// </devdoc>
        public string AlternateText {
            get { 
                return alternateText;
            }
            set {
                alternateText = value;
            }
        }

        internal bool HasHeight {
            get {
                return hasHeight;
            }
        }

        internal bool HasWidth {
            get {
                return hasWidth;
            }
        }

        internal Unit Height {
            get {
                return height;
            }
        }

        /// <devdoc>
        /// <para> Specifies the image that will be rendered in the <see cref='System.Web.UI.WebControls.AdRotator'/>.</para>
        /// </devdoc>
        public string ImageUrl {
            get {
                return imageUrl;
            }
            set {
                imageUrl = value;
            }
        }

        /// <devdoc>
        ///    <para> Specifies the target URL that will be rendered in the
        ///    <see cref='System.Web.UI.WebControls.AdRotator'/>.</para>
        /// </devdoc>
        public string NavigateUrl {
            get {
                return navigateUrl;
            }
            set {
                navigateUrl = value;
            }
        }

        internal Unit Width {
            get {
                return width;
            }
        }

        private String GetAdProperty(String defaultIndex, String keyIndex) {
            String index = (String.IsNullOrEmpty(keyIndex)) ? defaultIndex : keyIndex;
            String property = (adProperties == null) ? null : (String) adProperties[index];
            return (property == null) ? String.Empty : property;
        }

        private bool GetUnitValue(IDictionary properties, String keyIndex, ref Unit unitValue) {
            Debug.Assert(properties != null);

            string temp = properties[keyIndex] as string;
            if (!String.IsNullOrEmpty(temp)) {
                try {
                    unitValue = Unit.Parse(temp, CultureInfo.InvariantCulture);
                }
                catch {
                    throw new FormatException(
                        SR.GetString(SR.AdRotator_invalid_integer_format, temp, keyIndex, typeof(Unit).FullName));
                }
                return true;
            }
            return false;
        }
    }   
}