/// <summary>
        /// Update layout by UI
        /// </summary>
        /// <param name="layout"></param>
        private void UpdateLayout(FieldLayOut layout)
        {
            for (int row = 0; row < layout.ColumnsEachRow.Count; row++)
            {
                int nCols = layout.ColumnsEachRow[row];

                for (int col = 0; col < nCols; col++)
                {
                    Button btn = CustomSplit.GetButton(row, col);

                    System.Diagnostics.Debug.Assert(btn != null);

                    Field field = layout.FieldTable.GetField(row, col);

                    if (field != null)
                    {
//						System.Diagnostics.Debug.Assert(field != null);

                        ButtonTags pctag = (ButtonTags)btn.Tag;

                        field.Filter.Apply(pctag.filter);

                        field.SetWidthRatio((float)btn.Width / this.LayoutPanelWidth);

                        field.SetHeightRatio((float)btn.Height / this.LayoutPanelHeight);
                    }
                }
            }
        }
        public void UpdateSectionFilters(SectionFilterCollection secFilters)
        {
            if (secFilters == null)
            {
                return;
            }

            secFilters.Clear();

            for (int i = 0; i < this.C_Buttons.Count; i++)
            {
                ButtonTags pctag = (ButtonTags)(this.C_Buttons[i] as Control).Tag;

                SectionFilter secFilter = pctag.filter;

                SectionFilter newSecFilter = new SectionFilter();

                newSecFilter.Apply(secFilter);

                secFilters.Add(newSecFilter);
            }
        }