/// <summary> /// Adds a control to the controls collection and sets references. /// Initializes any container pointers as well. /// Override for specialized handling. /// </summary> /// <param name="control"></param> /// <returns></returns> virtual public BaseGadgetControl AddControl(BaseGadgetControl control) { if (null == control) { return(null); //also log here } control.MyRootMaster = this.MyRootMaster; control.MyTemplate = this.MyTemplate; control.Parent = this; if (control.ViewMask <= 0) { control.ViewMask = this.ViewMask; } Controls.Add(control); if (MyRootMaster != null && control is DataPipeline.IExternalDataSource && ((DataPipeline.IExternalDataSource)control).ResolveLocation == DataPipeline.ResolveAt.Server) { MyRootMaster.RegisterExternalServerRenderControl((DataPipeline.IExternalDataSource)control, control.ViewMask); } return(control); }
/// <summary> /// Setup of standard properties from common attributes /// </summary> private void SetStandardAttributeProperties() { string val = GetAttribute("id"); if (!string.IsNullOrEmpty(val)) { this.ID = val; } val = GetAttribute("view"); if (!string.IsNullOrEmpty(val) && this.MyRootMaster != null) { ViewMask = MyRootMaster.RegisterViews(val); } }
/// <summary> /// Tests to see if this content is qualified by checking the ViewMask /// </summary> /// <param name="view"></param> /// <returns></returns> public bool IsQualifiedView(string view) { if (string.IsNullOrEmpty(view)) { throw new ArgumentNullException("Must specify a valid view name"); } if (ViewMask == 0) { return(true); } else { int vmask = MyRootMaster.GetViewMask(view); return((vmask > -1) && (0 < (ViewMask & vmask))); } }
/// <summary> /// Builds the css view class string /// </summary> /// <returns></returns> private string BuildViewClassString() { string retVal = String.Empty; if (ViewMask > 0) { string[] views = MyRootMaster.GetViewString(ViewMask).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < views.Length; i++) { if (!views[i].Contains(".")) { retVal += String.Format(CONTENT_CLIENT_CLASSPREFIX + " ", views[i]); } } } return(retVal); }
/// <summary> /// Validates data items are registered with the DataContext. /// Loads them if the given key is not found. /// </summary> public void ConfirmDataItemsRegistered() { string viewContext = MyRootMaster.GetViewString(ViewMask); for (int i = 0; i < Controls.Count; i++) { if (Controls[i] is BaseDataControl) { if (Controls[i] is OsHttpRequest) { OsHttpRequest ctl = (OsHttpRequest)Controls[i]; MyDataContext.RegisterDataItem(ctl, viewContext, ctl.UseClientDataResolver, false, false); } else { MyDataContext.RegisterDataItem((BaseDataControl)Controls[i], viewContext, ((BaseDataControl)Controls[i]).UseClientDataResolver, true, false); } } else if (Controls[i] is VariableTag) { VariableTag osvar = (VariableTag)Controls[i]; if (MyDataContext.MasterData.ContainsKey(osvar.VariableKey)) { if (null == MyDataContext.MasterData[osvar.VariableKey].Data) { MyDataContext.MasterData[osvar.VariableKey].Data = osvar.GetVariableValue(); } } else { MyDataContext.RegisterDataItem(osvar.VariableKey, osvar.GetVariableValue()); } } } }
protected virtual void Dispose(bool disposing) { if (disposing) { if (MyTemplate != null && !MyTemplate.InDisposer) { MyTemplate.Dispose(); MyTemplate = null; } if (MyOffset != null) { MyOffset = null; } if (IsRootMasterSet() && !MyRootMaster.InDisposer) { MyRootMaster.Dispose(); MyRootMaster = null; } if (Parent != null) { Parent = null; } } }