예제 #1
0
        private static void GetCSharpFormGlobalsRec(_FG_WebForm fG_WebForm, EbControlContainer _container, WebformData _formdata)
        {
            SingleTable Table = _formdata.MultipleTables.ContainsKey(_container.TableName) ? _formdata.MultipleTables[_container.TableName] : new SingleTable();

            if (_container is EbDataGrid)
            {
                _FG_DataGrid fG_DataGrid = new _FG_DataGrid(_container as EbDataGrid, Table);
                fG_WebForm.DataGrids.Add(fG_DataGrid);
            }
            else if (_container is EbReview)
            {
                fG_WebForm.Review = new _FG_Review(_container as EbReview, Table);
            }
            else
            {
                foreach (EbControl _control in _container.Controls)
                {
                    if (_control is EbControlContainer)
                    {
                        GetCSharpFormGlobalsRec(fG_WebForm, _control as EbControlContainer, _formdata);
                    }
                    else
                    {
                        object data = null;
                        if (_formdata.MultipleTables.ContainsKey(_container.TableName) && _formdata.MultipleTables[_container.TableName].Count > 0)
                        {
                            data = _formdata.MultipleTables[_container.TableName][0][_control.Name];
                        }
                        fG_WebForm.FlatCtrls.Controls.Add(new _FG_Control(_control, data));
                    }
                }
            }
        }
예제 #2
0
        //Jith Builder related
        private string GetHtml2Render(BuilderType type, string objid)
        {
            IServiceClient client     = this.ServiceClient;
            var            resultlist = client.Get <EbObjectLatestCommitedResponse>(new EbObjectLatestCommitedRequest {
                RefId = objid
            });
            var    rlist = resultlist.Data[0];
            string _html = string.Empty;

            EbControlContainer _form = null;

            if (type == BuilderType.FilterDialog)
            {
                _form = EbSerializers.Json_Deserialize <EbFilterDialog>(rlist.Json) as EbControlContainer;
            }
            else if (type == BuilderType.WebForm)
            {
                _form = EbSerializers.Json_Deserialize <EbWebForm>(rlist.Json) as EbControlContainer;
            }


            if (_form != null)
            {
                _html += _form.GetHtml();
            }

            return(_html);
        }
 protected override void OnParentChanged(EventArgs e)
 {
     base.OnParentChanged(e);
     if (this.EbControlContainer == null)
     {
         this.EbControlContainer = new EbForm();
     }
 }
예제 #4
0
 public void DoDesignerLayout(pF.pDesigner.IpDesigner designer, EbControlContainer serialized_ctrl)
 {
     ((designer.ActiveDesignSurface as IDesignSurfaceExt).RootComponent as EbReportPanel).EbControlContainer = serialized_ctrl;
     foreach (EbControl c in serialized_ctrl.Controls)
     {
         var ctrl = designer.ActiveDesignSurface.CreateControl(Type.GetType(c.TargetType)) as System.Windows.Forms.Control;
         (ctrl as IEbControl).DoDesignerLayout(designer, c);
     }
 }
예제 #5
0
        protected override void OnParentChanged(EventArgs e)
        {
            base.OnParentChanged(e);
            if (this.EbControlContainer == null)
            {
                this.EbControlContainer = new EbTableLayout();
            }

            this.EbControlContainer.Name = this.Name;
            this.Dock = System.Windows.Forms.DockStyle.Fill;
        }
예제 #6
0
 private static void FlattenAllEbControlsRec(List <EbControl> controls, ref List <EbControl> list)// get all controls including EbControlContainers
 {
     foreach (EbControl control in controls)
     {
         EbControlContainer candidate = control as EbControlContainer;
         if (candidate != null)
         {
             FlattenAllEbControlsRec(candidate.Controls, ref list);
         }
         list.Add(control);
     }
 }
예제 #7
0
 public static IEnumerable <EbControl> FlattenEbControls(this List <EbControl> enumerable)// get all controls except EbControlContainers
 {
     foreach (EbControl element in enumerable)
     {
         EbControlContainer candidate = element as EbControlContainer;
         if (candidate != null)
         {
             foreach (EbControl nested in FlattenEbControls(candidate.Controls))
             {
                 yield return(nested);
             }
         }
         else
         {
             yield return(element);
         }
     }
 }
