File: ErrorWebPart.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 (104 lines) | stat: -rw-r--r-- 3,631 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
//------------------------------------------------------------------------------
// <copyright file="ErrorWebPart.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------

namespace System.Web.UI.WebControls.WebParts {

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Drawing;
    using System.Globalization;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.Util;

    [
    ToolboxItem(false)
    ]
    public class ErrorWebPart : ProxyWebPart, ITrackingPersonalizable {

        private string _errorMessage;

        // No constructor that takes a WebPart, since we ony use the ErrorWebPart when the original
        // WebPart could not be instantiated.

        public ErrorWebPart(string originalID, string originalTypeName, string originalPath, string genericWebPartID) :
            base(originalID, originalTypeName, originalPath, genericWebPartID) {
        }

        public string ErrorMessage {
            get {
                return (_errorMessage != null) ? _errorMessage : String.Empty;
            }
            set {
                _errorMessage = value;
            }
        }

        protected override void AddAttributesToRender(HtmlTextWriter writer) {
            WebPartZoneBase zone = Zone;
            if (zone != null && !zone.ErrorStyle.IsEmpty) {
                zone.ErrorStyle.AddAttributesToRender(writer, this);
            }

            base.AddAttributesToRender(writer);
        }

        // Can be overridden by derived classes to set properties
        protected virtual void EndLoadPersonalization() {
            // We don't really need to set AllowEdit, since EditorPart.Display has
            // a special case for ErrorWebPart.  However, let's set it to false anyway
            // for consistency.
            AllowEdit = false;

            // We want to force the user to see the ErrorWebPart, and we don't want to allow
            // them to hide or minimize it.
            ChromeState = PartChromeState.Normal;
            Hidden = false;
            AllowHide = false;
            AllowMinimize = false;

            // There is no reason to allow exporting an ErrorWebPart.
            ExportMode = WebPartExportMode.None;

            // We never call IsAuthorized() on ErrorWebParts, so there is no reason for
            // AuthorizationFilter to be set.
            AuthorizationFilter = String.Empty;
        }

        protected internal override void RenderContents(HtmlTextWriter writer) {
            string errorMessage = ErrorMessage;
            if (!String.IsNullOrEmpty(errorMessage)) {
                writer.WriteEncodedText(SR.GetString(SR.ErrorWebPart_ErrorText, errorMessage));
            }
        }

        #region ITrackingPersonalizable implementation
        // It doesn't really matter what we return from this property, since this codepath will
        // never be reached for the ErrorWebPart.  However, we return true since we will never need
        // the framework to diff our properties.
        bool ITrackingPersonalizable.TracksChanges {
            get {
                return true;
            }
        }

        void ITrackingPersonalizable.BeginLoad() {
        }

        void ITrackingPersonalizable.BeginSave() {
        }

        void ITrackingPersonalizable.EndLoad() {
            EndLoadPersonalization();
        }

        void ITrackingPersonalizable.EndSave() {
        }
        #endregion
    }
}