/// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            System.Diagnostics.Debug.WriteLineIf(!disposing, "****** Missing Dispose() call for " + GetType().Name + ". ****** ");
            // Must not be run more than once.
            if (IsDisposed)
            {
                return;
            }

            if (disposing)
            {
                if (m_helpProvider != null)
                {
                    m_helpProvider.Dispose();
                }
            }
            m_cache       = null;
            m_ctxt        = null;
            m_mediator    = null;
            m_bvList      = null;
            m_valuesCombo = null;
            m_sda         = null;

            base.Dispose(disposing);
        }
 /// <summary>
 /// Load the tree items if the starting point is a simple context.
 /// </summary>
 /// <param name="fs"></param>
 private void LoadPhonFeats(IEnumerable <IFsFeatDefn> features)
 {
     m_sda = new FeatureConstraintPublisher(m_cache.DomainDataByFlid as ISilDataAccessManaged);
     foreach (var feat in features)
     {
         string str = null;
         if (ContainsFeature(m_ctxt.PlusConstrRS, feat))
         {
             str = MEStrings.ksFeatConstrAgree;
         }
         else if (ContainsFeature(m_ctxt.MinusConstrRS, feat))
         {
             str = MEStrings.ksFeatConstrDisagree;
         }
         else
         {
             str = "";
         }
         m_sda.SetUnicode(feat.Hvo, FeatureConstraintPublisher.PolarityFlid, str, str.Length);
     }
 }