private bool UpdateFilter(bool filter) { if (!IsHandleCreated || _bindingListSource == null) { return(false); } if (!_bindingListSource.IsComplete) { return(true); } var columnFilters = _bindingListSource.RowFilter.ColumnFilters.ToList(); var columns = _bindingListSource.ViewSpec.Columns; var absLog2FCExists = columns.Any(c => c.Name == "FoldChangeResult.AbsLog2FoldChange"); // Not L10N var pValueExists = columns.Any(c => c.Name == "FoldChangeResult.AdjustedPValue"); // Not L10N bool foldChangeUpdate; var foldChangeFilter = FindFoldChangeFilter(columnFilters, out foldChangeUpdate); bool pValueUpdate; var pValueFilter = FindPValueFilter(columnFilters, out pValueUpdate); if (filter) { if (foldChangeFilter != null) { _absLog2FoldChangeFilter = foldChangeFilter; } if (pValueFilter != null) { _pValueFilter = pValueFilter; } if (FoldChangCutoffValid == (foldChangeFilter != null) && PValueCutoffValid == (pValueFilter != null) && !foldChangeUpdate && !pValueUpdate) { return(false); } } else { if (_absLog2FoldChangeFilter == null && _pValueFilter == null) { return(false); } } var removeAbsLog2 = !filter && absLog2FCExists && _absLog2FoldChangeFilter != null; columnFilters.Remove(_absLog2FoldChangeFilter); columnFilters.Remove(_pValueFilter); _absLog2FoldChangeFilter = _pValueFilter = null; if (AnyCutoffSettingsValid && filter) { var missingColumns = new List <ColumnSpec>(); if (FoldChangCutoffValid && !absLog2FCExists) { missingColumns.Add(new ColumnSpec(PropertyPath.Root.Property("FoldChangeResult").Property("AbsLog2FoldChange"))); // Not L10N } if (PValueCutoffValid && !pValueExists) { missingColumns.Add(new ColumnSpec(PropertyPath.Root.Property("FoldChangeResult").Property("AdjustedPValue"))); // Not L10N } if (missingColumns.Any()) { SetColumns(_bindingListSource.ViewSpec.Columns.Concat(missingColumns)); } columnFilters.Clear(); if (FoldChangCutoffValid) { _absLog2FoldChangeFilter = CreateColumnFilter(new ColumnId("AbsLog2FoldChange"), // Not L10N FilterOperations.OP_IS_GREATER_THAN, Settings.Default.Log2FoldChangeCutoff); columnFilters.Add(_absLog2FoldChangeFilter); } if (PValueCutoffValid) { _pValueFilter = CreateColumnFilter(new ColumnId("AdjustedPValue"), // Not L10N FilterOperations.OP_IS_LESS_THAN, Math.Pow(10, -Settings.Default.PValueCutoff)); columnFilters.Add(_pValueFilter); } } else { if (removeAbsLog2) { // Remove AbsLog2FoldChange column SetColumns(columns.Except(columns.Where(c => c.Name == "FoldChangeResult.AbsLog2FoldChange"))); // Not L10N } } _bindingListSource.RowFilter = _bindingListSource.RowFilter.SetColumnFilters(columnFilters); return(true); }
private void SetFilterOperation(ComboBox comboOperation, TextBox textBoxOperand, RowFilter.ColumnFilter columnFilter) { for (int i = 0; i < comboOperation.Items.Count; i++) { FilterItem filterItem = comboOperation.Items[i] as FilterItem; if (null != filterItem && Equals(columnFilter.Predicate.FilterOperation, filterItem.FilterOperation)) { comboOperation.SelectedIndex = i; break; } } textBoxOperand.Text = columnFilter.Predicate.GetOperandDisplayText(DataSchema, PropertyDescriptor.PropertyType); }
private void SetFilterOperation(ComboBox comboOperation, TextBox textBoxOperand, RowFilter.ColumnFilter columnFilter) { for (int i = 0; i < comboOperation.Items.Count; i++) { FilterItem filterItem = comboOperation.Items[i] as FilterItem; if (null != filterItem && Equals(columnFilter.FilterOperation, filterItem.FilterOperation)) { comboOperation.SelectedIndex = i; break; } } textBoxOperand.Text = columnFilter.Operand; }