Пример #1
0
 public UpdateEntityOnValueChangedController(CrudGrid grid, ICrudDataSource <object> dataSource, ICrudGridColumn column, object entity)
 {
     _grid          = grid;
     _dataSource    = dataSource;
     _columnBinding = column;
     _entity        = entity;
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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);
        }
Пример #6
0
        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;
 }
Пример #8
0
 private Cell CreateButtonCell(ICrudGridColumn columnBinding, object entity, object cellValue)
 {
     return(CreateButtonCell(columnBinding, entity, columnBinding.GetButtonCaption(entity), columnBinding.GetButtonImage(entity), columnBinding.ButtonPressed));
 }
Пример #9
0
 private Cell CreateNumericCell(ICrudGridColumn columnBinding, object entity, object cellValue)
 {
     return(new Cell(cellValue, new SourceGrid.Cells.Editors.TextBoxNumeric(columnBinding.DataType)));
 }
Пример #10
0
 private Cell CreateTextBoxCell(ICrudGridColumn columnBinding, object entity, object cellValue)
 {
     return(new Cell(cellValue, columnBinding.DataType));
 }
Пример #11
0
        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);
        }