Ejemplo n.º 1
0
 protected bool Equals(ViewLayout other)
 {
     return(string.Equals(Name, other.Name) &&
            Equals(ColumnFormats, other.ColumnFormats) && Equals(RowTransforms, other.RowTransforms));
 }
Ejemplo n.º 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>();
            ClusteringSpec clusterSpec   = null;

            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.IsStartElement("cluster"))
                {
                    clusterSpec = ClusteringSpec.ReadXml(reader);
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    reader.ReadEndElement();
                    break;
                }
                else
                {
                    reader.Skip();
                }
            }
            viewLayout.ColumnFormats = ImmutableList.ValueOf(columnFormats);
            viewLayout.RowTransforms = ImmutableList.ValueOf(rowTransforms);
            viewLayout.ClusterSpec   = clusterSpec;
            return(viewLayout);
        }