예제 #8
0
        public void DoDesignerLayout(pF.pDesigner.IpDesigner designer, EbControlContainer serialized_ctrl)
        {
            this.EbControlContainer = serialized_ctrl;
            this.Name = serialized_ctrl.Name;
            this.Dock = System.Windows.Forms.DockStyle.Fill;

            this.SuspendLayout();
            this.ColumnCount = 0;
            this.RowCount    = 0;
            this.ColumnStyles.Clear();
            this.RowStyles.Clear();

            foreach (EbTableLayoutColumn c in (serialized_ctrl as EbTableLayout).Columns)
            {
                this.ColumnStyles.Add(new ColumnStyle {
                    SizeType = SizeType.Percent, Width = c.Width
                });
            }

            foreach (EbTableRow r in (serialized_ctrl as EbTableLayout).Rows)
            {
                this.RowStyles.Add(new RowStyle {
                    SizeType = SizeType.Percent, Height = r.Height
                });
            }

            this.ColumnCount = (serialized_ctrl as EbTableLayout).Columns.Count;
            this.RowCount    = (serialized_ctrl as EbTableLayout).Rows.Count;

            if (serialized_ctrl.Controls != null)
            {
                foreach (EbControl c in serialized_ctrl.Controls)
                {
                    var ctrl = designer.ActiveDesignSurface.CreateControl(Type.GetType(c.TargetType)) as System.Windows.Forms.Control;
                    ctrl.Parent = this;
                    this.SetCellPosition(ctrl, new TableLayoutPanelCellPosition(c.CellPositionColumn, c.CellPositionRow));
                    (ctrl as IEbControl).DoDesignerLayout(designer, c);
                }
            }

            this.ResumeLayout(true);
        }
예제 #9
0
        private static void GetCSharpFormGlobalsRec_NEW(FG_WebForm fG_WebForm, EbControlContainer _container, WebformData _formdata, WebformData _formdataBkUp)
        {
            SingleTable Table     = _formdata.MultipleTables.ContainsKey(_container.TableName) ? _formdata.MultipleTables[_container.TableName] : new SingleTable();
            SingleTable TableBkUp = _formdataBkUp != null && _formdataBkUp.MultipleTables.ContainsKey(_container.TableName) ? _formdataBkUp.MultipleTables[_container.TableName] : new SingleTable();

            if (_container is EbDataGrid)
            {
                fG_WebForm.DataGrids.Add(GetDataGridGlobal(_container as EbDataGrid, Table, _formdata.DGsRowDataModel[_container.TableName]));
            }
            else if (_container is EbReview)
            {
                fG_WebForm.Review = GetReviewGlobal(_container as EbReview, Table, TableBkUp);
            }
            else
            {
                foreach (EbControl _control in _container.Controls)
                {
                    if (_control is EbControlContainer)
                    {
                        GetCSharpFormGlobalsRec_NEW(fG_WebForm, _control as EbControlContainer, _formdata, _formdataBkUp);
                    }
                    else
                    {
                        object data = null;
                        Dictionary <string, object> Metas = new Dictionary <string, object>();
                        if (_control is EbAutoId && fG_WebForm.__mode == "new")// && fG_WebForm.id == 0
                        {
                            data = FG_Constants.AutoId_PlaceHolder;
                        }
                        else
                        {
                            SingleColumn psSC = null;
                            if (Table.Count > 0 && Table[0].GetColumn(_control.Name) != null && !(_control is EbAutoId)) //(!(_control is EbAutoId) || (_control is EbAutoId && fG_WebForm.__mode == "edit")))// && fG_WebForm.id > 0
                            {
                                data = Table[0][_control.Name];
                                psSC = Table[0].GetColumn(_control.Name);
                            }
                            else if (TableBkUp.Count > 0 && TableBkUp[0].GetColumn(_control.Name) != null)
                            {
                                data = TableBkUp[0][_control.Name];
                                psSC = TableBkUp[0].GetColumn(_control.Name);
                            }
                            else if (Table.Count > 0 && Table[0].GetColumn(_control.Name) != null)// Hint: For BatchDataPusher, AutoId available in 'Table' only
                            {
                                data = Table[0][_control.Name];
                                psSC = Table[0].GetColumn(_control.Name);
                            }
                            if (psSC != null && _control is IEbPowerSelect)
                            {
                                Metas.Add(FG_Constants.Columns, psSC.R);
                            }
                        }
                        if (_control is EbAutoId ebAI)
                        {
                            Metas.Add(FG_Constants.SerialLength, ebAI.Pattern?.SerialLength ?? 0);
                        }

                        fG_WebForm.FlatCtrls.Controls.Add(new FG_Control(_control.Name, _control.ObjType, data, Metas));
                    }
                }
            }
        }
