diff --git a/Libraries/UniversalEditor.Core/ObjectModel.cs b/Libraries/UniversalEditor.Core/ObjectModel.cs index cc283aab..073fd516 100644 --- a/Libraries/UniversalEditor.Core/ObjectModel.cs +++ b/Libraries/UniversalEditor.Core/ObjectModel.cs @@ -21,13 +21,14 @@ using System; using System.Collections.Generic; +using MBS.Framework; namespace UniversalEditor { /// /// The in-memory representation of data serialized to and from an using a particular . /// - public abstract class ObjectModel : ICloneable, References + public abstract class ObjectModel : ICloneable, References, ISupportsExtraData { /// /// Represents a collection of objects. @@ -225,5 +226,32 @@ namespace UniversalEditor { return GetCriteriaObjectsInternal(); } + + + + // implementation of ISupportsExtraData + + public T GetExtraData(string key, T defaultValue = default(T)) + { + return (T)GetExtraData(key, (object)defaultValue); + } + + public void SetExtraData(string key, T value) + { + SetExtraData(key, (object)value); + } + + private Dictionary _extraData = new Dictionary(); + public object GetExtraData(string key, object defaultValue = null) + { + if (_extraData.ContainsKey(key)) + return _extraData[key]; + return defaultValue; + } + + public void SetExtraData(string key, object value) + { + _extraData[key] = value; + } } }