예제 #1
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Loads context data.
        /// </summary>
        /// <param name="context">Information saved on last application exit.</param>
        public override void LoadSavedContext(SavedContext context)
        {
            if (context.ReportInfo != null)
            {
                View.FileName = context.ReportInfo.FileName;
            }
        }
예제 #2
0
        /// <summary>
        /// Applies saved application context
        /// </summary>
        /// <param name="context">Saved context</param>
        public override void LoadSavedContext(SavedContext context)
        {
            if (context.DiscoveryContext != null)
            {
                IPAddress address;
                if (IPAddress.TryParse(context.DiscoveryContext.DeviceAddress, out address))
                {
                    View.DeviceAddress = address;
                }
                View.ServiceAddress = context.DiscoveryContext.ServiceAddress;
                View.NICAddress     = context.DiscoveryContext.InterfaceAddress;

                View.ShowOptions  = context.DiscoveryContext.ShowSearchOptions;
                View.SearchScopes = context.DiscoveryContext.SearchScopes;
            }
            if (context.DeviceEnvironment != null)
            {
                if (context.DeviceEnvironment.Credentials != null)
                {
                    View.UserName = context.DeviceEnvironment.Credentials.UserName;
                    View.Password = context.DeviceEnvironment.Credentials.Password;
                }
            }

            UpdateContext();
            View.SwitchToState(Enums.ApplicationState.Idle);
        }
        /// <summary>
        /// Applies saved application context
        /// </summary>
        /// <param name="context">Saved context</param>
        public override void LoadSavedContext(SavedContext context)
        {
            SetupInfo info = context.SetupInfo;

            if (info != null)
            {
                if (info.DevInfo != null)
                {
                    View.Brand            = info.DevInfo.Manufacturer;
                    View.Model            = info.DevInfo.Model;
                    View.OnvifProductName = info.DevInfo.ProductName;
                }
                //CR is lost during serialization
                View.OtherInformation = !string.IsNullOrEmpty(info.OtherInfo) ? info.OtherInfo.Replace("\n", "\r\n") : string.Empty;
                if (info.TesterInfo != null)
                {
                    View.OperatorName        = info.TesterInfo.Operator;
                    View.OrganizationName    = info.TesterInfo.Organization;
                    View.OrganizationAddress = !string.IsNullOrEmpty(info.TesterInfo.Address) ? info.TesterInfo.Address.Replace("\n", "\r\n") : string.Empty;
                }
                if (info.MemberInfo != null)
                {
                    View.MemberName    = info.MemberInfo.Name;
                    View.MemberAddress = info.MemberInfo.Address;
                }
            }
            //bool enableGetFromDevice = (context.DiscoveryContext != null) && (!string.IsNullOrEmpty(context.DiscoveryContext.ServiceAddress));
            //View.EnableGetFromDevice(enableGetFromDevice);
        }
예제 #4
0
        /// <summary>
        /// Applies saved application context
        /// </summary>
        /// <param name="context">Saved context</param>
        public override void LoadSavedContext(SavedContext context)
        {
            SetupInfo info = context.SetupInfo;

            if (info != null)
            {
                if (info.DevInfo != null)
                {
                    View.FirmwareVersion = info.DevInfo.FirmwareVersion;
                    View.Brand           = info.DevInfo.Manufacturer;
                    View.Model           = info.DevInfo.Model;
                    View.Serial          = info.DevInfo.SerialNumber;
                }
                //CR is lost during serialization
                View.OtherInformation = !string.IsNullOrEmpty(info.OtherInfo) ? info.OtherInfo.Replace("\n", "\r\n") : string.Empty;
                if (info.TesterInfo != null)
                {
                    View.OperatorName        = info.TesterInfo.Operator;
                    View.OrganizationName    = info.TesterInfo.Organization;
                    View.OrganizationAddress = !string.IsNullOrEmpty(info.TesterInfo.Address) ? info.TesterInfo.Address.Replace("\n", "\r\n") : string.Empty;
                }
                ContextController.UpdateSetupInfo(info);
                View.CoreSpecification = info.CoreSpecification;
            }

            bool enableGetFromDevice = (context.DiscoveryContext != null) && (!string.IsNullOrEmpty(context.DiscoveryContext.ServiceAddress));

            View.EnableGetFromDevice(enableGetFromDevice);
        }
