Inheritance: ResourceItem
Exemplo n.º 1
0
        private static void ShareStyles(StringBuilder sb)
        {
            if (HttpContext.Current.Items[Ext.Net.ResourceManager.GLOBAL_RESOURCES] != null)
            {
                bool placeholder = HttpContext.Current.Items["Ext.Net.InitStyle"] != null;

                sb.AppendFormat("<#:item {0}='{1}' index='11'>", placeholder ? "ref" : "selector", placeholder ? "ext.net.initstyle" : "headstart");

                List <ResourceItem> styles = (List <ResourceItem>)HttpContext.Current.Items[Ext.Net.ResourceManager.GLOBAL_RESOURCES];

                foreach (ResourceItem item in styles)
                {
                    if (item is ClientStyleItem)
                    {
                        if (item.IgnoreResourceMode)
                        {
                            if (item.PathEmbedded.IsNotEmpty())
                            {
                                sb.AppendFormat(ResourceManager.StyleIncludeTemplate, ExtNetTransformer.GetWebResourceUrl(item.Type, item.PathEmbedded));
                            }
                            else
                            {
                                sb.AppendFormat(ResourceManager.StyleIncludeTemplate, item.Path.StartsWith("~") ? ExtNetTransformer.ResolveUrl(item.Path) : item.Path);
                            }
                            continue;
                        }

                        ClientStyleItem styleItem = (ClientStyleItem)item;

                        switch (ExtNetTransformer.RenderStyles)
                        {
                        case ResourceLocationType.File:
                            sb.AppendFormat(ResourceManager.StyleIncludeTemplate, styleItem.Path.StartsWith("~") ? ExtNetTransformer.ResolveUrl(styleItem.Path) : ExtNetTransformer.ResourcePath.ConcatWith(styleItem.Path));
                            break;

#if ISPRO
                        case ResourceLocationType.CDN:
                            sb.AppendFormat(ResourceManager.StyleIncludeTemplate, ResourceManager.CDNPath.ConcatWith(styleItem.Path));
                            break;
#endif
                        default:
                        case ResourceLocationType.Embedded:
                            sb.AppendFormat(ResourceManager.StyleIncludeTemplate, ExtNetTransformer.GetWebResourceUrl(styleItem.Type, styleItem.PathEmbedded));
                            break;
                        }
                    }
                }

                List <ClientResourceItem> gbStyles = (List <ClientResourceItem>)HttpContext.Current.Items[ResourceManager.GLOBAL_CLIENT_RESOURCES];

                if (gbStyles != null)
                {
                    foreach (ClientResourceItem item in gbStyles)
                    {
                        if (item.IsCss)
                        {
                            if (item.Path.IsNotEmpty())
                            {
                                sb.AppendFormat(ResourceManager.StyleIncludeTemplate, item.Path.StartsWith("~") ? ExtNetTransformer.ResolveUrl(item.Path) : item.Path);
                            }
                            else if (item.PathEmbedded.IsNotEmpty())
                            {
                                sb.AppendFormat(ResourceManager.StyleIncludeTemplate, HttpUtility.HtmlAttributeEncode(CachedPageInstance.ClientScript.GetWebResourceUrl(item.Type, item.PathEmbedded)));
                            }
                        }
                    }
                }

                sb.Append("</#:item>");
            }
        }