Ejemplo n.º 1
0
        public void ShouldIncludeParentInPath()
        {
            var parent = new SettingsNamespace("Parent");
            var ns     = new SettingsNamespace(parent, "Child");

            Assert.AreEqual("\\Parent\\Child", ns.Path);
        }
Ejemplo n.º 2
0
        public void SetSetting(SettingsNamespace @namespace, string name, object value)
        {
            var container = GetContainer(@namespace);

            container.SetSetting(name, value);
            OnSettingChanged(@namespace, name, value);
        }
Ejemplo n.º 3
0
        public void ShouldUseGivenParent()
        {
            var parent = new SettingsNamespace("Parent");
            var ns     = new SettingsNamespace(parent, "Name");

            Assert.AreSame(parent, ns.Parent);
        }
Ejemplo n.º 4
0
        public void ShouldUseGivenNameWithDefaultParent()
        {
            const string name = "Name";
            var          ns   = new SettingsNamespace(name);

            Assert.AreEqual(name, ns.Name);
        }
Ejemplo n.º 5
0
        public void ShouldUseGivenName()
        {
            const string name = "Name";
            var          ns   = new SettingsNamespace(SettingsNamespace.None, name);

            Assert.AreEqual(name, ns.Name);
        }
Ejemplo n.º 6
0
 public Setting(
     SettingsNamespace @namespace,
     string name,
     object value)
 {
     Namespace = @namespace;
     Name      = name;
     Value     = value;
 }
Ejemplo n.º 7
0
        public void ShouldPassSettingsNamespaceToStoreWhenSettingASetting()
        {
            var innerStore        = new Mock <ISettingsStore>();
            var expectedNamespace = new SettingsNamespace("Namespace");
            var store             = ProvideStore(innerStore.Object);

            store.SetSetting(expectedNamespace, SettingName, null);
            innerStore.Verify(s => s.SetSetting(It.Is <SettingsNamespace>(ns => expectedNamespace.Equals(ns)), It.IsAny <string>(), It.IsAny <object>()));
        }
Ejemplo n.º 8
0
        private void OnSettingChanged(SettingsNamespace @namespace, string name, object value)
        {
            var handler = SettingChanged;

            if (handler != null)
            {
                handler(this, new SettingChangedEventArgs(@namespace, name, value));
            }
        }
Ejemplo n.º 9
0
 public ValueBindingBuilder SetSourceAdapter(
     ISettingsStoreAccessor storeAccessor,
     object storeKey,
     SettingsNamespace @namespace,
     string settingName)
 {
     _sourceAdapter = CreateSettingAdapter(storeAccessor, storeKey, @namespace, settingName);
     return(this);
 }
        public void ShouldPassSettingsNamespaceToStoreWhenGettingASetting()
        {
            var store             = new Mock <ISettingsStore>();
            var expectedNamespace = new SettingsNamespace("Namespace");

            _accessor.Set(StoreKey, store.Object);

            _accessor.GetSetting(StoreKey, expectedNamespace, Setting);
            store.Verify(s => s.GetSetting(It.Is <SettingsNamespace>(ns => expectedNamespace.Equals(ns)), It.IsAny <string>()));
        }
Ejemplo n.º 11
0
        public void ShouldPassNamespaceKeyWhenGettingValue()
        {
            var @namespace = new SettingsNamespace("Namespace");

            _accessor.Setup <object>(o =>
                                     o.GetSetting(It.IsAny <object>(), @namespace, It.IsAny <string>()));
            var _adapter = new SettingAdapter(_accessor.Object, null, @namespace, "Setting");
            var value    = _adapter.GetValue();

            _accessor.VerifyAll();
        }
Ejemplo n.º 12
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            SelectedItemsBinding.RegisterAdapterFactory(DataGridSelectedItemsAdapter.Create);
            DataGridColumnsBinding.RegisterColumnSettingNameFactory(
                DataGridColumnsBinding.DefaultSettingNameFactoryKey,
                (settingName, column, columnIndex, storedProperty) => string.Format("Column{0}{1}", columnIndex, storedProperty.Name));
            var settingsStore = new SettingsStore();

            Settings.CurrentStoreAccessor = new SingleSettingsStoreAccessor(settingsStore);

            var @namespace = new SettingsNamespace(new SettingsNamespace("Test"), "SelectedItems");
            var value      = new[] { 1, 5, 7 };

            settingsStore.SetSetting(@namespace, "SelectedItems", value);
        }
Ejemplo n.º 13
0
        public void Build()
        {
            var namespaceSource = DependencyPropertyHelper.GetValueSource(_node, Settings.NamespaceProperty);

            if (namespaceSource.BaseValueSource != BaseValueSource.Local)
            {
                var parentNamespace = GetParentNamespace();

                if (_creationInfo.CreateNew)
                {
                    var newNamespace = new SettingsNamespace(parentNamespace, _creationInfo.Name);
                    Settings.SetNamespace(_node, newNamespace);
                }
                else
                {
                    Settings.SetNamespace(_node, parentNamespace);
                }
            }
        }
Ejemplo n.º 14
0
 public SettingAdapter(
     ISettingsStoreAccessor storeAccessor,
     object storeKey,
     SettingsNamespace @namespace,
     string name)
 {
     if (storeAccessor == null)
     {
         throw new ArgumentNullException("storeAccessor");
     }
     if (@namespace == null)
     {
         throw new ArgumentNullException("namespace");
     }
     if (name == null)
     {
         throw new ArgumentNullException("name");
     }
     _storeAccessor    = storeAccessor;
     _settingNamespace = @namespace;
     _settingName      = name;
     _storeKey         = storeKey;
 }
