/// <summary>
        /// Gets whether a widget with the specified name already exists
        /// </summary>
        /// <param name="appDef"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static bool WidgetNameExists(this IApplicationDefinition appDef, string name)
        {
            Check.NotNull(appDef, "appDef");
            Check.NotEmpty(name, "name");

            return(appDef.FindWidget(name) != null);
        }
 private void ValidateWidgetReferencesForMenu(IApplicationDefinition fusionApp, IMenu menu, List <ValidationIssue> issues, ResourceValidationContext context, IResource resource)
 {
     foreach (var item in menu.Items)
     {
         var subMenu   = item as IMenu;
         var widgetRef = item as IWidgetItem;
         if (subMenu != null)
         {
             ValidateWidgetReferencesForMenu(fusionApp, subMenu, issues, context, resource);
         }
         else if (widgetRef != null)
         {
             var    id         = widgetRef.Widget;
             var    wgt        = fusionApp.FindWidget(id);
             var    uiWgt      = wgt as IUIWidget;
             string parentName = "<unknown>"; //NOXLATE
             var    cnt        = menu as IWidgetContainer;
             var    fly        = menu as IFlyoutItem;
             if (cnt != null)
             {
                 parentName = cnt.Name;
             }
             else if (fly != null)
             {
                 parentName = fly.Label;
             }
             if (wgt == null)
             {
                 issues.Add(new ValidationIssue(resource, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_InvalidWidgetReference, string.Format(Strings.ADF_InvalidWidgetReferenceInContainer, id, parentName)));
             }
             else
             {
                 if (uiWgt == null)
                 {
                     issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NonStandardUiWidgetAttachedToContainer, string.Format(Strings.ADF_NonUiWidgetAttachedToContainer, id, parentName)));
                 }
                 else
                 {
                     if (string.IsNullOrEmpty(uiWgt.Label) && string.IsNullOrEmpty(uiWgt.ImageUrl))
                     {
                         issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NoLabelOnWidget, string.Format(Strings.ADF_ReferencedWidgetInMenuHasNoLabel, id, parentName)));
                     }
                 }
             }
         }
     }
 }
 private void ValidateWidgetReferencesForMenu(IApplicationDefinition fusionApp, IMenu menu, List<ValidationIssue> issues, ResourceValidationContext context, IResource resource)
 {
     foreach (var item in menu.Items)
     {
         var subMenu = item as IMenu;
         var widgetRef = item as IWidgetItem;
         if (subMenu != null)
         {
             ValidateWidgetReferencesForMenu(fusionApp, subMenu, issues, context, resource);
         }
         else if (widgetRef != null)
         {
             var id = widgetRef.Widget;
             var wgt = fusionApp.FindWidget(id);
             var uiWgt = wgt as IUIWidget;
             string parentName = "<unknown>"; //NOXLATE
             var cnt = menu as IWidgetContainer;
             var fly = menu as IFlyoutItem;
             if (cnt != null)
                 parentName = cnt.Name;
             else if (fly != null)
                 parentName = fly.Label;
             if (wgt == null)
             {
                 issues.Add(new ValidationIssue(resource, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_InvalidWidgetReference, string.Format(Strings.ADF_InvalidWidgetReferenceInContainer, id, parentName)));
             }
             else
             {
                 if (uiWgt == null)
                 {
                     issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NonStandardUiWidgetAttachedToContainer, string.Format(Strings.ADF_NonUiWidgetAttachedToContainer, id, parentName)));
                 }
                 else
                 {
                     if (string.IsNullOrEmpty(uiWgt.Label) && string.IsNullOrEmpty(uiWgt.ImageUrl))
                     {
                         issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NoLabelOnWidget, string.Format(Strings.ADF_ReferencedWidgetInMenuHasNoLabel, id, parentName)));
                     }
                 }
             }
         }
     }
 }