Exemplo n.º 1
0
        /// <summary>
        /// Handles service/feature selection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvFeatures_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode    node        = e.Node;
            FeatureNode featureNode = (FeatureNode)node.Tag;

            System.Diagnostics.Debug.WriteLine(
                string.Format("tvFeatures_AfterCheck [processing] {0}", node.Text));

            // update list of selected features
            if (node.Checked)
            {
                if (!_features.Contains(featureNode.Feature))
                {
                    _features.Add(featureNode.Feature);
                }
            }
            else
            {
                _features.RemoveAll(v => (v == featureNode.Feature));
            }

            if (e.Action != TreeViewAction.ByMouse && e.Action != TreeViewAction.ByKeyboard)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("{0} checked automatically - skip part of processing", featureNode.DisplayName));
                return;
            }

            System.Diagnostics.Debug.WriteLine(string.Format(" --- check feature {0}", featureNode.DisplayName));
            featureNode.Checked = node.Checked;

            FeaturesSet.UpdateChildFeatures(featureNode);
            SetupChildFeatures(featureNode);

            // for PTZ Configurable Home / Fixed Home:
            // only one feature can be implemented
            if (featureNode.Feature == Feature.PTZConfigurableHome && node.Checked)
            {
                _featureNodes[Feature.PTZFixedHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZFixedHome && node.Checked)
            {
                _featureNodes[Feature.PTZConfigurableHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZHome && featureNode.Checked)
            {
                if (!(_featureNodes[Feature.PTZConfigurableHome].Checked || _featureNodes[Feature.PTZFixedHome].Checked))
                {
                    _featureNodes[Feature.PTZConfigurableHome].Checked = true;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handles service/feature selection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvFeatures_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode    node        = e.Node;
            FeatureNode featureNode = (FeatureNode)node.Tag;

            System.Diagnostics.Debug.WriteLine(
                string.Format("tvFeatures_AfterCheck [processing] {0}", node.Text));

            // update list of selected features
            if (node.Checked)
            {
                switch (featureNode.Feature)
                {
                case Feature.ManagementService:
                    if (!_services.Contains(Service.Device))
                    {
                        _services.Add(Service.Device);
                    }
                    break;

                case Feature.MediaService:
                    if (!_services.Contains(Service.Media))
                    {
                        _services.Add(Service.Media);
                    }
                    break;

                case Feature.EventsService:
                    if (!_services.Contains(Service.Events))
                    {
                        _services.Add(Service.Events);
                    }
                    break;

                case Feature.PTZ:
                    if (!_services.Contains(Service.PTZ))
                    {
                        _services.Add(Service.PTZ);
                    }
                    if (!_features.Contains(featureNode.Feature))
                    {
                        _features.Add(featureNode.Feature);
                    }
                    break;

                default:
                    if (!_features.Contains(featureNode.Feature))
                    {
                        _features.Add(featureNode.Feature);
                    }
                    break;
                }
            }
            else
            {
                switch (featureNode.Feature)
                {
                case Feature.ManagementService:
                    _services.RemoveAll(v => (v == Service.Device));
                    _features.RemoveAll(v => (v == Feature.ManagementService));
                    break;

                case Feature.MediaService:
                    _services.RemoveAll(v => (v == Service.Media));
                    _features.RemoveAll(v => (v == Feature.MediaService));
                    break;

                case Feature.EventsService:
                    _services.RemoveAll(v => (v == Service.Events));
                    _features.RemoveAll(v => (v == Feature.EventsService));
                    break;

                case Feature.PTZ:
                    _services.RemoveAll(v => (v == Service.PTZ));
                    _features.RemoveAll(v => (v == Feature.PTZ));
                    break;

                default:
                    _features.RemoveAll(v => (v == featureNode.Feature));
                    break;
                }
            }

            if (e.Action != TreeViewAction.ByMouse && e.Action != TreeViewAction.ByKeyboard)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("{0} checked automatically - skip part of processing", featureNode.DisplayName));
                return;
            }

            System.Diagnostics.Debug.WriteLine(string.Format(" --- check feature {0}", featureNode.DisplayName));
            featureNode.Check(node.Checked, true);

            // enable/disable PTZ depending on Media
            if (featureNode.Feature == Feature.MediaService)
            {
                _featuresSet.EnablePTZ();

                TreeNode    ptzNode        = _featureNodes[Feature.PTZ];
                FeatureNode ptzFeatureNode = ptzNode.Tag as FeatureNode;

                TransmitProperties(ptzFeatureNode, ptzNode);
                SetupChildFeatures(ptzFeatureNode);
            }

            FeaturesSet.UpdateChildFeatures(featureNode);
            SetupChildFeatures(featureNode);

            // for PTZ Configurable Home / Fixed Home:
            // only one feature can be implemented
            if (featureNode.Feature == Feature.PTZConfigurableHome && node.Checked)
            {
                _featureNodes[Feature.PTZFixedHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZFixedHome && node.Checked)
            {
                _featureNodes[Feature.PTZConfigurableHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZHome && featureNode.Checked)
            {
                if (!(_featureNodes[Feature.PTZConfigurableHome].Checked || _featureNodes[Feature.PTZFixedHome].Checked))
                {
                    _featureNodes[Feature.PTZConfigurableHome].Checked = true;
                }
            }
        }