public override void SaveColumnLayouts(FeedColumnLayoutCollection layouts)
        {
            string fileName = ColumnLayoutDefsFileName;

            if (layouts == null || layouts.Count == 0)
            {
                if (File.Exists(fileName))
                {
                    FileHelper.Delete(fileName);
                }
                return;
            }

            XmlSerializer serializer = XmlHelper.SerializerCache.GetSerializer(typeof(SerializableColumnLayoutDefinitions));

            using (Stream stream = FileHelper.OpenForWrite(fileName))
            {
                SerializableColumnLayoutDefinitions root = new SerializableColumnLayoutDefinitions();
                root.ColumnLayouts = new List <listviewLayout>(layouts.Count);
                /* sometimes we get nulls in the arraylist, remove them */
                List <string> toRemove = new List <string>();
                foreach (string k in layouts.Keys)
                {
                    var s = layouts[k];
                    if (s == null)
                    {
                        toRemove.Add(k);
                    }
                    else
                    {
                        root.ColumnLayouts.Add(new listviewLayout(k, s));
                    }
                }

                while (toRemove.Count > 0)
                {
                    layouts.Remove(toRemove[0]);
                    toRemove.RemoveAt(0);
                }

                serializer.Serialize(stream, root);
            }
        }
        //public override void Initialize(string initData)
        //{
        //    base.Initialize(initData);
        //    //TODO: own inits
        //}

        public override FeedColumnLayoutCollection LoadColumnLayouts()
        {
            string fileName = ColumnLayoutDefsFileName;

            if (File.Exists(fileName))
            {
                XmlSerializer serializer = XmlHelper.SerializerCache.GetSerializer(typeof(SerializableColumnLayoutDefinitions));
                using (Stream s = FileHelper.OpenForRead(fileName))
                {
                    SerializableColumnLayoutDefinitions root = (SerializableColumnLayoutDefinitions)serializer.Deserialize(s);
                    FeedColumnLayoutCollection          coll = new FeedColumnLayoutCollection(root.ColumnLayouts.Count);
                    foreach (var layout in root.ColumnLayouts)
                    {
                        coll.Add(layout.ID, layout.FeedColumnLayout);
                    }
                    return(coll);
                }
            }
            return(new FeedColumnLayoutCollection());
        }
Esempio n. 3
0
 public abstract void SaveColumnLayouts(FeedColumnLayoutCollection layouts);