예제 #5
0
 /// <summary>
 /// Restores saved settings
 /// </summary>
 public override void LoadSavedContext(SavedContext context)
 {
     if (context.MediaInfo != null)
     {
         View.MediaAddress = context.MediaInfo.ServiceAddress;
     }
 }
예제 #6
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////
        public override void LoadSavedContext(SavedContext context)
        {
            if (context.DeviceEnvironment != null)
            {
                if (context.DeviceEnvironment.Timeouts != null)
                {
                    View.MessageTimeout   = context.DeviceEnvironment.Timeouts.Message;
                    View.RebootTimeout    = context.DeviceEnvironment.Timeouts.Reboot;
                    View.TimeBetweenTests = context.DeviceEnvironment.Timeouts.InterTests;
                }

                View.DeviceTypes = context.DeviceEnvironment.DeviceTypes;

                View.SelectFeatures(context.DeviceEnvironment.Services, context.DeviceEnvironment.Features);

                if (context.DeviceEnvironment.EnvironmentSettings != null)
                {
                    View.DnsIpv4     = context.DeviceEnvironment.EnvironmentSettings.DnsIpv4;
                    View.DnsIpv6     = context.DeviceEnvironment.EnvironmentSettings.DnsIpv6;
                    View.NtpIpv4     = context.DeviceEnvironment.EnvironmentSettings.NtpIpv4;
                    View.NtpIpv6     = context.DeviceEnvironment.EnvironmentSettings.NtpIpv6;
                    View.GatewayIpv4 = context.DeviceEnvironment.EnvironmentSettings.GatewayIpv4;
                    View.GatewayIpv6 = context.DeviceEnvironment.EnvironmentSettings.GatewayIpv6;
                }
                if (context.DeviceEnvironment.TestSettings != null)
                {
                    View.PTZNodeToken = context.DeviceEnvironment.TestSettings.PTZNodeToken;

                    View.UseEmbeddedPassword = context.DeviceEnvironment.TestSettings.UseEmbeddedPassword;
                    View.Password1           = context.DeviceEnvironment.TestSettings.Password1;
                    View.Password2           = context.DeviceEnvironment.TestSettings.Password2;
                    View.OperationDelay      = context.DeviceEnvironment.TestSettings.OperationDelay;
                }
            }
        }
예제 #7
0
 /// <summary>
 /// Loads saved context.
 /// </summary>
 /// <param name="context">Saved data.</param>
 public override void LoadSavedContext(SavedContext context)
 {
     if (context.RequestsInfo != null)
     {
         View.Service        = context.RequestsInfo.Service;
         View.ServiceAddress = context.RequestsInfo.ServiceAddress;
         _serviceAddresses[context.RequestsInfo.Service] = context.RequestsInfo.ServiceAddress;
     }
 }
