Ejemplo n.º 1
0
        //-------------------------------------------
        protected override void MyCreateControle(
            CCreateur2iFormulaireV2 createur,
            C2iWnd wnd,
            Control parent,
            IFournisseurProprietesDynamiques fournisseurProprietes)
        {
            m_wndGrid = wnd as C2iWndDataGrid;
            if (m_wndGrid == null)
            {
                return;
            }
            CCreateur2iFormulaireV2.AffecteProprietesCommunes(m_wndGrid, m_grid);


            parent.Controls.Add(m_grid);
        }
Ejemplo n.º 2
0
        public void Init(
            CWndFor2iDataGrid wndFor2iDataGrid,
            C2iWndDataGrid wndGrid,
            object elementEdite,
            List <object> lstObjets,
            IFournisseurProprietesDynamiques fournisseur)
        {
            m_wndFor2iDataGrid     = wndFor2iDataGrid;
            m_listeObjetsOriginale = lstObjets;
            m_fournisseur          = fournisseur;
            m_wndGrid      = wndGrid;
            m_elementEdite = elementEdite;
            if (m_cache != null)
            {
                m_cache.Dispose();
            }
            m_cache = new CGridDataCache(this);


            List <object> listeObjets = new List <object>(lstObjets);

            foreach (object newElt in m_listeElementsAdd)
            {
                if (!lstObjets.Contains(newElt))
                {
                    lstObjets.Add(newElt);
                }
            }

            m_panelTop.Visible  = m_wndGrid.HasAddButton || m_wndGrid.HasDeleteButton;
            m_lnkAdd.Visible    = m_wndGrid.HasAddButton;
            m_lnkDelete.Visible = m_wndGrid.HasDeleteButton;

            m_grid.AutoGenerateColumns = false;
            Filtrer();
            m_grid.SuspendDrawing();
            //m_grid.DataSource = lstObjets;
            m_grid.Columns.Clear();
            int nMaxHeight = m_grid.ColumnHeadersHeight;

            m_grid.EnableHeadersVisualStyles            = false;
            m_grid.RowHeadersVisible                    = m_wndGrid.RowHeaderWidth != 0;
            m_grid.RowHeadersWidth                      = Math.Max(m_wndGrid.RowHeaderWidth, 10);
            m_grid.RowHeadersDefaultCellStyle.BackColor = m_wndGrid.RowHeaderColor;
            m_grid.BackgroundColor                      = m_wndGrid.BackColor;
            m_grid.DefaultCellStyle.SelectionBackColor  = m_wndGrid.SelectedCellBackColor;
            m_grid.DefaultCellStyle.SelectionForeColor  = m_wndGrid.SelectedCellForeColor;
            m_grid.EditMode = DataGridViewEditMode.EditOnEnter;
            if (m_wndGrid.DefaultRowHeight > 0)
            {
                m_grid.RowTemplate.Height = m_wndGrid.DefaultRowHeight;
            }
            int nCol = 0;

            foreach (I2iObjetGraphique obj in m_wndGrid.Childs)
            {
                C2iWndDataGridColumn          col     = obj as C2iWndDataGridColumn;
                CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(m_elementEdite);
                //Evalue la formule de visibilité
                if (col.Visiblity != null)
                {
                    CResultAErreur res = col.Visiblity.Eval(ctxEval);
                    if (res && !CUtilBool.BoolFromObject(res.Data))
                    {
                        col = null;
                    }
                }
                if (col != null)
                {
                    IWndIncluableDansDataGrid wndForGrid = col.Control as IWndIncluableDansDataGrid;
                    m_cache.RegisterControle(nCol, wndForGrid);
                    nCol++;
                    if (wndForGrid != null)
                    {
                        DataGridViewColumn gridCol = new DataGridViewColumn(
                            new CDataGridViewCustomCellFor2iWnd(m_cache, col, nCol - 1, wndForGrid, m_fournisseur)
                            );
                        if (col.Enabled != null)
                        {
                            CResultAErreur result = col.Enabled.Eval(ctxEval);
                            if (result && !CUtilBool.BoolFromObject(result.Data))
                            {
                                gridCol.ReadOnly = true;
                            }
                        }
                        gridCol.HeaderText = col.Text;
                        gridCol.Width      = col.ColumnWidth;
                        DataGridViewCellStyle style = new DataGridViewCellStyle();
                        style.BackColor          = col.BackColor;
                        style.ForeColor          = col.ForeColor;
                        style.Font               = col.Font;
                        gridCol.HeaderCell.Style = style;

                        if (col.Control != null)
                        {
                            DataGridViewCellStyle styleCell = new DataGridViewCellStyle();
                            styleCell.Font             = col.Control.Font;
                            styleCell.BackColor        = col.Control.BackColor;
                            styleCell.ForeColor        = col.Control.ForeColor;
                            styleCell.WrapMode         = DataGridViewTriState.True;
                            gridCol.CellTemplate.Style = styleCell;
                        }
                        m_grid.Columns.Add(gridCol);
                        nMaxHeight = Math.Max(col.Size.Height, nMaxHeight);
                    }
                }
            }
            m_grid.ResumeDrawing();
            m_grid.ColumnHeadersHeight = nMaxHeight;
            InitRestrictions(m_listeRestrictions);
        }