コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
ファイル: ContentBlock.cs プロジェクト: jsteripan/negroni
 /// <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)));
     }
 }
コード例 #4
0
ファイル: ContentBlock.cs プロジェクト: jsteripan/negroni
        /// <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);
        }
コード例 #5
0
ファイル: DataScript.cs プロジェクト: jsteripan/negroni
        /// <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());
                    }
                }
            }
        }
コード例 #6
0
 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;
         }
     }
 }