예제 #8
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////
        public override void LoadSavedContext(SavedContext context)
        {
            if (context.DeviceEnvironment != null)
            {
                if (context.DeviceEnvironment.Timeouts != null)
                {
                    View.SettingsView.MessageTimeout   = context.DeviceEnvironment.Timeouts.Message;
                    View.SettingsView.RebootTimeout    = context.DeviceEnvironment.Timeouts.Reboot;
                    View.SettingsView.TimeBetweenTests = context.DeviceEnvironment.Timeouts.InterTests;
                }
                if (context.DeviceEnvironment.EnvironmentSettings != null)
                {
                    View.SettingsView.DnsIpv4     = context.DeviceEnvironment.EnvironmentSettings.DnsIpv4;
                    View.SettingsView.DnsIpv6     = context.DeviceEnvironment.EnvironmentSettings.DnsIpv6;
                    View.SettingsView.NtpIpv4     = context.DeviceEnvironment.EnvironmentSettings.NtpIpv4;
                    View.SettingsView.NtpIpv6     = context.DeviceEnvironment.EnvironmentSettings.NtpIpv6;
                    View.SettingsView.GatewayIpv4 = context.DeviceEnvironment.EnvironmentSettings.GatewayIpv4;
                    View.SettingsView.GatewayIpv6 = context.DeviceEnvironment.EnvironmentSettings.GatewayIpv6;
                }
                if (context.DeviceEnvironment.TestSettings != null)
                {
                    View.SettingsView.PTZNodeToken     = context.DeviceEnvironment.TestSettings.PTZNodeToken;
                    View.SettingsView.VideoSourceToken = context.DeviceEnvironment.TestSettings.VideoSourceToken;

                    View.SettingsView.UseEmbeddedPassword = context.DeviceEnvironment.TestSettings.UseEmbeddedPassword;
                    View.SettingsView.Password1           = context.DeviceEnvironment.TestSettings.Password1;
                    View.SettingsView.Password2           = context.DeviceEnvironment.TestSettings.Password2;
                    View.SettingsView.SecureMethod        = context.DeviceEnvironment.TestSettings.SecureMethod;

                    View.SettingsView.OperationDelay = context.DeviceEnvironment.TestSettings.OperationDelay;
                    View.SettingsView.RecoveryDelay  = context.DeviceEnvironment.TestSettings.RecoveryDelay;

                    View.SettingsView.SubscriptionTimeout = context.DeviceEnvironment.TestSettings.SubscriptionTimeout;
                    View.SettingsView.EventTopic          = context.DeviceEnvironment.TestSettings.EventTopic;

                    View.SettingsView.SearchTimeout  = context.DeviceEnvironment.TestSettings.SearchTimeout;
                    View.SettingsView.RecordingToken = context.DeviceEnvironment.TestSettings.RecordingToken;

                    string loadedNs = context.DeviceEnvironment.TestSettings.TopicNamespaces.Replace("\n",
                                                                                                     Environment.NewLine);
                    context.DeviceEnvironment.TestSettings.TopicNamespaces = loadedNs;
                    View.SettingsView.TopicNamespaces = context.DeviceEnvironment.TestSettings.TopicNamespaces;

                    if (context.DeviceEnvironment.TestSettings.RelayOutputDelayTimeMonostable > 0)
                    {
                        View.SettingsView.RelayOutputDelayTimeMonostable =
                            context.DeviceEnvironment.TestSettings.RelayOutputDelayTimeMonostable;
                    }

                    DisplayAdvancedSettings(context.DeviceEnvironment.TestSettings.RawAdvancedSettings);

                    DeviceEnvironment env = ContextController.GetDeviceEnvironment();
                    env.TestSettings.AdvancedSettings =
                        ParseAdvancedSettings(context.DeviceEnvironment.TestSettings.RawAdvancedSettings);
                }
            }
        }
 void RestoreSavedContext()
 {
     styleMatchingContext.RemoveStyleSheetRange(0, styleMatchingContext.styleSheetCount);
     foreach (var sheet in m_SavedContext.styleSheets)
     {
         styleMatchingContext.AddStyleSheet(sheet);
     }
     styleMatchingContext.variableContext = m_SavedContext.variableContext;
     m_SavedContext = SavedContext.none;
 }
예제 #10
0
파일: Context.cs 프로젝트: mingyaaaa/xwt
        /// <summary>
        /// Makes a copy of the current state of the Context and saves it on an internal stack of saved states.
        /// When Restore() is called, it will be restored to the saved state.
        /// Multiple calls to Save() and Restore() can be nested;
        /// each call to Restore() restores the state from the matching paired save().
        /// </summary>
        public void Save()
        {
            handler.Save(Backend);

            stackTop = new SavedContext {
                Alpha    = globalAlpha,
                Styles   = styles,
                Previous = stackTop,
            };
        }
예제 #11
0
        /// <summary>
        /// Loads data saved in context.
        /// </summary>
        /// <param name="context"></param>
        public override void LoadSavedContext(SavedContext context)
        {
            base.LoadSavedContext(context);

            if (context.DebugInfo != null)
            {
                DebugInfo info = ContextController.GetDebugInfo();
                info.CapabilitiesExchange = context.DebugInfo.CapabilitiesExchange;
                info.Security             = context.DebugInfo.Security;
            }

            foreach (IController contoller in _controllers)
            {
                contoller.LoadSavedContext(context);
            }
        }