예제 #10
0
        //get formdata as globals for c# script engine
        public static FormAsGlobal GetFormAsGlobal(EbWebForm _this, WebformData _formData, EbControlContainer _container = null, FormAsGlobal _globals = null)
        {
            if (_container == null)
            {
                _container = _this;
            }
            if (_globals == null)
            {
                _globals = new FormAsGlobal {
                    Name = _this.Name
                }
            }
            ;

            ListNTV listNTV = new ListNTV();

            if (_formData.MultipleTables.ContainsKey(_container.TableName))
            {
                for (int i = 0; i < _formData.MultipleTables[_container.TableName].Count; i++)
                {
                    foreach (EbControl control in _container.Controls)
                    {
                        if (control is EbControlContainer)
                        {
                            FormAsGlobal g = new FormAsGlobal();
                            g.Name = (control as EbControlContainer).Name;
                            _globals.AddContainer(g);
                            g = GetFormAsGlobal(_this, _formData, control as EbControlContainer, g);
                        }
                        else
                        {
                            NTV n = GetNtvFromFormData(_formData, _container.TableName, i, control.Name);
                            if (n != null)
                            {
                                listNTV.Columns.Add(n);
                            }
                        }
                    }
                }
                _globals.Add(listNTV);
            }
            return(_globals);
        }
        private static WebFormSchema GetWebFormSchemaRec(EbWebForm _this, WebFormSchema _schema, EbControlContainer _container, string _parentTable, EbSystemColumns ebs)
        {
            IEnumerable <EbControl> _flatControls = _container.Controls.Get1stLvlControls();
            string      curTbl = _container.TableName.ToLower();
            TableSchema _table = _schema.Tables.FirstOrDefault(tbl => tbl.TableName == curTbl);

            if (_table == null)
            {
                if (_container is EbReview)
                {
                    _table = new TableSchema {
                        TableName = curTbl, ParentTable = _parentTable, TableType = WebFormTableTypes.Review, Title = _container.Label, ContainerName = _container.Name
                    };
                    _schema.ExtendedControls.Add(_container);
                }
                else if (_container is EbDataGrid dg)
                {
                    _table = new TableSchema {
                        TableName = curTbl, ParentTable = _parentTable, TableType = WebFormTableTypes.Grid, Title = _container.Label, ContainerName = _container.Name, IsDynamic = _container.IsDynamicTabChild, DescOdr = !dg.AscendingOrder, DoNotPersist = dg.DoNotPersist
                    }
                }
                ;
                else
                {
                    _table = new TableSchema {
                        TableName = curTbl, ParentTable = _parentTable, TableType = WebFormTableTypes.Normal, ContainerName = _container.Name
                    }
                };
                _schema.Tables.Add(_table);
            }

            foreach (EbControl control in _flatControls)
            {
                //if (control.IsSysControl && ebs != null && !(_container is EbReview))
                //{
                //    control.Name = ebs[control.Name];
                //}

                if (control is EbFileUploader)
                {
                    _schema.ExtendedControls.Add(control);
                }
                else if (control is EbProvisionUser)
                {
                    EbProvisionUser ctrl = control as EbProvisionUser;
                    ctrl.FuncParam.First(e => e.Name == "isolution_id").Value = _this.SolutionObj?.SolutionID ?? string.Empty;
                    int idx = _schema.ExtendedControls.FindIndex(e => e is EbProvisionLocation);
                    if (idx >= 0)
                    {
                        ctrl.AddLocConstraint = true;
                    }
                    _table.Columns.Add(new ColumnSchema {
                        ColumnName = control.Name, EbDbType = (int)control.EbDbType, Control = control
                    });
                }
                else if (control is EbProvisionLocation)
                {
                    foreach (object temp in _schema.ExtendedControls.FindAll(e => e is EbProvisionUser))
                    {
                        (temp as EbProvisionUser).AddLocConstraint = true;
                    }
                    _table.Columns.Add(new ColumnSchema {
                        ColumnName = control.Name, EbDbType = (int)control.EbDbType, Control = control
                    });
                }
                else if (control is EbDGUserControlColumn)
                {
                    foreach (EbControl _ctrl in (control as EbDGUserControlColumn).Columns)
                    {
                        _table.Columns.Add(new ColumnSchema {
                            ColumnName = _ctrl.Name, EbDbType = (int)_ctrl.EbDbType, Control = _ctrl
                        });
                    }
                }
                else if (control is EbSysLocation && !control.IsDisable)
                {
                    _this.IsLocEditable = true;
                    _table.Columns.Add(new ColumnSchema {
                        ColumnName = control.Name, EbDbType = (int)control.EbDbType, Control = control
                    });
                }
                else
                {
                    _table.Columns.Add(new ColumnSchema {
                        ColumnName = control.Name, EbDbType = (int)control.EbDbType, Control = control
                    });
                    if (control is EbAutoId)
                    {
                        _this.AutoId           = control as EbAutoId;
                        _this.AutoId.TableName = _table.TableName;
                    }
                }

                if (control is IEbExtraQryCtrl)
                {
                    (control as IEbExtraQryCtrl).TableName = curTbl;
                    _schema.ExtendedControls.Add(control);
                }
                else if (control is EbPhone _phCtrl && _phCtrl.Sendotp)
                {
                    _phCtrl.FormRefId   = _this.RefId;
                    _phCtrl.RedisClient = _this.RedisClient;
                }
                else if (control is EbEmailControl _emCtrl && _emCtrl.Sendotp)
                {
                    _emCtrl.FormRefId   = _this.RefId;
                    _emCtrl.RedisClient = _this.RedisClient;
                }
예제 #12
0
 public EbPanel() : base()
 {
     this.EbControlContainer = new EbForm();
 }