예제 #1
0
 private bool ShouldRenderVerb(WebPartVerb verb, WebPart webPart)
 {
     if (verb == null)
     {
         return(false);
     }
     if (!verb.Visible)
     {
         return(false);
     }
     if ((verb == this.Zone.CloseVerb) && ((!this._personalizationEnabled || !webPart.AllowClose) || !this.Zone.AllowLayoutChange))
     {
         return(false);
     }
     if ((verb == this.Zone.ConnectVerb) && (this.WebPartManager != null))
     {
         if (((this.WebPartManager.DisplayMode != System.Web.UI.WebControls.WebParts.WebPartManager.ConnectDisplayMode) || (webPart == this.WebPartManager.SelectedWebPart)) || !webPart.AllowConnect)
         {
             return(false);
         }
         ConsumerConnectionPointCollection enabledConsumerConnectionPoints = this.WebPartManager.GetEnabledConsumerConnectionPoints(webPart);
         ProviderConnectionPointCollection enabledProviderConnectionPoints = this.WebPartManager.GetEnabledProviderConnectionPoints(webPart);
         if (((enabledConsumerConnectionPoints == null) || (enabledConsumerConnectionPoints.Count == 0)) && ((enabledProviderConnectionPoints == null) || (enabledProviderConnectionPoints.Count == 0)))
         {
             return(false);
         }
     }
     if ((verb == this.Zone.DeleteVerb) && ((((!this._personalizationEnabled || !this.Zone.AllowLayoutChange) || webPart.IsStatic) || (webPart.IsShared && (this._personalizationScope == PersonalizationScope.User))) || ((this.WebPartManager != null) && !this.WebPartManager.DisplayMode.AllowPageDesign)))
     {
         return(false);
     }
     if (((verb == this.Zone.EditVerb) && (this.WebPartManager != null)) && ((this.WebPartManager.DisplayMode != System.Web.UI.WebControls.WebParts.WebPartManager.EditDisplayMode) || (webPart == this.WebPartManager.SelectedWebPart)))
     {
         return(false);
     }
     if ((verb == this.Zone.HelpVerb) && string.IsNullOrEmpty(webPart.HelpUrl))
     {
         return(false);
     }
     if ((verb == this.Zone.MinimizeVerb) && ((!this._personalizationEnabled || (webPart.ChromeState == PartChromeState.Minimized)) || (!webPart.AllowMinimize || !this.Zone.AllowLayoutChange)))
     {
         return(false);
     }
     if ((verb == this.Zone.RestoreVerb) && ((!this._personalizationEnabled || (webPart.ChromeState == PartChromeState.Normal)) || !this.Zone.AllowLayoutChange))
     {
         return(false);
     }
     return((verb != this.Zone.ExportVerb) || (this._personalizationEnabled && (webPart.ExportMode != WebPartExportMode.None)));
 }
예제 #2
0
        private bool ShouldRenderVerb(WebPartVerb verb, WebPart webPart)
        {
            // PERF: Consider caching the Zone.*Verb properties

            // Can have null verbs in the CreateVerbs or WebPart.Verbs collections
            if (verb == null)
            {
                return(false);
            }

            if (!verb.Visible)
            {
                return(false);
            }

            if (verb == Zone.CloseVerb)
            {
                if (!_personalizationEnabled || !webPart.AllowClose || !Zone.AllowLayoutChange)
                {
                    return(false);
                }
            }

            if (verb == Zone.ConnectVerb)
            {
                if (WebPartManager != null)
                {
                    if ((WebPartManager.DisplayMode != WebPartManager.ConnectDisplayMode) ||
                        (webPart == WebPartManager.SelectedWebPart) ||
                        !webPart.AllowConnect)
                    {
                        return(false);
                    }

                    // Don't render Connect verb if web part has no connection points
                    ConsumerConnectionPointCollection consumerConnectionPoints =
                        WebPartManager.GetEnabledConsumerConnectionPoints(webPart);
                    ProviderConnectionPointCollection providerConnectionPoints =
                        WebPartManager.GetEnabledProviderConnectionPoints(webPart);
                    if ((consumerConnectionPoints == null || consumerConnectionPoints.Count == 0) &&
                        (providerConnectionPoints == null || providerConnectionPoints.Count == 0))
                    {
                        return(false);
                    }
                }
            }

            if (verb == Zone.DeleteVerb)
            {
                if (!_personalizationEnabled ||
                    !Zone.AllowLayoutChange ||
                    webPart.IsStatic ||
                    (webPart.IsShared && _personalizationScope == PersonalizationScope.User) ||
                    (WebPartManager != null && !WebPartManager.DisplayMode.AllowPageDesign))
                {
                    return(false);
                }
            }

            if (verb == Zone.EditVerb)
            {
                if (WebPartManager != null &&
                    ((WebPartManager.DisplayMode != WebPartManager.EditDisplayMode) ||
                     (webPart == WebPartManager.SelectedWebPart)))
                {
                    return(false);
                }
            }

            if (verb == Zone.HelpVerb)
            {
                if (String.IsNullOrEmpty(webPart.HelpUrl))
                {
                    return(false);
                }
            }

            if (verb == Zone.MinimizeVerb)
            {
                if (!_personalizationEnabled ||
                    webPart.ChromeState == PartChromeState.Minimized ||
                    !webPart.AllowMinimize ||
                    !Zone.AllowLayoutChange)
                {
                    return(false);
                }
            }

            if (verb == Zone.RestoreVerb)
            {
                if (!_personalizationEnabled ||
                    webPart.ChromeState == PartChromeState.Normal ||
                    !Zone.AllowLayoutChange)
                {
                    return(false);
                }
            }

            if (verb == Zone.ExportVerb)
            {
                if (!_personalizationEnabled ||
                    webPart.ExportMode == WebPartExportMode.None)
                {
                    return(false);
                }
            }

            return(true);
        }