Inheritance: SIL.FieldWorks.Common.Framework.DetailControls.ButtonLauncher
        /// <summary>
        /// Somehow a slice (I think one that has never scrolled to become visible?)
        /// can get an OnLoad message for its view in the course of deleting it from the
        /// parent controls collection. This can be bad (at best it's a waste of time
        /// to do the Layout in the OnLoad, but it can be actively harmful if the object
        /// the view is displaying has been deleted). So suppress it.
        /// </summary>
        public override void AboutToDiscard()
        {
            CheckDisposed();
            base.AboutToDiscard();
            MSADlgLauncher ctrl = (MSADlgLauncher)Control;

            (ctrl.MainControl as SimpleRootSite).AboutToDiscard();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="parent"></param>
        public override void Install(DataTree parent)
        {
            CheckDisposed();

            base.Install(parent);

            MSADlgLauncher ctrl = (MSADlgLauncher)Control;

            this.Size = new System.Drawing.Size(208, 32);
            ctrl.Initialize((FdoCache)Mediator.PropertyTable.GetValue("cache"),
                            Object,
                            1,     // Maybe need a real flid?
                            "InterlinearName",
                            ContainingDataTree.PersistenceProvder,
                            Mediator,
                            "InterlinearName",
                            XmlUtils.GetOptionalAttributeValue(m_configurationNode, "ws", "analysis"));     // TODO: Get better default 'best ws'.
            MSADlglauncherView view = ctrl.MainControl as MSADlglauncherView;

            view.StyleSheet = FontHeightAdjuster.StyleSheetFromMediator(Mediator);
        }
		/// <summary>
		/// This method, called once we have a cache and object, is our first chance to
		/// actually create the embedded control.
		/// </summary>
		public override void FinishInit()
		{
			CheckDisposed();
			Control = new MSADlgLauncher();
		}
 /// <summary>
 /// This method, called once we have a cache and object, is our first chance to
 /// actually create the embedded control.
 /// </summary>
 public override void FinishInit()
 {
     CheckDisposed();
     Control = new MSADlgLauncher();
 }