Пример #1
0
        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
 private void BindToPropertyGrid()
 {
     if (_backupEntity != null)
     {
         _propertyGrid.SelectedObject = _entity;
     }
     _propertyGrid.Enabled = (_isNewEntity && _crudCapabilities.HasFlag(CrudCapabilities.CanCreate)) || (!_isNewEntity && _crudCapabilities.HasFlag(CrudCapabilities.CanUpdate));
 }
Пример #3
0
        private void OrganizeLayout()
        {
            _createButton.Enabled          = _crudCapabilities.HasFlag(CrudCapabilities.CanCreate);
            _deleteButton.Enabled          = _deleteToolStripMenuItem.Enabled = _crudCapabilities.HasFlag(CrudCapabilities.CanDelete);
            _editToolStripMenuItem.Enabled = _crudCapabilities.HasFlag(CrudCapabilities.CanUpdate);
            _searchTextBox.Enabled         = _crudCapabilities.HasFlag(CrudCapabilities.CanSearch);

            if (_createButton.Enabled || _deleteButton.Enabled || _searchTextBox.Enabled)
            {
                ShowButtonBar();
            }
            else
            {
                HideButtonBar();
            }
            var shouldBind = !_crudCapabilities.HasFlag(CrudCapabilities.CanRead) && _grid.Rows.Count > 0;

            shouldBind = shouldBind || _crudCapabilities.HasFlag(CrudCapabilities.CanRead) && _grid.Rows.Count == 0;
            shouldBind = shouldBind || !_crudCapabilities.HasFlag(CrudCapabilities.CanSort) && _sortColumnName != null;
            if (!_crudCapabilities.HasFlag(CrudCapabilities.CanSort))
            {
                _sortColumnName  = null;
                _sortColumnIndex = 0;
            }

            if (_crudCapabilities.HasFlag(CrudCapabilities.CanPage))
            {
                shouldBind = shouldBind || _layoutPanel.RowStyles[2].Height == 0;
                ShowPageBar();
                _pageSize = AutoPageSize ? CalculateAutoPageSize() : (int)_pageSizeUpDown.Value;
                _pageSizeLabel.Visible = _pageSizeUpDown.Visible = !_autoPageSize;
            }
            else
            {
                shouldBind = shouldBind || _layoutPanel.RowStyles[2].Height != 0;
                HidePageBar();
                _pageSize = int.MaxValue;
            }
        }