private void ApplyTemplateProperties(Control control) { object[] parameters = new object[1]; foreach (TemplatePropertyEntry entry in base.GetFilteredPropertyEntrySet(this._skinBuilder.TemplatePropertyEntries)) { try { if (FastPropertyAccessor.GetProperty(control, entry.Name, base.InDesigner) == null) { ControlBuilder builder = entry.Builder; builder.SetServiceProvider(base.ServiceProvider); try { object obj3 = builder.BuildObject(true); parameters[0] = obj3; } finally { builder.SetServiceProvider(null); } Util.InvokeMethod(entry.PropertyInfo.GetSetMethod(), control, parameters); } } catch (Exception) { } catch { } } }
public ThemeProvider(IDesignerHost host, string name, string themeDefinition, string[] cssFiles, string themePath) { this._themeName = name; this._themePath = themePath; this._cssFiles = cssFiles; this._host = host; ControlBuilder builder = DesignTimeTemplateParser.ParseTheme(host, themeDefinition, themePath); this._contentHashCode = themeDefinition.GetHashCode(); ArrayList subBuilders = builder.SubBuilders; this._skinBuilders = new Hashtable(); for (int i = 0; i < subBuilders.Count; i++) { ControlBuilder builder2 = subBuilders[i] as ControlBuilder; if (builder2 != null) { IDictionary dictionary = this._skinBuilders[builder2.ControlType] as IDictionary; if (dictionary == null) { dictionary = new SortedList(StringComparer.OrdinalIgnoreCase); this._skinBuilders[builder2.ControlType] = dictionary; } Control control = builder2.BuildObject() as Control; if (control != null) { dictionary[control.SkinID] = builder2; } } } }
private void ApplyTemplateProperties(Control control) { object[] parameters = new object[1]; ICollection entries = GetFilteredPropertyEntrySet(_skinBuilder.TemplatePropertyEntries); foreach (TemplatePropertyEntry entry in entries) { try { object originalValue = FastPropertyAccessor.GetProperty(control, entry.Name, InDesigner); if (originalValue == null) { ControlBuilder controlBuilder = ((TemplatePropertyEntry)entry).Builder; controlBuilder.SetServiceProvider(ServiceProvider); try { object objectValue = controlBuilder.BuildObject(true); parameters[0] = objectValue; } finally { controlBuilder.SetServiceProvider(null); } MethodInfo methodInfo = entry.PropertyInfo.GetSetMethod(); Util.InvokeMethod(methodInfo, control, parameters); } } catch (Exception e) { Debug.Fail(e.Message); } #pragma warning disable 1058 catch { } #pragma warning restore 1058 } }
public ThemeProvider(IDesignerHost host, string name, string themeDefinition, string[] cssFiles, string themePath) { _themeName = name; _themePath = themePath; _cssFiles = cssFiles; _host = host; ControlBuilder themeBuilder = DesignTimeTemplateParser.ParseTheme(host, themeDefinition, themePath); _contentHashCode = themeDefinition.GetHashCode(); ArrayList subBuilders = themeBuilder.SubBuilders; _skinBuilders = new Hashtable(); for (int i = 0; i < subBuilders.Count; ++i) { ControlBuilder builder = subBuilders[i] as ControlBuilder; if (builder != null) { IDictionary skins = _skinBuilders[builder.ControlType] as IDictionary; if (skins == null) { skins = new SortedList(StringComparer.OrdinalIgnoreCase); _skinBuilders[builder.ControlType] = skins; } Control builtControl = builder.BuildObject() as Control; if (builtControl != null) { skins[builtControl.SkinID] = builder; } } } }
private static Control[] ParseControlsInternalHelper(DesignTimeParseData data, bool returnFirst) { TemplateParser parser = new PageParser { FInDesigner = true, DesignerHost = data.DesignerHost, DesignTimeDataBindHandler = data.DataBindingHandler, Text = data.ParseText }; parser.Parse(); ArrayList list = new ArrayList(); ArrayList subBuilders = parser.RootBuilder.SubBuilders; if (subBuilders != null) { IEnumerator enumerator = subBuilders.GetEnumerator(); for (int i = 0; enumerator.MoveNext(); i++) { object current = enumerator.Current; if ((current is ControlBuilder) && !(current is CodeBlockBuilder)) { ControlBuilder builder = (ControlBuilder)current; IServiceProvider serviceProvider = null; if (data.DesignerHost != null) { serviceProvider = data.DesignerHost; } else { ServiceContainer container = new ServiceContainer(); container.AddService(typeof(IFilterResolutionService), new SimpleDesignTimeFilterResolutionService(data.Filter)); serviceProvider = container; } builder.SetServiceProvider(serviceProvider); try { Control control = (Control)builder.BuildObject(data.ShouldApplyTheme); list.Add(control); } finally { builder.SetServiceProvider(null); } if (!returnFirst) { continue; } break; } if (!returnFirst && (current is string)) { LiteralControl control2 = new LiteralControl(current.ToString()); list.Add(control2); } } } data.SetUserControlRegisterEntries(parser.UserControlRegisterEntries, parser.TagRegisterEntries); return((Control[])list.ToArray(typeof(Control))); }
private static Control[] ParseControlsInternalHelper(DesignTimeParseData data, bool returnFirst) { TemplateParser parser = new PageParser(); parser.FInDesigner = true; parser.DesignerHost = data.DesignerHost; parser.DesignTimeDataBindHandler = data.DataBindingHandler; parser.Text = data.ParseText; parser.Parse(); ArrayList parsedControls = new ArrayList(); ArrayList subBuilders = parser.RootBuilder.SubBuilders; if (subBuilders != null) { // Look for the first control builder IEnumerator en = subBuilders.GetEnumerator(); for (int i = 0; en.MoveNext(); i++) { object cur = en.Current; if ((cur is ControlBuilder) && !(cur is CodeBlockBuilder)) { // Instantiate the control ControlBuilder controlBuilder = (ControlBuilder)cur; System.Diagnostics.Debug.Assert(controlBuilder.CurrentFilterResolutionService == null); IServiceProvider builderServiceProvider = null; // If there's a designer host, use it as the service provider if (data.DesignerHost != null) { builderServiceProvider = data.DesignerHost; } // If it doesn't exist, use a default ---- filter resolution service else { ServiceContainer serviceContainer = new ServiceContainer(); serviceContainer.AddService(typeof(IFilterResolutionService), new SimpleDesignTimeFilterResolutionService(data.Filter)); builderServiceProvider = serviceContainer; } controlBuilder.SetServiceProvider(builderServiceProvider); try { Control control = (Control)controlBuilder.BuildObject(data.ShouldApplyTheme); parsedControls.Add(control); } finally { controlBuilder.SetServiceProvider(null); } if (returnFirst) { break; } } // To preserve backwards compatibility, we don't add LiteralControls // to the control collection when parsing for a single control else if (!returnFirst && (cur is string)) { LiteralControl literalControl = new LiteralControl(cur.ToString()); parsedControls.Add(literalControl); } } } data.SetUserControlRegisterEntries(parser.UserControlRegisterEntries, parser.TagRegisterEntries); return((Control[])parsedControls.ToArray(typeof(Control))); }