예제 #1
0
        private XmlDocView CreateDocView(XmlNode parentConfigNode)
        {
            Debug.Assert(parentConfigNode != null,
                         "Can't create a view without the XML control configuration.");
            XmlDocView docView;

            try
            {
                docView = (XmlDocView)DynamicLoader.CreateObjectUsingLoaderNode(parentConfigNode);
            }
            catch (Exception e)
            {
                return(null);
            }
            // TODO: Not right yet!
            docView.Init(m_mediator, parentConfigNode.SelectSingleNode("parameters"));
            return(docView);
        }
예제 #2
0
        /// <summary></summary>
        public void Init(Mediator mediator, XmlNode configurationParameters)
        {
            CheckDisposed();

            SuspendLayout();

            m_mediator = mediator;
            m_configurationParameters = configurationParameters;

            // Make the IPaneBar.
            IPaneBar paneBar = CreatePaneBar();
            // initialize the panebar
            string groupId = XmlUtils.GetOptionalAttributeValue(m_configurationParameters, "PaneBarGroupId", null);

            if (groupId != null)
            {
                XWindow window = (XWindow)m_mediator.PropertyTable.GetValue("window");
                SIL.Utils.ImageCollection small = (SIL.Utils.ImageCollection)m_mediator.PropertyTable.GetValue("smallImages");
                paneBar.Init(small, (IUIMenuAdapter)window.MenuAdapter, m_mediator);
            }
            ReloadPaneBar(paneBar);
            m_paneBar = paneBar;
            Controls.Add(paneBar as Control);

            // Make the main control.
            XmlNode mainControlNode = m_configurationParameters.SelectSingleNode("control");
            Control mainControl     = DynamicLoader.CreateObjectUsingLoaderNode(mainControlNode) as Control;

            if (mainControl == null)
            {
                throw new ApplicationException("Soemthing went wrong trying to create the main control.");
            }

            if (!(mainControl is IxCoreContentControl))
            {
                throw new ApplicationException("A PaneBarContainer can only handle controls which implement IxCoreContentControl.");
            }

            mainControl.SuspendLayout();
            m_mainControl    = mainControl;
            mainControl.Dock = DockStyle.Fill;
            if (mainControl is IPaneBarUser)
            {
                (mainControl as IPaneBarUser).MainPaneBar = paneBar;
            }

            /*
             * if (mainControl is MultiPane)
             * {
             *      MultiPane mp = mainControl as MultiPane;
             *      mp.DefaultPrintPaneId = DefaultPrintPaneId;
             *      mp.ParentSizeHint = ParentSizeHint;
             * }*/
            (mainControl as IxCoreColleague).Init(m_mediator, mainControlNode.SelectSingleNode("parameters"));
            Controls.Add(mainControl);
            if (mainControl is MultiPane)
            {
                MultiPane mp = mainControl as MultiPane;
                mp.DefaultPrintPaneId = DefaultPrintPaneId;
                mp.ParentSizeHint     = ParentSizeHint;
                if (mp.FirstControl is IPaneBarUser)
                {
                    (mp.FirstControl as IPaneBarUser).MainPaneBar = paneBar;
                }
            }
            mainControl.BringToFront();
            mainControl.ResumeLayout(false);
            ResumeLayout(false);
        }