private DockPanel GetDockPanel(DockPanelContainer dockPanelContainer)//递归 获取DockPanel
 {
     if (dockPanelContainer == null)
     {
         return(null);
     }
     //
     if (dockPanelContainer.Panel1.Controls.Count > 0)
     {
         DockPanel dockPanel = dockPanelContainer.Panel1.Controls[0] as DockPanel;
         if (dockPanel != null)
         {
             return(dockPanel);
         }
         else
         {
             return(this.GetDockPanel(dockPanelContainer.Panel1.Controls[0] as DockPanelContainer));
         }
     }
     if (dockPanelContainer.Panel2.Controls.Count > 0)
     {
         DockPanel dockPanel = dockPanelContainer.Panel2.Controls[0] as DockPanel;
         if (dockPanel != null)
         {
             return(dockPanel);
         }
         else
         {
             return(this.GetDockPanel(dockPanelContainer.Panel2.Controls[0] as DockPanelContainer));
         }
     }
     //
     return(null);
 }
 private void GetDockPanels(DockPanelContainer dockPanelContainer, List <DockPanel> dockPanelCol)//递归 获取DockPanels
 {
     if (dockPanelContainer == null)
     {
         return;
     }
     //
     if (dockPanelContainer.Panel1.Controls.Count > 0)
     {
         DockPanel dockPanel = dockPanelContainer.Panel1.Controls[0] as DockPanel;
         if (dockPanel != null)
         {
             dockPanelCol.Add(dockPanel);
         }
         else
         {
             this.GetDockPanels(dockPanelContainer.Panel1.Controls[0] as DockPanelContainer, dockPanelCol);
         }
     }
     if (dockPanelContainer.Panel2.Controls.Count > 0)
     {
         DockPanel dockPanel = dockPanelContainer.Panel2.Controls[0] as DockPanel;
         if (dockPanel != null)
         {
             dockPanelCol.Add(dockPanel);
         }
         else
         {
             this.GetDockPanels(dockPanelContainer.Panel2.Controls[0] as DockPanelContainer, dockPanelCol);
         }
     }
 }
        private void SetPanelNodeState(IDockPanel pDockPanel, PanelNodeState panelNodeState)//设置其所辖的面板节点状态并激发相应事件(将在两个Show(...)和OnFormClosing(...)函数中被调用)
        {
            if (pDockPanel == null)
            {
                return;
            }
            //
            switch (panelNodeState)
            {
            case PanelNodeState.eShow:
                switch (pDockPanel.eDockPanelStyle)
                {
                case DockPanelStyle.eDockPanel:
                    DockPanel dockPanel = pDockPanel as DockPanel;
                    if (dockPanel != null)
                    {
                        ((ISetPanelNodeStateHelper)dockPanel).SetPanelNodeState(PanelNodeState.eShow);
                    }
                    break;

                case DockPanelStyle.eDockPanelContainer:
                    DockPanelContainer dockPanelContainer = pDockPanel as DockPanelContainer;
                    if (dockPanelContainer != null)
                    {
                        ((ISetPanelNodeStateHelper)dockPanelContainer).SetPanelNodeState(PanelNodeState.eShow);
                    }
                    break;

                default:
                    break;
                }
                break;

            case PanelNodeState.eClose:
                switch (pDockPanel.eDockPanelStyle)
                {
                case DockPanelStyle.eDockPanel:
                    DockPanel dockPanel = pDockPanel as DockPanel;
                    if (dockPanel != null)
                    {
                        ((ISetPanelNodeStateHelper)dockPanel).SetPanelNodeState(PanelNodeState.eClose);
                    }
                    break;

                case DockPanelStyle.eDockPanelContainer:
                    DockPanelContainer dockPanelContainer = pDockPanel as DockPanelContainer;
                    if (dockPanelContainer != null)
                    {
                        ((ISetPanelNodeStateHelper)dockPanelContainer).SetPanelNodeState(PanelNodeState.eClose);
                    }
                    break;

                default:
                    break;
                }
                break;
            }
        }
Beispiel #4
0
 internal RoleComponent(Role role)
 {
     LastChildFill = false;
     Role          = role;
     // TODO: not optimized yet
     UsersWithRole = Inventory.UsersInCurrentServer.Where(u => u.ServerUsers.Any(su => su.RoleId == role.RoleId)).ToList();
     Container     = new DockPanelContainer(Role, UsersWithRole);
     SetDock(Container, Dock.Top);
     Children.Add(Container);
 }
 public override void Initialize(IComponent component)
 {
     base.Initialize(component);
     //
     this.m_DockPanelContainer = base.Component as DockPanelContainer;
     if (this.m_DockPanelContainer == null)
     {
         this.DisplayError(new ArgumentException("DockPanelContainer == null"));
         return;
     }
 }