Пример #1
0
        void CommitFilterOpCombo()
        {
            var dataGridViewComboBoxEditingControl = dataGridViewFilter.EditingControl as DataGridViewComboBoxEditingControl;

            if (dataGridViewComboBoxEditingControl == null || dataGridViewFilter.CurrentRow == null)
            {
                return;
            }
            var rowIndex        = dataGridViewFilter.CurrentRow.Index;
            var filterOperation = FilterOperationFromDisplayName(dataGridViewComboBoxEditingControl.Text);

            if (filterOperation == null)
            {
                return;
            }
            if (filterOperation == ViewInfo.Filters[rowIndex].FilterSpec.Operation)
            {
                return;
            }
            var newFilters       = ViewSpec.Filters.ToArray();
            var columnDescriptor = ViewInfo.Filters[rowIndex].ColumnDescriptor;

            newFilters[rowIndex] = newFilters[rowIndex].SetPredicate(
                FilterPredicate.CreateFilterPredicate(columnDescriptor.DataSchema, columnDescriptor.PropertyType, filterOperation,
                                                      dataGridViewFilter.CurrentRow.Cells[colFilterOperand.Index].Value as string));
            ViewSpec = ViewSpec.SetFilters(newFilters);
        }
Пример #2
0
 private static ViewSpec MapViewSpec(IEnumerable <KeyValuePair <PropertyPath, PropertyPath> > mapping, ViewSpec viewSpec, Type newRowType)
 {
     viewSpec = viewSpec.SetColumns(viewSpec.Columns.Select(
                                        col => col.SetPropertyPath(MapPropertyPath(mapping, col.PropertyPath))));
     viewSpec = viewSpec.SetFilters(viewSpec.Filters.Select(
                                        filter => filter.SetColumnId(MapPropertyPath(mapping, filter.ColumnId))));
     //viewSpec = viewSpec.SetSublistId(MapPropertyPath(mapping, viewSpec.SublistId));
     viewSpec = viewSpec.SetRowType(newRowType);
     return(viewSpec);
 }
Пример #3
0
        private void AddFilter(ColumnDescriptor columnDescriptor)
        {
            var newFilters = new List <FilterSpec>(ViewSpec.Filters)
            {
                new FilterSpec(columnDescriptor.PropertyPath, FilterPredicate.HAS_ANY_VALUE)
            };

            SetViewSpec(ViewSpec.SetFilters(newFilters), null);
            dataGridViewFilter.CurrentCell = dataGridViewFilter.Rows[dataGridViewFilter.Rows.Count - 1].Cells[colFilterOperation.Index];
        }
Пример #4
0
 public void TestDataBindingIsNotNullFilter()
 {
     var dataSchema = new DataSchema();
     var viewSpec = new ViewSpec().SetColumns(new[] {new ColumnSpec(PropertyPath.Parse("AminoAcidsDict!*.Value")),})
         .SetSublistId(PropertyPath.Parse("AminoAcidsDict!*"));
     var viewSpecWithFilter = viewSpec.SetFilters(new[]
         {
             new FilterSpec(PropertyPath.Parse("AminoAcidsDict!*.Value"),
                            FilterOperations.OP_IS_NOT_BLANK, null),
         });
     var bindingListSource = new BindingListSource();
     var bindingListSourceWithFilter = new BindingListSource();
     bindingListSource.SetView(new ViewInfo(dataSchema, typeof(Peptide), viewSpec), null);
     bindingListSourceWithFilter.SetView(new ViewInfo(dataSchema, typeof(Peptide), viewSpecWithFilter), new[] {new Peptide("")});
     Assert.AreEqual(0, bindingListSourceWithFilter.Count);
     bindingListSource.RowSource = bindingListSourceWithFilter.RowSource;
     Assert.AreEqual(1, bindingListSource.Count);
 }
Пример #5
0
        public void TestDataBindingIsNotNullFilter()
        {
            var dataSchema = new DataSchema();
            var viewSpec   = new ViewSpec().SetColumns(new[] { new ColumnSpec(PropertyPath.Parse("AminoAcidsDict!*.Value")), })
                             .SetSublistId(PropertyPath.Parse("AminoAcidsDict!*"));
            var viewSpecWithFilter = viewSpec.SetFilters(new[]
            {
                new FilterSpec(PropertyPath.Parse("AminoAcidsDict!*.Value"), FilterPredicate.IS_NOT_BLANK),
            });
            var bindingListSource           = new BindingListSource();
            var bindingListSourceWithFilter = new BindingListSource();

            bindingListSource.SetView(new ViewInfo(dataSchema, typeof(Peptide), viewSpec), null);
            bindingListSourceWithFilter.SetView(new ViewInfo(dataSchema, typeof(Peptide), viewSpecWithFilter), new[] { new Peptide("") });
            Assert.AreEqual(0, bindingListSourceWithFilter.Count);
            bindingListSource.RowSource = bindingListSourceWithFilter.RowSource;
            Assert.AreEqual(1, bindingListSource.Count);
        }