Ejemplo n.º 15
0
        private ISettingBinding BindColumn(
            DataGridColumn column,
            int columnIndex,
            DependencyProperty storedProperty,
            SettingsNamespace @namespace,
            ValueBindingBuilder builder)
        {
            var accessor      = Settings.CurrentStoreAccessor;
            var settingName   = GetSettingName(Setting, column, columnIndex, storedProperty);
            var targetAdapter =
                DecorateTargetAdapter(
                    CreateTargetAdapter(column, storedProperty),
                    column,
                    columnIndex,
                    storedProperty);
            var exceptionHandler = new DebugValueAdapterExceptionHandler(storedProperty.Name, column, Store, settingName, @namespace);
            var binding          = builder
                                   .SetTargetAdapter(targetAdapter)
                                   .SetSourceAdapter(accessor, Store, @namespace, settingName)
                                   .SetExceptionHandler(exceptionHandler.LogAndSwallowException)
                                   .Build();

            return(binding);
        }
Ejemplo n.º 16
0
 private SettingsContainer GetContainer(SettingsNamespace @namespace)
 {
     return(_namespaceContainers.GetOrAdd(@namespace, key => new SettingsContainer()));
 }
Ejemplo n.º 17
0
 public object GetSetting(SettingsNamespace @namespace, string name)
 {
     return(_store.GetSetting(@namespace, name));
 }
Ejemplo n.º 18
0
        public void ShouldUseNoneNamespaceAsDefaultParent()
        {
            var ns = new SettingsNamespace("Name");

            Assert.AreSame(SettingsNamespace.None, ns.Parent);
        }
Ejemplo n.º 19
0
        public object GetSetting(SettingsNamespace @namespace, string name)
        {
            var container = GetContainer(@namespace);

            return(container.GetSetting(name));
        }
Ejemplo n.º 20
0
        public void SetSetting(object storeKey, SettingsNamespace @namespace, string setting, object value)
        {
            var store = GetEffectiveStore(storeKey);

            store.SetSetting(@namespace, setting, value);
        }
Ejemplo n.º 21
0
        public object GetSetting(object storeKey, SettingsNamespace @namespace, string setting)
        {
            var store = GetEffectiveStore(storeKey);

            return(store.GetSetting(@namespace, setting));
        }
Ejemplo n.º 22
0
 public static void SetNamespace(DependencyObject element, SettingsNamespace value)
 {
     element.SetValue(NamespaceProperty, value);
 }
Ejemplo n.º 23
0
        private IEnumerable <DataGridColumn> GetColumnsInInitializationOrder(DataGrid dataGrid, SettingsNamespace settingsNamespace)
        {
            // When columns' DisplayIndex is used, columns need to be initialized in ascending order of target display index.
            // This way the initialization of bindings of column displayed after previously initialized column won't change the display index of the latter.
            if (GetStoredProperties().Contains(DataGridColumn.DisplayIndexProperty))
            {
                var orderedColumns = (
                    from c in dataGrid.Columns.Select((c, i) => new { Column = c, Index = i })
                    let column = c.Column
                                 let index = c.Index
                                             let displayIndexSetting =
                        Settings.CurrentStoreAccessor.GetSetting(
                            Store,
                            settingsNamespace,
                            GetSettingName(Setting, column, index, DataGridColumn.DisplayIndexProperty))
                        where displayIndexSetting != SettingsConstants.NoValue
                        orderby(int) displayIndexSetting ascending
                        select column)
                                     .ToList();

                orderedColumns.AddRange(dataGrid.Columns.Except(orderedColumns).ToList());
                return(orderedColumns);
            }
            return(dataGrid.Columns);
        }
Ejemplo n.º 24
0
 private static SettingAdapter CreateSettingAdapter(ISettingsStoreAccessor storeAccessor, object storeKey, SettingsNamespace @namespace, string settingName)
 {
     return(new SettingAdapter(storeAccessor, storeKey, @namespace, settingName));
 }
Ejemplo n.º 25
0
 public DebugValueAdapterExceptionHandler(string propertyName, object target, object settingsStoreKey, string settingName, SettingsNamespace settingsNamespace)
 {
     _context = string.Format(
         ContextFormat,
         propertyName,
         target,
         target == null ? "no type" : target.GetType().FullName,
         settingName,
         settingsNamespace,
         settingsStoreKey);
 }
Ejemplo n.º 26
0
 public object GetSetting(SettingsNamespace @namespace, string name)
 {
     return(SettingsConstants.NoValue);
 }
Ejemplo n.º 27
0
        public void ShouldIncludeEmptyParentForSettingWithNoParent()
        {
            var ns = new SettingsNamespace("Child");

            Assert.AreEqual("\\Child", ns.Path);
        }
Ejemplo n.º 28
0
 public void SetSetting(SettingsNamespace @namespace, string name, object value)
 {
     _store.SetSetting(@namespace, name, value);
     StoreSetting(new Setting(@namespace, name, value));
 }
Ejemplo n.º 29
0
 public SettingChangedEventArgs(SettingsNamespace @namespace, string settingName, object value)
 {
     Namespace   = @namespace;
     SettingName = settingName;
     Value       = value;
 }
Ejemplo n.º 30
0
 public void SetSetting(SettingsNamespace @namespace, string name, object value)
 {
 }