internal bool InternalOpen(IUIPanel parentPanel, IPanelGroup group, IUIHandleInternal handle, string panelName, int index)
        {
            var Content = parentPanel == null ? null : parentPanel.Content;

            UIInfoBase uiInfo;

            group.Nodes.TryGetValue(panelName, out uiInfo);

            if (uiInfo == null)
            {
                return(false);
            }

            Bridge bridge;


            if (group.TryOpenOldPanel(panelName, uiInfo, parentPanel, out bridge))
            {
                handle.RegistCreate(OnCreate);
                handle.RegistClose(OnClose);
                handle.RegistBridge(bridge);
                return(true);
            }
            else
            {
                if (group.CreateInfoAndBridge(panelName, parentPanel, index, uiInfo, out bridge))
                {
                    handle.RegistCreate(OnCreate);
                    handle.RegistClose(OnClose);
                    handle.RegistBridge(bridge);

                    group.CreatePanel(uiInfo, bridge, parentPanel);
                    return(true);
                }
            }

            return(false);
        }