Esempio n. 1
0
        public void ExcludeFromGroup(DisplayNode node)
        {
            if (node.Parent != null)
            {
                DisplayGroupNode groupNode = node.Parent as DisplayGroupNode;
                if (groupNode != null)
                {
                    groupNode.DisplayGroup.DisplayNameList.Remove(node.Display.Type.Name);
                    PresentationController.Instance.CurrentSlideLayout.RemoveFromLayout(node.Display);
                    foreach (Slide slide in PresentationController.Instance.GetAllSlides()
                        .Where(sld=> !sld.Name.Equals(PresentationController.Instance.CurrentSlideLayout.Slide.Name)))
                    {
                        IEnumerable<Display> displs = slide.DisplayList.Where(dsp => groupNode.DisplayGroup.DisplayNameList.Contains(dsp.Type.Name));
                        SlideLayout sltemp = new SlideLayout(displs, slide);
                        sltemp.RemoveFromLayout(node.Display);
                    }
                    PresentationController.Instance.PresentationChanged = true;
                    if (groupNode.DisplayGroup.DisplayNameList.Count == 0)
                    {
                        groupNode.DisplayGroup.Width = 0;
                        groupNode.DisplayGroup.Height = 0;
                        groupNode.DisplayGroup.Type = String.Empty;

                        groupNode.OpenImgIndex = 1;
                        groupNode.NoChildrenImgIndex = 0;
                    }

                    node.Display.DisplayGroup = null;
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Проверяет можно ли добавить дисплей на область мониторинга (разрешить grag-n-drop)
 /// </summary>
 /// <param name="node">Перетаскиваемая нода</param>
 /// <returns>true, если можно</returns>
 public bool canAddViewer(DisplayNode node)
 {
     return !m_Viewers.ContainsKey(node.Display.Type.Name);
 }
Esempio n. 3
0
        private void LoadDisplays(bool rememberLastDisplay)
        {
            displayTree.Nodes.Clear();
            DisplayNode d1 = null;
            DisplayGroupNode d2 = null;

            TreeNodeAdv tNode = displayTree.SelectedNode;
            // Выбираем дисплеи в том порядке, в котором их отсортировал пользователь
            var query = from d in DisplayController.Instance.UngrouppedDisplays()
                        join ord in PresentationController.Instance.Presentation.DisplayPositionList
                        on d.Name equals ord.Key
                        into d_ord
                        from sub in d_ord.DefaultIfEmpty()
                        orderby (sub.Key == null ? -1 : sub.Value)
                        select d;

            foreach (Display disp in query/*DisplayController.Instance.UngrouppedDisplays()*/)
            {
                DisplayNode node = new DisplayNode(disp);
                //if (DisplayController.IsPlayerMode)
                bool? state = DisplayController.Instance.DisplayStates[disp];
                node.TextColor = state.HasValue ? (state.Value ? Color.Green : Color.Red) : Color.Black;
                //node.TextColor = DisplayController.Instance.DisplayStates[disp] ? Color.Black : Color.Red;
                if (d1 == null)
                {
                    d1 = node;
                    displayTree.Nodes.Add(d1);
                }
                else
                    displayTree.Nodes.Add(node);
            }

            foreach (var dd in DisplayController.Instance.GrouppedDisplays())
            {
                DisplayGroupNode groupNode = new DisplayGroupNode(dd.Key);

                if (d2 == null)
                    d2 = groupNode;

                foreach (Display display in dd.Value)
                {
                    DisplayNode node = new DisplayNode(display);
                    //if (DisplayController.IsPlayerMode)
                    bool? state = DisplayController.Instance.DisplayStates[display];
                    node.TextColor = state.HasValue ? (state.Value ? Color.Green : Color.Red) : Color.Black;

                        //node.TextColor = DisplayController.Instance.DisplayStates[display] ? Color.Black : Color.Red;
                    groupNode.Nodes.Add(node);
                }

                displayTree.Nodes.Add(groupNode);
            }

            if (d1 != null && !rememberLastDisplay)
            {
                DisplayController.Instance.SelectDisplay(d1.Display);
                this.displayTree.SelectedNode = d1;
                return;
            }

            if (d2 != null && !rememberLastDisplay)
            {
                DisplayController.Instance.SelectDisplayGroup(d2.DisplayGroup);
                this.displayTree.SelectedNode = d2;
            }

            if (rememberLastDisplay && tNode != null)
            {
                if (displayTree.Nodes.Contains(tNode))
                    displayTree.SelectedNode = tNode;
            }

            this.displayTree.SelectedNodeForeColor = this.displayTree.SelectedNode.TextColor;
            this.displayTree.InactiveSelectedNodeForeColor = this.displayTree.SelectedNode.TextColor;
        }