示例#1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Executes in two distinct scenarios.
        /// 1. If disposing is true, the method has been called directly
        /// or indirectly by a user's code via the Dispose method.
        /// Both managed and unmanaged resources can be disposed.
        /// 2. If disposing is false, the method has been called by the
        /// runtime from inside the finalizer and you should not reference (access)
        /// other managed objects, as they already have been garbage collected.
        /// Only unmanaged resources can be disposed.
        /// </summary>
        /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        /// <remarks>
        /// If any exceptions are thrown, that is fine.
        /// If the method is being done in a finalizer, it will be ignored.
        /// If it is thrown by client code calling Dispose,
        /// it needs to be handled by fixing the bug.
        /// If subclasses override this method, they should call the base implementation.
        /// </remarks>
        /// ------------------------------------------------------------------------------------
        protected override void Dispose(bool disposing)
        {
            System.Diagnostics.Debug.WriteLineIf(!disposing, "****** Missing Dispose() call for " + GetType().Name + ". ****** ");

            if (disposing)
            {
                // NOTE: don't dispose m_gridControl, m_draftView and m_treeContainer here.
                // They all got added to a Controls collection and will be disposed when the
                // base class disposes below.

                // This should only be null when running tests.
                if (m_mainWnd != null && m_mainWnd.Mediator != null)
                {
                    m_mainWnd.Mediator.RemoveColleague(this);
                }

                if (m_dockExtender != null)
                {
                    m_dockExtender.Dispose();
                }
            }

            m_dockExtender  = null;
            m_draftView     = null;
            m_treeContainer = null;
            m_gridControl   = null;

            base.Dispose(disposing);
        }
示例#2
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        protected virtual void Initialize()
        {
            if (m_fShownBefore)
            {
                return;
            }

            // Create a FwSplitContainer with two draft views.
            Control draftView = ControlCreator.Create(this, m_rightView.Tag);

            draftView.Dock = DockStyle.Fill;
            m_draftView    = draftView as IRootSite;
            if (draftView is ISelectableView)
            {
                ((ISelectableView)draftView).BaseInfoBarCaption = m_baseInfoBarCaption;
            }

            // Create a draft view of Scripture in the project.
            m_rightView.Panel2.Controls.Add(draftView);

            // Create a view for the list of renderings for the selected key term
            m_gridControl      = CreateGridControl(m_mainWnd);
            m_gridControl.Dock = DockStyle.Fill;

            if (m_gridControl is ISelectableView)
            {
                ((ISelectableView)m_gridControl).BaseInfoBarCaption = m_baseInfoBarCaption;
            }

            if (m_gridControl is IChecksViewWrapperView)
            {
                ((IChecksViewWrapperView)m_gridControl).Persistence = m_persistence;
            }

            m_rightView.Panel1.Controls.Add(m_gridControl);

            // Create a key terms control (containing the tool strip and tree).
            // Subscribe to events so that the enabled status of the tool strip buttons can be updated.
            m_treeContainer      = CreateCheckControl();
            m_treeContainer.Dock = DockStyle.Left;

            if (m_treeContainer is IChecksViewWrapperView)
            {
                ((IChecksViewWrapperView)m_treeContainer).Persistence = m_persistence;
            }

            Controls.Add(m_treeContainer);

            m_dockExtender           = new DockExtender(this);
            m_floaty                 = m_dockExtender.Attach(m_treeContainer, m_treeContainer.ToolStrip, true, m_persistence);
            m_floaty.DockOnInside    = false;          // outside
            m_floaty.HideHandle      = false;
            m_floaty.AllowedDocking  = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
            m_floaty.ShowCloseButton = false;
            m_treeContainer.Floaty   = m_floaty;
            m_fShownBefore           = true;
        }
示例#3
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initializes this instance.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		protected virtual void Initialize()
		{
			if (m_fShownBefore)
				return;

			// Create a FwSplitContainer with two draft views.
			Control draftView = ControlCreator.Create(this, m_rightView.Tag);
			draftView.Dock = DockStyle.Fill;
			m_draftView = draftView as IRootSite;
			if (draftView is ISelectableView)
				((ISelectableView)draftView).BaseInfoBarCaption = m_baseInfoBarCaption;

			// Create a draft view of Scripture in the project.
			m_rightView.Panel2.Controls.Add(draftView);

			// Create a view for the list of renderings for the selected key term
			m_gridControl = CreateGridControl(m_mainWnd);
			m_gridControl.Dock = DockStyle.Fill;

			if (m_gridControl is ISelectableView)
				((ISelectableView)m_gridControl).BaseInfoBarCaption = m_baseInfoBarCaption;

			if (m_gridControl is IChecksViewWrapperView)
				((IChecksViewWrapperView)m_gridControl).Persistence = m_persistence;

			m_rightView.Panel1.Controls.Add(m_gridControl);

			// Create a key terms control (containing the tool strip and tree).
			// Subscribe to events so that the enabled status of the tool strip buttons can be updated.
			m_treeContainer = CreateCheckControl();
			m_treeContainer.Dock = DockStyle.Left;

			if (m_treeContainer is IChecksViewWrapperView)
				((IChecksViewWrapperView)m_treeContainer).Persistence = m_persistence;

			Controls.Add(m_treeContainer);

			m_dockExtender = new DockExtender(this);
			m_floaty = m_dockExtender.Attach(m_treeContainer, m_treeContainer.ToolStrip, true, m_persistence);
			m_floaty.DockOnInside = false; // outside
			m_floaty.HideHandle = false;
			m_floaty.AllowedDocking = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
			m_floaty.ShowCloseButton = false;
			m_treeContainer.Floaty = m_floaty;
			m_fShownBefore = true;
		}
示例#4
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Executes in two distinct scenarios.
		/// 1. If disposing is true, the method has been called directly
		/// or indirectly by a user's code via the Dispose method.
		/// Both managed and unmanaged resources can be disposed.
		/// 2. If disposing is false, the method has been called by the
		/// runtime from inside the finalizer and you should not reference (access)
		/// other managed objects, as they already have been garbage collected.
		/// Only unmanaged resources can be disposed.
		/// </summary>
		/// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
		/// <remarks>
		/// If any exceptions are thrown, that is fine.
		/// If the method is being done in a finalizer, it will be ignored.
		/// If it is thrown by client code calling Dispose,
		/// it needs to be handled by fixing the bug.
		/// If subclasses override this method, they should call the base implementation.
		/// </remarks>
		/// ------------------------------------------------------------------------------------
		protected override void Dispose(bool disposing)
		{
			//Debug.WriteLineIf(!disposing, "****************** " + GetType().Name + " 'disposing' is false. ******************");

			if (disposing)
			{
				// NOTE: don't dispose m_gridControl, m_draftView and m_treeContainer here.
				// They all got added to a Controls collection and will be disposed when the
				// base class disposes below.

				// This should only be null when running tests.
				if (m_mainWnd != null && m_mainWnd.Mediator != null)
					m_mainWnd.Mediator.RemoveColleague(this);
			}

			m_draftView = null;
			m_treeContainer = null;
			m_gridControl = null;

			base.Dispose(disposing);
		}