public void Init(DataEngine eng)
        {
            this.eng = eng;
            tableLayoutPanel1.SuspendLayout();

            tblFields.SuspendLayout();
            tblFields.Controls.Clear();

            tblFields.RowStyles.Clear();
            tblFields.RowCount = 1;

            for (var i = 0; i < eng.Categories.Count; i++)
            {
                var fl = new FieldLabel(eng.Categories[i]);
                tblFields.Controls.Add(fl, 0, tblFields.RowCount);
                tblFields.RowCount++;
            }

            for (var i = 0; i < eng.Measures.Count; i++)
            {
                var fl = new FieldLabel(eng.Measures[i]);
                tblFields.Controls.Add(fl, 0, tblFields.RowCount);
                tblFields.RowCount++;
            }
            tblFields.ResumeLayout();

            tableLayoutPanel1.ResumeLayout();
        }
        public void Add(Field f)
        {
            if (!multiFields)
            {
                if (Fields.Count > 0)
                {
                    tableLayoutPanel1.Controls.RemoveAt(tableLayoutPanel1.Controls.Count - 1);
                }
                Fields.Clear();
            }

            Fields.Add(f);
            var flbl = new FieldLabel(f, true, false);

            flbl.Closed += (s, e) =>
            {
                Fields.Remove(flbl.Field);
                tableLayoutPanel1.Controls.Remove(flbl);
                OnBindingsUpdated(this, EventArgs.Empty);
            };
            tableLayoutPanel1.Controls.Add(flbl);
            OnBindingsUpdated(this, EventArgs.Empty);
        }