Exemple #1
0
        /// <inheritdoc/>
        protected override void OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs e)
        {
            base.OnIsKeyboardFocusedChanged(e);

            var p = DataPresenter?.GetService <Presenter>();

            if (p == null)
            {
                return;
            }

            Refresh(p);
            if ((bool)e.NewValue)
            {
                p.OnFocused(this);
            }
        }
Exemple #2
0
            public ColumnValueBag[] Submit()
            {
                RowValidation.SetAsyncErrors(DataValidationResults.Empty);

                if (!SubmitInput())
                {
                    return(null);
                }

                var result            = new ColumnValueBag[DataSet.Count];
                var serializers       = GetColumnSerializers();
                var validationResults = DataValidationResults.Empty;

                for (int i = 0; i < DataSet.Count; i++)
                {
                    var validationErrors = DataValidationErrors.Empty;
                    var columnValueBag   = new ColumnValueBag();
                    result[i] = columnValueBag;
                    for (int j = 0; j < serializers.Count; j++)
                    {
                        var serializer = serializers[j];
                        if (serializer == null)
                        {
                            continue;
                        }

                        var textColumn = _.TextColumns[j];
                        try
                        {
                            serializer.Deserialize(textColumn[i], columnValueBag);
                        }
                        catch (Exception ex)
                        {
                            validationErrors = validationErrors.Add(new DataValidationError(ex.Message, textColumn));
                        }
                    }

                    if (validationErrors.Count > 0)
                    {
                        validationResults = validationResults.Add(new DataValidationResult(DataSet[i], validationErrors));
                    }
                }

                if (validationResults.Count > 0)
                {
                    RowValidation.SetAsyncErrors(validationResults);
                    return(null);
                }

                var pasteAppendService = _sourcePresenter.GetService <DataView.IPasteAppendService>(false);

                if (pasteAppendService != null && !pasteAppendService.Verify(result))
                {
                    return(null);
                }
                return(result);
            }
Exemple #3
0
        public void Show(DataPresenter target)
        {
            var sortings = GetSortings(target.GetService <ColumnHeader.ISortService>());

            _presenter = new Presenter(target);
            _presenter.Show(_dataView, sortings);
            Owner = GetWindow(target.View);
            ShowDialog();
        }
Exemple #4
0
            private void ExecToggleSortDirection(object sender, ExecutedRoutedEventArgs e)
            {
                var columnHeader = (ColumnHeader)sender;
                var direction    = Toggle(columnHeader.SortDirection);
                var sortService  = DataPresenter.GetService <ISortService>();

                if (direction == null)
                {
                    sortService.OrderBy = null;
                }
                else
                {
                    sortService.OrderBy = new IColumnComparer[] { DataRow.OrderBy(columnHeader.Column, direction.GetValueOrDefault() == ListSortDirection.Ascending ? Data.SortDirection.Ascending : Data.SortDirection.Descending) }
                };
            }
Exemple #5
0
            private RowPresenter[] GetSelectedRows()
            {
                var presenter     = DataPresenter.GetService <Presenter>();
                var startRowIndex = presenter.StartSelectedRowIndex;
                var endRowIndex   = presenter.EndSelectedRowIndex;

                Debug.Assert(SelectedRowsCount > 0);
                var result = new RowPresenter[SelectedRowsCount];
                var index  = 0;

                for (int i = startRowIndex; i <= endRowIndex; i++)
                {
                    var row = DataPresenter.Rows[i];
                    if (!row.IsVirtual)
                    {
                        result[index++] = row;
                    }
                }
                return(result);
            }
Exemple #6
0
        private ListSortDirection?GetSortDirection(DataPresenter dataPresenter)
        {
            if (!CanSort)
            {
                return(null);
            }

            var orderBy = dataPresenter.GetService <ISortService>()?.OrderBy;

            if (orderBy == null || orderBy.Count == 0)
            {
                return(null);
            }

            for (int i = 0; i < orderBy.Count; i++)
            {
                var columnComparer = orderBy[i];
                if (columnComparer.GetColumn(dataPresenter.DataSet.Model) == Column)
                {
                    return(ToListSortDirection(columnComparer.Direction));
                }
            }
            return(null);
        }
Exemple #7
0
            private ColumnSerializer[] GetSelectedColumnSerializers()
            {
                var presenter         = DataPresenter.GetService <Presenter>();
                var startBindingIndex = presenter.StartSelectedBindingIndex;

                Debug.Assert(startBindingIndex >= 0);
                var endBindingIndex  = presenter.EndSelectedBindingIndex;
                var gridCellBindings = presenter.GridCellBindings;

                var result = new ColumnSerializer[SelectedColumnsCount];
                int index  = 0;

                for (int i = startBindingIndex; i <= endBindingIndex; i++)
                {
                    var rowBinding          = gridCellBindings[i];
                    var serializableColumns = rowBinding.SerializableColumns;
                    for (int j = 0; j < serializableColumns.Count; j++)
                    {
                        result[index++] = DataPresenter.GetSerializer(serializableColumns[j]);
                    }
                }

                return(result);
            }
Exemple #8
0
 private ICommandService GetCommandService(DataPresenter dataPresenter)
 {
     return(dataPresenter.GetService <ICommandService>());
 }
Exemple #9
0
        private void ExecLookup()
        {
            var lookupService = DataPresenter?.GetService <ILookupService>();

            lookupService.BeginLookup(this);
        }