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); }
/// <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); }