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); }
private void BindToPropertyGrid() { if (_backupEntity != null) { _propertyGrid.SelectedObject = _entity; } _propertyGrid.Enabled = (_isNewEntity && _crudCapabilities.HasFlag(CrudCapabilities.CanCreate)) || (!_isNewEntity && _crudCapabilities.HasFlag(CrudCapabilities.CanUpdate)); }
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; } }