Пример #6
0
 private void DataGridViewFilterOnCellEndEdit(object sender, DataGridViewCellEventArgs e)
 {
     if (InChangeView)
     {
         return;
     }
     if (e.ColumnIndex == colFilterOperation.Index || e.ColumnIndex == colFilterOperand.Index)
     {
         var newFilters      = ViewSpec.Filters.ToArray();
         var filterInfo      = ViewInfo.Filters[e.RowIndex];
         var filterPredicate = SafeCreateFilterPredicate(
             filterInfo.ColumnDescriptor.DataSchema,
             filterInfo.ColumnDescriptor.PropertyType,
             FilterOperationFromDisplayName(
                 dataGridViewFilter.Rows[e.RowIndex].Cells[colFilterOperation.Index].Value as string),
             dataGridViewFilter.Rows[e.RowIndex].Cells[colFilterOperand.Index].Value as string);
         newFilters[e.RowIndex] = new FilterSpec(filterInfo.ColumnDescriptor.PropertyPath, filterPredicate);
         ViewSpec = ViewSpec.SetFilters(newFilters);
     }
 }
Пример #7
0
 private void DataGridViewFilterOnCellEndEdit(object sender, DataGridViewCellEventArgs e)
 {
     if (InChangeView)
     {
         return;
     }
     if (e.ColumnIndex == colFilterOperation.Index)
     {
         var newFilters = ViewSpec.Filters.ToArray();
         var cell       = dataGridViewFilter.Rows[e.RowIndex].Cells[e.ColumnIndex];
         newFilters[e.RowIndex] = newFilters[e.RowIndex].SetOperation(FilterOperationFromDisplayName(cell.Value as string));
         ViewSpec = ViewSpec.SetFilters(newFilters);
     }
     else if (e.ColumnIndex == colFilterOperand.Index)
     {
         var newFilters = ViewSpec.Filters.ToArray();
         var cell       = dataGridViewFilter.Rows[e.RowIndex].Cells[e.ColumnIndex];
         newFilters[e.RowIndex] = newFilters[e.RowIndex].SetOperand((string)cell.Value);
         ViewSpec = ViewSpec.SetFilters(newFilters);
     }
 }
Пример #8
0
        /// <summary>
        /// In old custom reports, if the report was showing rows from a Results table,
        /// the report would not include any DocNode's which did not have any results.
        /// To preserve this behavior we add a filter that only DocNode's which have at
        /// least one Result get included.
        /// </summary>
        public static ViewSpec AddFilter(ViewSpec viewSpec, ReportSpec reportSpec)
        {
            var propertyPaths = new HashSet <PropertyPath>();
            IEnumerable <ReportColumn> columns = reportSpec.Select;

            if (reportSpec.CrossTabValues != null)
            {
                columns = columns.Concat(reportSpec.CrossTabValues);
            }
            foreach (var reportColumn in columns)
            {
                var databindingTableAttribute = GetDatabindingTableAttribute(reportColumn);
                if (null != databindingTableAttribute.Property && !databindingTableAttribute.Property.EndsWith(@"Summary"))
                {
                    propertyPaths.Add(PropertyPath.Parse(databindingTableAttribute.Property));
                }
            }
            var newFilters = propertyPaths.Select(propertyPath => new FilterSpec(propertyPath, FilterPredicate.IS_NOT_BLANK));

            viewSpec = viewSpec.SetFilters(viewSpec.Filters.Concat(newFilters));
            return(viewSpec);
        }
Пример #9
0
 /// <summary>
 /// In old custom reports, if the report was showing rows from a Results table,
 /// the report would not include any DocNode's which did not have any results.
 /// To preserve this behavior we add a filter that only DocNode's which have at
 /// least one Result get included.
 /// </summary>
 public static ViewSpec AddFilter(ViewSpec viewSpec, ReportSpec reportSpec)
 {
     var propertyPaths = new HashSet<PropertyPath>();
     IEnumerable<ReportColumn> columns = reportSpec.Select;
     if (reportSpec.CrossTabValues != null)
     {
         columns = columns.Concat(reportSpec.CrossTabValues);
     }
     foreach (var reportColumn in columns)
     {
         var databindingTableAttribute = GetDatabindingTableAttribute(reportColumn);
         if (null != databindingTableAttribute.Property && !databindingTableAttribute.Property.EndsWith("Summary")) // Not L10N
         {
             propertyPaths.Add(PropertyPath.Parse(databindingTableAttribute.Property));
         }
     }
     var newFilters =
         propertyPaths.Select(
             propertyPath => new FilterSpec(propertyPath, FilterOperations.OP_IS_NOT_BLANK, null));
     viewSpec = viewSpec.SetFilters(viewSpec.Filters.Concat(newFilters));
     return viewSpec;
 }
Пример #10
0
        void CommitFilterOpCombo()
        {
            var dataGridViewComboBoxEditingControl = dataGridViewFilter.EditingControl as DataGridViewComboBoxEditingControl;

            if (dataGridViewComboBoxEditingControl == null || dataGridViewFilter.CurrentRow == null)
            {
                return;
            }
            var rowIndex        = dataGridViewFilter.CurrentRow.Index;
            var filterOperation = FilterOperationFromDisplayName(dataGridViewComboBoxEditingControl.Text);

            if (filterOperation == null)
            {
                return;
            }
            if (filterOperation == ViewInfo.Filters[rowIndex].FilterSpec.Operation)
            {
                return;
            }
            var newFilters = ViewSpec.Filters.ToArray();

            newFilters[rowIndex] = newFilters[rowIndex].SetOperation(filterOperation);
            ViewSpec             = ViewSpec.SetFilters(newFilters);
        }
Пример #11
0
        public void DeleteSelectedFilters()
        {
            var newFilters = ViewSpec.Filters.Where((filterSpec, index) => !dataGridViewFilter.Rows[index].Selected);

            ViewSpec = ViewSpec.SetFilters(newFilters);
        }