예제 #12
0
파일: Context.cs 프로젝트: mingyaaaa/xwt
        public void Restore()
        {
            handler.Restore(Backend);
            if (stackTop != null)
            {
                var info = stackTop;
                stackTop = stackTop.Previous;

                globalAlpha = info.Alpha;
                if (styles != info.Styles)
                {
                    styles = info.Styles;
                    handler.SetStyles(Backend, styles);
                }
            }
        }
        /// <summary>
        /// Applies saved application context
        /// </summary>
        /// <param name="context">Saved context</param>
        public override void LoadSavedContext(SavedContext context)
        {
            SetupInfo info = context.SetupInfo;

            if (info != null)
            {
                if (info.DevInfo != null)
                {
                    View.Brand             = info.DevInfo.Manufacturer;
                    View.Model             = info.DevInfo.Model;
                    View.OnvifProductName  = info.DevInfo.ProductName;
                    View.ProductTypesAll   = info.DevInfo.ProductTypesAll;
                    View.ProductTypes      = info.DevInfo.ProductTypes;
                    View.ProductTypesOther = info.DevInfo.ProductTypesOther;
                }
                //CR is lost during serialization
                View.OtherInformation = !string.IsNullOrEmpty(info.OtherInfo) ? info.OtherInfo.Replace("\n", "\r\n") : string.Empty;
                if (info.TesterInfo != null)
                {
                    View.OperatorName        = info.TesterInfo.Operator;
                    View.OrganizationName    = info.TesterInfo.Organization;
                    View.OrganizationAddress = !string.IsNullOrEmpty(info.TesterInfo.Address) ? info.TesterInfo.Address.Replace("\n", "\r\n") : string.Empty;
                }
                if (info.MemberInfo != null)
                {
                    View.MemberName    = info.MemberInfo.Name;
                    View.MemberAddress = info.MemberInfo.Address;
                }

                if (info.SupportInfo != null)
                {
                    View.InternationalAddress = !string.IsNullOrEmpty(info.SupportInfo.InternationalAddress)
                                                                        ? info.SupportInfo.InternationalAddress.Replace("\n", "\r\n")
                                                                        : string.Empty;

                    View.RegionalAddress = !string.IsNullOrEmpty(info.SupportInfo.RegionalAddress)
                                                                        ? info.SupportInfo.RegionalAddress.Replace("\n", "\r\n")
                                                                        : string.Empty;

                    View.SupportUrl   = info.SupportInfo.SupportUrl;
                    View.SupportEmail = info.SupportInfo.SupportEmail;
                    View.SupportPhone = info.SupportInfo.SupportPhone;
                }

                ContextController.UpdateSetupInfo(info);
            }
        }
        void SaveAndClearContext()
        {
            var originalStyleSheets     = new List <StyleSheet>();
            var originalVariableContext = styleMatchingContext.variableContext;

            for (var index = 0; index < styleMatchingContext.styleSheetCount; index++)
            {
                originalStyleSheets.Add(styleMatchingContext.GetStyleSheetAt(index));
            }

            styleMatchingContext.RemoveStyleSheetRange(0, styleMatchingContext.styleSheetCount);
            styleMatchingContext.variableContext = StyleVariableContext.none;

            m_SavedContext = new SavedContext()
            {
                styleSheets = originalStyleSheets, variableContext = originalVariableContext
            };
        }
예제 #15
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Saves context data.
        /// </summary>
        public void SaveContextData()
        {
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Application,
                                                                        new System.Security.Policy.Url("www.onvif.org/OnvifTestTool"));
            IsolatedStorageFileStream isoFile = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore);
            // Create a StreamWriter using the isolated storage file
            StreamWriter  writer     = new StreamWriter(isoFile);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            SavedContext context = new SavedContext();

            _conformanceTestController.UpdateContext();
            context.SetupInfo = ContextController.GetSetupInfo();
            _discoveryController.UpdateContext();
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            if (devices != null)
            {
                context.DiscoveryContext = new SavedDiscoveryContext();
                context.DiscoveryContext.ServiceAddress    = devices.ServiceAddress;
                context.DiscoveryContext.DeviceAddress     = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty;
                context.DiscoveryContext.SearchScopes      = devices.SearchScopes.Replace(System.Environment.NewLine, " ");
                context.DiscoveryContext.ShowSearchOptions = devices.ShowSearchOptions;

                if ((devices.NIC != null) && (devices.NIC.IP != null))
                {
                    context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString();
                }
            }
            _managementController.UpdateContext();
            context.DeviceEnvironment = ContextController.GetDeviceEnvironment();

            _deviceController.UpdateContext();

            context.RequestsInfo = ContextController.GetRequestsInfo();
            context.MediaInfo    = ContextController.GetMediaInfo();
            context.PTZInfo      = ContextController.GetPTZInfo();
            context.DebugInfo    = ContextController.GetDebugInfo();

            serializer.Serialize(writer, context);
            writer.Close();
        }
