public virtual ITemplate GetTemplate(String templateName) { Debug.Assert(this is ITemplateable); ITemplate t = null; if (_deviceSpecific != null) { t = _deviceSpecific.GetTemplate(templateName); } if (t == null) { Style referredStyle = Style.ReferredStyle; if (referredStyle != null) { t = referredStyle.GetTemplate(templateName); } } return(t); }
internal ITemplate GetTemplateInternal(String templateName, Hashtable stylesEncountered) { ITemplate t = null; if (_deviceSpecific != null) { t = (ITemplate)_deviceSpecific.GetTemplate(templateName); } Style referredStyle = ReferredStyle; if (t == null && referredStyle != null) { // Check for cyclical style references. if (stylesEncountered == null) { stylesEncountered = new Hashtable(); } if (stylesEncountered.ContainsKey(referredStyle)) { if (_control.MobilePage != null && _control.MobilePage.DesignMode) { return(null); } else { throw new Exception(SR.GetString(SR.Style_CircularReference, this.Name)); } } // No cycle detected. stylesEncountered[referredStyle] = true; t = referredStyle.GetTemplateInternal(templateName, stylesEncountered); } return(t); }