Example #1
0
 public OptionManager()
 {
     _root = new OptionNode();
     _unloadedProviders            = new HashSet <IOptionProvider>();
     _providers                    = new Collections.Collection <IOptionProvider>();
     _providers.CollectionChanged += Providers_CollectionChanged;
 }
Example #2
0
        private void Invoke(OptionNode node, InvokeMethod method)
        {
            if (node == null)
            {
                return;
            }

            if (node.Option != null)
            {
                switch (method)
                {
                case InvokeMethod.Apply:
                    node.Option.Apply();
                    break;

                case InvokeMethod.Reset:
                    node.Option.Reset();
                    break;
                }
            }

            foreach (var child in node.Children)
            {
                this.Invoke(child, method);
            }
        }
Example #3
0
        public OptionLoaderSelector(OptionNode root)
        {
            if (root == null)
            {
                throw new ArgumentNullException(nameof(root));
            }

            _root    = root;
            _loaders = new ConcurrentDictionary <Type, IOptionLoader>();
        }
Example #4
0
        private void Initialize(OptionNode node, IOptionProvider provider, IOptionView view, IOptionViewBuilder viewBuilder)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            _node        = node;
            _provider    = provider;
            _view        = view;
            _viewBuilder = viewBuilder;
            _isDirty     = false;
        }
Example #5
0
 public Option(OptionNode node, IOptionProvider provider, IOptionViewBuilder viewBuilder)
 {
     this.Initialize(node, provider, null, viewBuilder);
 }
Example #6
0
 public Option(OptionNode node, IOptionProvider provider, IOptionView view)
 {
     this.Initialize(node, provider, view, null);
 }
Example #7
0
 public Option(OptionNode node, IOptionProvider provider)
 {
     this.Initialize(node, provider, null, null);
 }
Example #8
0
 public Option(OptionNode node)
 {
     this.Initialize(node, null, null, null);
 }