Exemplo n.º 1
0
        private PropertySetting CreateSetting(string name, string propertyName)
        {
            PropertySetting _propertySetting = new PropertySetting(name, m_form, propertyName);

            _propertySetting.ValueSaving += ValueSaving;
            return(_propertySetting);
        }
Exemplo n.º 2
0
        public FormSettings(Form form, string settingsKey) :
            base(settingsKey)
        {
            if (form == null)
            {
                throw new ArgumentNullException("form");
            }

            m_form         = form;
            UseLocation    = true;
            UseSize        = true;
            UseWindowState = true;
            SaveOnClose    = true;

            // settings
            m_topSetting    = CreateSetting("Window.Top", "Top");
            m_leftSetting   = CreateSetting("Window.Left", "Left");
            m_widthSetting  = CreateSetting("Window.Width", "Width");
            m_heightSetting = CreateSetting("Window.Height", "Height");
            m_stateSetting  = CreateSetting("Window.WindowState", "WindowState");

            // subscribe to parent form's events
            m_form.Load    += FormLoad;
            m_form.Closing += FormClosing;
        }
        public void AddAll(object obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            // field settings
            FieldInfo[] _fieldInfos = obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (FieldInfo fieldInfo in _fieldInfos)
            {
                FieldSettingAttribute[] _settingAttributes = (FieldSettingAttribute[])fieldInfo.GetCustomAttributes(typeof(FieldSettingAttribute), true);

                if (_settingAttributes.Length <= 0)
                {
                    continue;
                }

                FieldSettingAttribute _settingAttribute = _settingAttributes[0];
                string _settingName = _settingAttribute.Name;

                if (string.IsNullOrEmpty(_settingName))
                {
                    _settingName = fieldInfo.Name;
                }

                object       _defaultValue = _settingAttribute.DefaultValue;
                FieldSetting _fieldSetting = new FieldSetting(_settingName, obj, fieldInfo.Name, _defaultValue);
                Add(_fieldSetting);
            }

            // property settings
            PropertyInfo[] _propertyInfos = obj.GetType().GetProperties(
                BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (PropertyInfo _propertyInfo in _propertyInfos)
            {
                PropertySettingAttribute[] _settingAttributes = (PropertySettingAttribute[])_propertyInfo.GetCustomAttributes(typeof(PropertySettingAttribute), true);

                if (_settingAttributes.Length <= 0)
                {
                    continue;
                }

                PropertySettingAttribute _settingAttribute = _settingAttributes[0];
                string _settingName = _settingAttribute.Name;

                if (string.IsNullOrEmpty(_settingName))
                {
                    _settingName = _propertyInfo.Name;
                }

                object          _defaultValue    = _settingAttribute.DefaultValue;
                PropertySetting _propertySetting = new PropertySetting(_settingName, obj, _propertyInfo.Name, _defaultValue);
                Add(_propertySetting);
            }
        }
Exemplo n.º 4
0
        private void Collect(DependencyObject currentObject, bool recursive)
        {
            foreach (object _child in LogicalTreeHelper.GetChildren(currentObject))
            {
                DependencyObject _dependencyObject = _child as DependencyObject;

                if (_dependencyObject == null)
                {
                    continue;
                }

                FrameworkElement _frameworkElement = _child as FrameworkElement;

                if (_frameworkElement != null)
                {
                    bool _add = m_elementType.IsAssignableFrom(_frameworkElement.GetType());

                    if (_add && string.IsNullOrEmpty(_frameworkElement.Name))
                    {
                        _add = false;
                        Debug.WriteLine("PropertySettingCollector: missing name for framework element " + _frameworkElement);
                    }

                    if (_add && !OnCollectingSetting(_frameworkElement))
                    {
                        _add = false;
                    }

                    if (_add)
                    {
                        string          _settingName     = string.Concat(_frameworkElement.Name, ".", m_propertyName);
                        PropertySetting _propertySetting = new PropertySetting(_settingName, _frameworkElement, m_propertyName);
                        _propertySetting.DefaultValue = _propertySetting.Value;
                        ApplicationSettings.Settings.Add(_propertySetting);
                    }
                }

                if (recursive)
                {
                    Collect(_dependencyObject, true);
                }
            }
        }
        private void Collect(Control.ControlCollection children, bool recursive)
        {
            foreach (Control _control in children)
            {
                bool _add = _control.GetType().IsAssignableFrom(m_elementType);

                string _controlId = null;

                if (_add)
                {
                    _controlId = GetControlId(_control);

                    if (string.IsNullOrEmpty(_controlId))
                    {
                        _add = false;
                        Debug.WriteLine("PropertySettingCollector: missing id for control " + _control);
                    }
                }

                if (_add && !OnCollectingSetting(_control))
                {
                    _add = false;
                }

                if (_add)
                {
                    string          _settingName     = string.Concat(_controlId, ".", m_propertyName);
                    PropertySetting _propertySetting = new PropertySetting(_settingName, _control, m_propertyName);
                    _propertySetting.DefaultValue = _propertySetting.Value;
                    ApplicationSettings.Settings.Add(_propertySetting);
                }

                if (recursive && _control.Controls.Count > 0)
                {
                    Collect(_control.Controls, true);
                }
            }
        }