/// ------------------------------------------------------------------------------------
		/// <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);
			}
		}
Example #3
0
		/// ------------------------------------------------------------------------------------
		/// <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);
		}
Example #4
0
		/// ------------------------------------------------------------------------------------
		/// <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));
			}
		}
Example #7
0
		/// ------------------------------------------------------------------------------------
		/// <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));
		}