public UpdateEntityOnValueChangedController(CrudGrid grid, ICrudDataSource <object> dataSource, ICrudGridColumn column, object entity) { _grid = grid; _dataSource = dataSource; _columnBinding = column; _entity = entity; }
private Cell CreateCheckBoxCell(ICrudGridColumn columnBinding, object entity, object cellValue) { var checkbox = new SourceGrid.Cells.CheckBox(null, (bool?)cellValue) { Editor = { EnableEdit = AllowCellEditing && columnBinding.CanEditCell } }; return(checkbox); }
private Cell CreateButtonCell(ICrudGridColumn columnBinding, object entity, string caption, System.Drawing.Image image, Action <object> clickHandler) { var button = new SourceGrid.Cells.Button(caption) { Image = image }; var clickHandlerController = new SourceGrid.Cells.Controllers.Button(); clickHandlerController.Executed += (o, e) => clickHandler(entity); button.AddController(clickHandlerController); return(button); }
private Cell CreateDateTimeCell(ICrudGridColumn columnBinding, object entity, object cellValue) { const DateTimeStyles dtStyles = System.Globalization.DateTimeStyles.AllowInnerWhite | System.Globalization.DateTimeStyles.AllowLeadingWhite | System.Globalization.DateTimeStyles.AllowTrailingWhite | System.Globalization.DateTimeStyles.AllowWhiteSpaces; var editor = columnBinding.DisplayType == CrudCellDisplayType.Time ? new SourceGrid.Cells.Editors.TimePicker() : new SourceGrid.Cells.Editors.DateTimePicker(); editor.AllowNull = columnBinding.DataType == typeof(DateTime?); var customFormat = columnBinding.GetDateTimeFormat(entity); editor.Control.CustomFormat = customFormat; var dtParseFormats = new string[] { customFormat }; var dtConverter = new DevAge.ComponentModel.Converter.DateTimeTypeConverter(customFormat, dtParseFormats, dtStyles); editor.TypeConverter = dtConverter; return(new Cell(cellValue, editor)); }
private Cell CreateDropDownListCell(ICrudGridColumn columnBinding, object entity, object cellValue) { var editor = new SourceGrid.Cells.Editors.DropDownList(columnBinding.DataType, columnBinding.DropDownItemDisplayMember); editor.Control.ValueMember = columnBinding.DropDownItemDisplayMember; editor.Control.DisplayMember = columnBinding.DropDownItemDisplayMember; editor.EditException += (o, e) => { ExceptionDialog.Show(this, e.Exception); e.Handled = true; editor.UndoEditValue(); }; var cell = new Cell(columnBinding.DataType, editor); editor.Control.DropDownStyle = ComboBoxStyle.DropDownList; cell.AddController(new AutoPopulateDropDownListOnEditStarting(editor, columnBinding, entity)); cell.Value = cellValue; return(cell); }
private Cell CreateCommandCell(ICrudGridColumn columnBinding, object entity, CrudAction action) { System.Drawing.Image image; Action <object> callback; switch (action) { case CrudAction.Update: image = Properties.Resources.SmallEditIcon; callback = EditEntity; break; case CrudAction.Delete: image = Properties.Resources.Cross; callback = DeleteEntity; break; case CrudAction.Create: default: throw new ArgumentException(string.Format("Invalid command '{0}'", action), "action"); } return(CreateButtonCell(columnBinding, entity, string.Empty, image, callback)); }
public AutoPopulateDropDownListOnEditStarting(DropDownList ddl, ICrudGridColumn column, object entity) { _dropDownList = ddl; _columnBinding = column; _entity = entity; }
private Cell CreateButtonCell(ICrudGridColumn columnBinding, object entity, object cellValue) { return(CreateButtonCell(columnBinding, entity, columnBinding.GetButtonCaption(entity), columnBinding.GetButtonImage(entity), columnBinding.ButtonPressed)); }
private Cell CreateNumericCell(ICrudGridColumn columnBinding, object entity, object cellValue) { return(new Cell(cellValue, new SourceGrid.Cells.Editors.TextBoxNumeric(columnBinding.DataType))); }
private Cell CreateTextBoxCell(ICrudGridColumn columnBinding, object entity, object cellValue) { return(new Cell(cellValue, columnBinding.DataType)); }
private ICell CreateCell(ICrudGridColumn column, object entity) { Cell cell; if (column.CellHasValue(entity)) { var cellValue = column.GetCellValue(entity); switch (column.DisplayType) { case CrudCellDisplayType.Text: cell = CreateTextBoxCell(column, entity, cellValue); break; case CrudCellDisplayType.Boolean: cell = CreateCheckBoxCell(column, entity, cellValue); break; case CrudCellDisplayType.Currency: cell = CreateCurrencyCell(column, entity, cellValue); break; case CrudCellDisplayType.Numeric: cell = CreateNumericCell(column, entity, cellValue); break; case CrudCellDisplayType.DateTime: case CrudCellDisplayType.Date: case CrudCellDisplayType.Time: cell = CreateDateTimeCell(column, entity, cellValue); break; case CrudCellDisplayType.DropDownList: cell = CreateDropDownListCell(column, entity, cellValue); break; case CrudCellDisplayType.Button: cell = CreateButtonCell(column, entity, cellValue); break; case CrudCellDisplayType.EditCommand: cell = CreateCommandCell(column, entity, CrudAction.Update); break; case CrudCellDisplayType.DeleteCommand: cell = CreateCommandCell(column, entity, CrudAction.Delete); break; case CrudCellDisplayType.Empty: cell = CreateEmptyCell(); break; default: throw new NotImplementedException(string.Format("CrudColumnType not supported '{0}'", column.DisplayType)); } if (cell.Editor != null) { cell.Editor.EnableEdit = _crudCapabilities.HasFlag(CrudCapabilities.CanUpdate) && AllowCellEditing && column.CanEditCell; cell.Editor.EditableMode = SourceGrid.EditableMode.Focus | SourceGrid.EditableMode.SingleClick; cell.AddController(new UpdateEntityOnValueChangedController(this, _dataSource, column, entity)); } } else { cell = CreateEmptyCell(); } if (!AllowCellEditing) { cell.AddController(SourceGrid.Cells.Controllers.Unselectable.Default); } cell.AddController(new SourceGrid.Cells.Controllers.RowSelector(!SelectOnMouseUp)); return(cell); }