// // CollaborationSettings.cs // // Author: // Michael Becker // // Copyright (c) 2020 Mike Becker's Software // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System; using System.Collections.Generic; using MBS.Framework.UserInterface; namespace UniversalEditor.Plugins.Collaboration { public class CollaborationSettings : ISupportsExtraData { public bool TrackChangesEnabled { get; set; } = false; private Dictionary _ExtraData = new Dictionary(); public T GetExtraData(string key, T defaultValue = default(T)) { if (_ExtraData.ContainsKey(key) && _ExtraData[key] is T) { return (T)_ExtraData[key]; } return defaultValue; } public object GetExtraData(string key, object defaultValue = null) { if (_ExtraData.ContainsKey(key)) { return _ExtraData[key]; } return defaultValue; } public void SetExtraData(string key, T value) { _ExtraData[key] = value; } public void SetExtraData(string key, object value) { _ExtraData[key] = value; } } }