/// ------------------------------------------------------------------------------------ /// <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) { Application.RemoveMessageFilter(this); if (m_list != null) m_list.Clear(); if (m_tsStrComparer != null) m_tsStrComparer.Dispose(); if (m_dataGridView != null && !m_dataGridView.Disposing) m_dataGridView.Dispose(); } m_tsStrComparer = null; m_dataGridView = null; m_list = null; base.Dispose(disposing); }
/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// ------------------------------------------------------------------------------------ public CheckRenderingControl(FdoCache cache, FwMainWnd mainWnd) { DoubleBuffered = true; m_cache = cache; m_mainWnd = mainWnd; if (m_mainWnd != null) m_mainWnd.ZoomPercentageChanged += HandleZoomPercentageChanged; // Setup a new TsString sort comparer. if (m_cache == null) m_tsStrComparer = new TsStringComparer(); else { m_cache.MainCacheAccessor.AddNotification(this); string icuLocale = m_cache.LanguageWritingSystemFactoryAccessor.GetStrFromWs(m_cache.DefaultVernWs); m_tsStrComparer = new TsStringComparer(icuLocale); } }
/// ------------------------------------------------------------------------------------ /// <summary> /// Sorts the lists. /// </summary> /// ------------------------------------------------------------------------------------ public void InitSortComparer(string locale) { if (m_icuComparer != null && m_icuComparer.IcuLocale != locale) { m_icuComparer.Dispose(); m_icuComparer = null; } if (m_icuComparer == null && !string.IsNullOrEmpty(locale)) m_icuComparer = new TsStringComparer(locale); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Performs application-defined tasks associated with freeing, releasing, or /// resetting unmanaged resources. /// </summary> /// ------------------------------------------------------------------------------------ public void Dispose() { if (m_icuComparer != null) { m_icuComparer.Dispose(); m_icuComparer = null; } }
public void FixtureSetup() { m_comparer = new TsStringComparer("en"); m_tssFact = TsStrFactoryClass.Create(); }
public void CompareTwoStringsWithoutIcu() { using (TsStringComparer comparer = new TsStringComparer()) { ITsString tss1 = m_tssFact.MakeString("bla", 1); ITsString tss2 = m_tssFact.MakeString("zzz", 1); Assert.AreEqual(-1, comparer.Compare(tss1, tss2)); Assert.AreEqual(1, comparer.Compare(tss2, tss1)); } }
/// ------------------------------------------------------------------------------------ /// <summary> /// Compares character inventory rows on the character field. /// </summary> /// <param name="x">The x.</param> /// <param name="y">The y.</param> /// <returns></returns> /// ------------------------------------------------------------------------------------ private int InventoryCharComparer(CharacterInventoryRow x, CharacterInventoryRow y) { if (x == null && y == null) return 0; if (x == null) return -1; if (y == null) return 1; if (m_inventoryCharComparer == null) m_inventoryCharComparer = new TsStringComparer(m_langDef.IcuLocaleOriginal); return (s_inventorySortOrder == SortOrder.Ascending ? m_inventoryCharComparer.Compare(x.Character, y.Character) : m_inventoryCharComparer.Compare(y.Character, x.Character)); }