示例#1
0
        public PresentationContextList LoadSettings( )
        {
            PresentationContextList list;


            if (null == _optionsAgent)
            {
                _optionsAgent = GetOptionsDataAccessAgent( );
            }

            if (null != _optionsAgent && _optionsAgent.OptionExits(_settingsKeyName))
            {
                list = _optionsAgent.Get <PresentationContextList>(_settingsKeyName, null, new Type[0]);
            }
            else
            {
                list = new PresentationContextList();
                list.Default();

                if (null != _optionsAgent)
                {
                    _optionsAgent.Set <PresentationContextList> (_settingsKeyName, list, new Type[0]);
                }
            }

            return(list);
        }
示例#2
0
        private PresentationContextList Clone(PresentationContextList options)
        {
            try
            {
                //
                // Don't serialize a null object, simply return the default for that object
                //
                if (Object.ReferenceEquals(options, null))
                {
                    return(null);
                }

                if (!options.GetType().IsSerializable)
                {
                    throw new ArgumentException("The type must be serializable.", "source");
                }

                AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);

                IFormatter formatter = new BinaryFormatter();
                Stream     stream    = new MemoryStream();

                using (stream)
                {
                    formatter.Serialize(stream, options);
                    stream.Seek(0, SeekOrigin.Begin);

                    return((PresentationContextList)formatter.Deserialize(stream));
                }
            }
            finally
            {
                AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
            }
        }
示例#3
0
        public void UpdateSettings( )
        {
            if (_optionsAgent == null)
            {
                _optionsAgent = GetOptionsDataAccessAgent();
            }

            // If _optionsAgent is still null, then the optionsAgent is not registered
            // This can happen occur with older installation of v17.5, when the optionsAgent did not exist
            if (_optionsAgent == null)
            {
                return;
            }

            if (_settings.Equals(_view.PresentationContextList))
            {
                return;
            }

            if (_view.IsDirty)
            {
                _settings = Clone(_view.PresentationContextList);

                _optionsAgent.Set <PresentationContextList>(_settingsKeyName, _settings, new Type[0]);

                _view.ChangesCommited( );
            }
        }
示例#4
0
        public void RunView(StorageClassesTabControl view)
        {
            _view = view;

            _settings = LoadSettings( );

            view.PresentationContextList = Clone(_settings);
            _view.Initialize();
            _view.SettingsChanged += new EventHandler(_view_SettingsChanged);
        }