public void SetEntityEditor(ICrudDataSource <object> dataSource, ICrudEntityEditor <object> entityEditor, CrudCapabilities capabilities, object entity, bool isNewEntity)
        {
            _isNewEntity      = isNewEntity;
            _entity           = entity;
            _dataSource       = dataSource;
            _crudEntityEditor = entityEditor;
            _capabilities     = capabilities;
            var editorControl      = entityEditor.AsControl();
            var targetPanelWidth   = editorControl.Width;
            var targetPanelHeight  = editorControl.Height;
            var currentPanelWidth  = _entityEditorControlPanel.Width;
            var currentPanelHeight = _entityEditorControlPanel.Height;

            this.Location      = new Point(this.Location.X - (targetPanelWidth - currentPanelWidth) / 2, this.Location.Y - (targetPanelHeight - currentPanelHeight) / 2);
            this.Size          = new Size(this.Width + (targetPanelWidth - currentPanelWidth), this.Height + (targetPanelHeight - currentPanelHeight));
            editorControl.Dock = DockStyle.Fill;
            var canSave = (isNewEntity && _capabilities.HasFlag(CrudCapabilities.CanCreate)) || (!isNewEntity && _capabilities.HasFlag(CrudCapabilities.CanUpdate));

            _entityEditorControlPanel.Controls.Add(editorControl);
            _deleteButton.Visible = _capabilities.HasFlag(CrudCapabilities.CanDelete) && !isNewEntity;
            _saveButton.Visible   = canSave;
            if (!canSave)
            {
                _cancelButton.Text     = "OK";
                _cancelButton.Location = _saveButton.Location;
            }
            entityEditor.SetEntity(capabilities, entity, isNewEntity);
        }
示例#2
0
 public void SetEntity(CrudCapabilities capabilities, object entity, bool isNewEntity)
 {
     _crudCapabilities = capabilities;
     _entity           = entity;
     _isNewEntity      = isNewEntity;
     CreateBackup();
     BindToPropertyGrid();
 }
示例#3
0
 public CrudGrid()
 {
     try {
         _updating   = true;
         _threadLock = new object();
         InitializeComponent();
         //BorderStyle = BorderStyle.None;
         _selectedEntity         = null;
         _dataSource             = null;
         _sortColumnIndex        = 0;
         _sortColumnName         = null;
         _sortDirection          = SortDirection.Ascending;
         _pageSize               = DefaultPageSize;
         _pageSizeUpDown.Minimum = 100;
         _pageSizeUpDown.Maximum = int.MaxValue;
         _pageSizeUpDown.Value   = _pageSize;
         _autoPageSize           = false;
         _pageNumber             = 0;
         _endPageNumber          = 0;
         _totalRecords           = 0;
         _rowToEntityMap         = new Dictionary <int, object>();
         CalculateEntityToRowLookup();
         _gridTitle                  = string.Empty;
         _crudCapabilities           = CrudCapabilities.Default;
         _columnsBindings            = new ICrudGridColumn[0];
         _entityEditorAdapter        = new CrudEntityEditorAdapter <object>();
         _entityEditorType           = typeof(DefaultCrudEntityEditor);
         _gridContainerPanel.Resize += new EventHandler(_gridContainerPanel_Resize);
         LeftClickToDeselect         = false;
         RightClickForContextMenu    = true;
         UseEntityReferenceForLookup = false;
         AutoSelectOnCreate          = false;
         _refreshThrottle            = new Throttle(TimeSpan.FromMilliseconds(250));
         _grid.MinimumHeight         = DefaultRowHeight;
         OrganizeLayout();
     } finally {
         _updating = false;
     }
 }
示例#4
0
 public void SetCrudParameters <TEntity>(IEnumerable <ICrudGridColumn> gridBindings, Type entityEditorType, CrudCapabilities capabilities, ICrudDataSource <TEntity> dataSource, Size?size = null, bool autoPageSize = false)
 {
     try {
         if (entityEditorType != null)
         {
             _crudGrid.SetEntityEditor <TEntity>(entityEditorType);
         }
         _crudGrid.Capabilities = capabilities;                //.ClearFlags(CrudCapabilities.CanDelete | CrudCapabilities.CanCreate);
         _crudGrid.GridBindings = gridBindings;
         _crudGrid.SetDataSource(dataSource);
         if (size != null)
         {
             _crudGrid.Size = size.Value;
         }
         _crudGrid.AutoPageSize = autoPageSize;
         _crudGrid.AutoSizeCells();
     } catch (Exception error) {
         ExceptionDialog.Show(this, error);
     }
 }
 public abstract void SetEntity(CrudCapabilities capabilities, object entity, bool isNewEntity);
示例#6
0
        public void SetCrudParameters <TEntity>(IEnumerable <ICrudGridColumn> gridBindings, Type entityEditorType, CrudCapabilities capabilities, ICrudDataSource <TEntity> dataSource)
        {
            var initializationAction =
                new Action(() => {
                try {
                    if (entityEditorType != null)
                    {
                        _crudGrid.SetEntityEditor <TEntity>(entityEditorType);
                    }
                    _crudGrid.Capabilities = capabilities;
                    _crudGrid.GridBindings = gridBindings;
                    _crudGrid.SetDataSource(dataSource);
                } catch (Exception error) {
                    ExceptionDialog.Show(this, error);
                }
            });

            if (!IsHandleCreated)
            {
                _delayedInitializationAction = initializationAction;
            }
            else
            {
                initializationAction();
            }
        }
示例#7
0
        public static void Show <TEntity>(IWin32Window window, string title, IEnumerable <ICrudGridColumn> gridBindings, Type entityEditorType, CrudCapabilities capabilities, ICrudDataSource <TEntity> dataSource)
        {
            var crudDialog = new CrudDialog();

            crudDialog.Text = title;
            crudDialog.SetCrudParameters(gridBindings, entityEditorType, capabilities, dataSource);
            crudDialog.ShowDialog(window);
        }
示例#8
0
 public static void Show <TEntity>(string title, IEnumerable <ICrudGridColumn> gridBindings, Type entityEditorType, CrudCapabilities capabilities, ICrudDataSource <TEntity> dataSource)
 {
     Show(null, title, gridBindings, entityEditorType, capabilities, dataSource);
 }
示例#9
0
 public static void Show <TEntity>(IWin32Window window, string title, IEnumerable <ICrudGridColumn> gridBindings, CrudCapabilities capabilities, ICrudDataSource <TEntity> dataSource)
 {
     Show(window, title, gridBindings, typeof(DefaultCrudEntityEditor), capabilities, dataSource);
 }