예제 #16
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////
        public override void LoadSavedContext(SavedContext context)
        {
            if (context.DeviceEnvironment != null)
            {
                if (context.DeviceEnvironment.Timeouts != null)
                {
                    View.MessageTimeout   = context.DeviceEnvironment.Timeouts.Message;
                    View.RebootTimeout    = context.DeviceEnvironment.Timeouts.Reboot;
                    View.TimeBetweenTests = context.DeviceEnvironment.Timeouts.InterTests;
                }
                //if(context.DeviceEnvironment.Credentials != null)
                //{
                //View.UserName = context.DeviceEnvironment.Credentials.UserName;
                //View.Password = context.DeviceEnvironment.Credentials.Password;
                //View.UtcTimestamp = context.DeviceEnvironment.Credentials.UseUTCTimeStamp;
                //}
                if (context.DeviceEnvironment.Features != null)
                {
                    View.Features = context.DeviceEnvironment.Features;
                }
                if (context.DeviceEnvironment.EnvironmentSettings != null)
                {
                    View.DnsIpv4     = context.DeviceEnvironment.EnvironmentSettings.DnsIpv4;
                    View.DnsIpv6     = context.DeviceEnvironment.EnvironmentSettings.DnsIpv6;
                    View.NtpIpv4     = context.DeviceEnvironment.EnvironmentSettings.NtpIpv4;
                    View.NtpIpv6     = context.DeviceEnvironment.EnvironmentSettings.NtpIpv6;
                    View.GatewayIpv4 = context.DeviceEnvironment.EnvironmentSettings.GatewayIpv4;
                    View.GatewayIpv6 = context.DeviceEnvironment.EnvironmentSettings.GatewayIpv6;
                }
                if (context.DeviceEnvironment.TestSettings != null)
                {
                    View.PTZNodeToken = context.DeviceEnvironment.TestSettings.PTZNodeToken;

                    View.UseEmbeddedPassword = context.DeviceEnvironment.TestSettings.UseEmbeddedPassword;
                    View.Password1           = context.DeviceEnvironment.TestSettings.Password1;
                    View.Password2           = context.DeviceEnvironment.TestSettings.Password2;
                    View.OperationDelay      = context.DeviceEnvironment.TestSettings.OperationDelay;
                    View.RecoveryDelay       = context.DeviceEnvironment.TestSettings.RecoveryDelay;
                }
            }
        }
예제 #17
0
        /// <summary>
        /// Loads data saved before application closing.
        /// </summary>
        public void LoadContextData()
        {
            Stream stream = null;
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetMachineStoreForAssembly();

            stream = new IsolatedStorageFileStream(_dataFileName, FileMode.Open, isoStore);
            SavedContext savedContext = null;
            // Create a StreamWriter using the isolated storage file
            StreamReader  reader     = new StreamReader(stream);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            savedContext = serializer.Deserialize(reader) as SavedContext;
            reader.Close();
            if (savedContext != null)
            {
                foreach (IController controller in _controllers)
                {
                    controller.LoadSavedContext(savedContext);
                }
            }
        }
예제 #18
0
        /// <summary>
        /// Loads data saved before application closing.
        /// </summary>
        public void LoadContextData()
        {
            Stream stream = null;
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Application,
                                                                        new System.Security.Policy.Url("www.onvif.org/OnvifTestTool"));

            stream = new IsolatedStorageFileStream(_dataFileName, FileMode.Open, isoStore);
            SavedContext savedContext = null;
            // Create a StreamWriter using the isolated storage file
            StreamReader  reader     = new StreamReader(stream);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            savedContext = serializer.Deserialize(reader) as SavedContext;
            reader.Close();
            if (savedContext != null)
            {
                foreach (IController controller in _controllers)
                {
                    controller.LoadSavedContext(savedContext);
                }
            }
        }
