Пример #1
0
 public override int GetHashCode()
 {
     unchecked
     {
         return((ColumnId.GetHashCode() * 397) ^ (int)ListSortDirection);
     }
 }
Пример #2
0
        public static ViewLayout ReadXml(XmlReader reader)
        {
            var viewLayout = new ViewLayout(reader.GetAttribute("name"));

            if (reader.IsEmptyElement)
            {
                reader.ReadElementString("layout");
                return(viewLayout);
            }
            reader.Read();
            var columnFormats = new List <Tuple <ColumnId, ColumnFormat> >();
            var rowTransforms = new List <IRowTransform>();

            while (true)
            {
                if (reader.IsStartElement("columnFormat"))
                {
                    var columnFormat = ColumnFormat.EMPTY;

                    var strWidth = reader.GetAttribute("width");
                    if (strWidth != null)
                    {
                        columnFormat = columnFormat.ChangeWidth(int.Parse(strWidth));
                    }
                    columnFormat = columnFormat.ChangeFormat(reader.GetAttribute("format"));
                    columnFormats.Add(Tuple.Create(ColumnId.ParsePersistedString(reader.GetAttribute("column")), columnFormat));
                    if (reader.IsEmptyElement)
                    {
                        reader.ReadElementString("columnFormat");
                    }
                    else
                    {
                        reader.Skip();
                    }
                }
                else if (reader.IsStartElement("pivot"))
                {
                    rowTransforms.Add(PivotSpec.ReadXml(reader));
                }
                else if (reader.IsStartElement("rowFilter"))
                {
                    rowTransforms.Add(RowFilter.ReadXml(reader));
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    reader.ReadEndElement();
                    break;
                }
                else
                {
                    reader.Skip();
                }
            }
            viewLayout.ColumnFormats = ImmutableList.ValueOf(columnFormats);
            viewLayout.RowTransforms = ImmutableList.ValueOf(rowTransforms);
            return(viewLayout);
        }
Пример #3
0
 public override int GetHashCode()
 {
     unchecked
     {
         int hashCode = ColumnId.GetHashCode();
         hashCode = (hashCode * 397) ^ Predicate.GetHashCode();
         return(hashCode);
     }
 }
Пример #4
0
        public static PivotSpec ReadXml(XmlReader reader)
        {
            var pivotSpec = new PivotSpec();

            if (reader.IsEmptyElement)
            {
                reader.ReadElementString("pivot");
                return(pivotSpec);
            }
            var rowHeaders    = new List <Column>();
            var columnHeaders = new List <Column>();
            var values        = new List <AggregateColumn>();

            reader.Read();
            while (true)
            {
                if (reader.IsStartElement("rowHeader"))
                {
                    rowHeaders.Add(new Column(ColumnId.ParsePersistedString(reader.GetAttribute("sourceColumn")))
                                   .ChangeCaption(reader.GetAttribute("caption")));
                    ReadEndElement(reader, "rowHeader");
                }
                else if (reader.IsStartElement("columnHeader"))
                {
                    columnHeaders.Add(new Column(ColumnId.ParsePersistedString(reader.GetAttribute("sourceColumn"))));
                    ReadEndElement(reader, "columnHeader");
                }
                else if (reader.IsStartElement("value"))
                {
                    values.Add((AggregateColumn) new AggregateColumn(
                                   ColumnId.ParsePersistedString(reader.GetAttribute("sourceColumn")),
                                   AggregateOperation.FromName(reader.GetAttribute("op")))
                               .ChangeCaption(reader.GetAttribute("caption")));
                    ReadEndElement(reader, "value");
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    reader.ReadEndElement();
                    break;
                }
                else
                {
                    reader.Skip();
                }
            }
            pivotSpec.RowHeaders    = ImmutableList.ValueOf(rowHeaders);
            pivotSpec.ColumnHeaders = ImmutableList.ValueOf(columnHeaders);
            pivotSpec.Values        = ImmutableList.ValueOf(values);
            return(pivotSpec);
        }
Пример #5
0
        public RowFilter ChangeListSortDescriptionCollection(
            ListSortDescriptionCollection listSortDescriptionCollection)
        {
            var newSorts = new List <ColumnSort>();

            foreach (var listSortDescription in listSortDescriptionCollection.OfType <ListSortDescription>())
            {
                var columnId = ColumnId.TryGetColumnId(listSortDescription.PropertyDescriptor);
                if (columnId == null)
                {
                    continue;
                }
                newSorts.Add(new ColumnSort(columnId, listSortDescription.SortDirection));
            }
            return(SetColumnSorts(newSorts));
        }
Пример #6
0
 public AggregateColumn(ColumnId sourceColumn, AggregateOperation aggregateOperation) : base(sourceColumn)
 {
     AggregateOperation = aggregateOperation;
 }
Пример #7
0
 public Column(ColumnId sourceColumn)
 {
     SourceColumn = sourceColumn;
     Visible      = true;
 }
Пример #8
0
 protected bool Equals(ColumnSort other)
 {
     return(ColumnId.Equals(other.ColumnId) && ListSortDirection == other.ListSortDirection);
 }
Пример #9
0
 public ColumnSort(ColumnId columnId, ListSortDirection listSortDirection)
 {
     ColumnId          = columnId;
     ListSortDirection = listSortDirection;
 }
Пример #10
0
 public ColumnFilter(ColumnId columnId, FilterPredicate predicate)
 {
     ColumnId  = columnId;
     Predicate = predicate;
 }
Пример #11
0
        public IEnumerable <ColumnFilter> GetColumnFilters(DataPropertyDescriptor propertyDescriptor)
        {
            var columnId = ColumnId.GetColumnId(propertyDescriptor);

            return(ColumnFilters.Where(columnFilter => Equals(columnId, columnFilter.ColumnId)));
        }