public override void MakeRoot()
		{
			CheckDisposed();
			base.MakeRoot();

			if (m_fdoCache == null || DesignMode)
				return;

			m_PhoneEnvReferenceVc = new PhoneEnvReferenceVc(m_fdoCache);
			m_sda = new PhoneEnvReferenceSda(m_fdoCache.DomainDataByFlid as ISilDataAccessManaged);

			// Populate m_vwCache with data.
			ResynchListToDatabase();

			m_rootb = VwRootBoxClass.Create();
			m_rootb.SetSite(this);
			m_rootb.DataAccess = m_sda;
			m_rootb.SetRootObject(m_rootObj.Hvo, m_PhoneEnvReferenceVc, kFragEnvironments,
				null);
			m_heightView = m_rootb.Height;
		}
		// for testing only.
		internal void SetSda(PhoneEnvReferenceSda sda)
		{
			m_sda = sda;
		}
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		protected override void Dispose(bool disposing)
		{
			//Debug.WriteLineIf(!disposing, "****************** " + GetType().Name + " 'disposing' is false. ******************");
			// Must not be run more than once.
			if (IsDisposed)
				return;

			base.Dispose(disposing);

			if (disposing)
			{
				if (components != null)
				{
					components.Dispose();
				}
			}
			m_validator = null; // TODO: Make m_validator disposable?
			if (m_realEnvs != null)
			{
				m_realEnvs.Clear();
				m_realEnvs = null;
			}
			m_rootObj = null;
			m_tsf = null;
			m_sda = null;
			m_PhoneEnvReferenceVc = null;
		}