예제 #19
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Saves context data.
        /// </summary>
        public void SaveContextData()
        {
            IsolatedStorageFile       isoStore = IsolatedStorageFile.GetMachineStoreForAssembly();
            IsolatedStorageFileStream isoFile  = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore);
            // Create a StreamWriter using the isolated storage file
            StreamWriter  writer     = new StreamWriter(isoFile);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            SavedContext context = new SavedContext();

            _setupController.UpdateContext();
            context.SetupInfo = ContextController.GetSetupInfo();
            _discoveryController.UpdateContext();
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            if (devices != null)
            {
                context.DiscoveryContext = new SavedDiscoveryContext();
                context.DiscoveryContext.ServiceAddress = devices.ServiceAddress;
                context.DiscoveryContext.DeviceAddress  = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty;
                if ((devices.NIC != null) && (devices.NIC.IP != null))
                {
                    context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString();
                }
            }
            _reportController.UpdateContext();
            context.ReportInfo = ContextController.GetReportInfo();
            _managementController.UpdateContext();
            context.DeviceEnvironment = ContextController.GetDeviceEnvironment();
            _requestsController.UpdateContext();
            context.RequestsInfo = ContextController.GetRequestsInfo();
            _deviceController.MediaController.UpdateContext();
            context.MediaInfo = ContextController.GetMediaInfo();
            _deviceController.PTZController.UpdateContext();
            context.PTZInfo = ContextController.GetPTZInfo();

            serializer.Serialize(writer, context);
            writer.Close();
        }
예제 #20
0
        /// <summary>
        /// Applies saved application context
        /// </summary>
        /// <param name="context">Saved context</param>
        public override void LoadSavedContext(SavedContext context)
        {
            if (context.DiscoveryContext != null)
            {
                IPAddress address;
                if (IPAddress.TryParse(context.DiscoveryContext.DeviceAddress, out address))
                {
                    View.DeviceAddress = address;
                }
                View.ServiceAddress = context.DiscoveryContext.ServiceAddress;
                View.NICAddress     = context.DiscoveryContext.InterfaceAddress;
            }
            if (context.DeviceEnvironment != null)
            {
                if (context.DeviceEnvironment.Credentials != null)
                {
                    View.UserName = context.DeviceEnvironment.Credentials.UserName;
                    View.Password = context.DeviceEnvironment.Credentials.Password;
                }
            }

            UpdateContext();
        }
예제 #21
0
 /// <summary>
 /// Loads context data.
 /// </summary>
 /// <param name="context">Context data.</param>
 public virtual void LoadSavedContext(SavedContext context)
 {
 }
        /// <summary>
        /// Enters a new context. 
        /// The context contains an environment for symbol lookup in attribute expressions. 
        /// </summary>
        public void EnterContext()
        {
            // Save symbol context
            SavedContext c = new SavedContext();
            c.symbolStore = symbolStore;
            c.pointerSymbolStore = pointerSymbolStore;
            outerContexts.Push(c);
            symbolStore = null;
            pointerSymbolStore = null;

            // Save array context
            ArrayContext arrayContext = new ArrayContext();
            arrayContext.arrayLevel = arrayLevel;
            arrayContext.arraySizes = arraySizes;
            arrayContext.arrayLengths = arrayLengths;
            outerArrayContexts.Push(arrayContext);

            arrayLevel = 0;
            arraySizes = null;
            arrayLengths = null;

            // Save sequence context
            SequenceContext sequenceContext = new SequenceContext();
            sequenceContext.sequenceLevel = sequenceLevel;
            sequenceContext.sequenceSizes = sequenceSizes;
            sequenceContext.sequenceLengths = sequenceLengths;
            outerSequenceContexts.Push(sequenceContext);

            sequenceLevel = 0;
            sequenceSizes = null;
            sequenceLengths = null;
        }