/// ------------------------------------------------------------------------------------
        /// <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() + ". ****** ");

            if (disposing)
            {
                Application.RemoveMessageFilter(this);

                if (m_list != null)
                {
                    m_list.Clear();
                }

                if (m_dataGridView != null && !m_dataGridView.Disposing)
                {
                    m_dataGridView.Dispose();
                }

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

            m_tsStrComparer = null;
            m_dataGridView  = null;
            m_list          = null;
            m_zoomFactor    = null;

            base.Dispose(disposing);
        }
        /// ------------------------------------------------------------------------------------
        /// <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);
        }
示例#3
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;
     }
 }
示例#4
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Sorts the lists.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public void InitSortComparer(IWritingSystem ws)
        {
            if (m_comparer != null && m_comparer.WritingSystem != ws)
            {
                m_comparer = null;
            }

            if (m_comparer == null && ws != null)
            {
                m_comparer = new TsStringComparer(ws);
            }
        }
示例#5
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Sorts the lists.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        private void InitSortComparer(CoreWritingSystemDefinition ws)
        {
            if (m_comparer != null && m_comparer.WritingSystem != ws)
            {
                m_comparer = null;
            }

            if (m_comparer == null && ws != null)
            {
                m_comparer = new TsStringComparer(ws);
            }
        }
示例#6
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);
            }
        }
		/// ------------------------------------------------------------------------------------
		/// <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);
				IWritingSystem ws = m_cache.ServiceLocator.WritingSystems.DefaultVernacularWritingSystem;
				m_tsStrComparer = new TsStringComparer(ws);
			}
		}
        /// ------------------------------------------------------------------------------------
        /// <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);
                IWritingSystem ws = m_cache.ServiceLocator.WritingSystems.DefaultVernacularWritingSystem;
                m_tsStrComparer = new TsStringComparer(ws);
            }
        }
        /// ------------------------------------------------------------------------------------
        /// <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);
            }
        }
示例#10
0
		public void FixtureSetup()
		{
			m_wsManager = new PalasoWritingSystemManager();
			m_comparer = new TsStringComparer(m_wsManager.Create("en"));
			m_tssFact = TsStrFactoryClass.Create();
		}
示例#11
0
		public void CompareTwoStringsWithoutIcu()
		{
			var comparer = new TsStringComparer();
			ITsString tss1 = m_tssFact.MakeString("bla", 1);
			ITsString tss2 = m_tssFact.MakeString("zzz", 1);
			Assert.That(comparer.Compare(tss1, tss2), Is.LessThan(0));
			Assert.That(comparer.Compare(tss2, tss1), Is.GreaterThan(0));
		}
示例#12
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() + ". ****** ");

			if (disposing)
			{
				Application.RemoveMessageFilter(this);

				if (m_list != null)
					m_list.Clear();

				if (m_dataGridView != null && !m_dataGridView.Disposing)
					m_dataGridView.Dispose();

				if (m_zoomFactor != null)
					m_zoomFactor.Dispose();
			}

			m_tsStrComparer = null;
			m_dataGridView = null;
			m_list = null;
			m_zoomFactor = null;

			base.Dispose(disposing);
		}
示例#13
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
		/// ------------------------------------------------------------------------------------
		protected override void Dispose(bool disposing)
		{
			Debug.WriteLineIf(!disposing, "********** Missing Dispose() call for " + GetType().Name + ". **********");
			if (disposing)
			{
				if (m_openFileDialog != null)
					m_openFileDialog.Dispose();

				if (m_fDisposeWsManager)
				{
					var disposable = m_wsManager as IDisposable;
					if (disposable != null)
						disposable.Dispose();
					m_wsManager = null;
				}
				if (m_fntForSpecialChar != null)
				{
					m_fntForSpecialChar.Dispose();
					m_fntForSpecialChar = null;
				}
				if (m_validCharsGridMngr != null)
					m_validCharsGridMngr.Dispose();
				if (m_chkBoxColHdrHandler != null)
					m_chkBoxColHdrHandler.Dispose();
				if (m_chrPropEng != null && Marshal.IsComObject(m_chrPropEng))
				{
					Marshal.ReleaseComObject(m_chrPropEng);
					m_chrPropEng = null;
				}
				if (m_openFileDialog != null)
					m_openFileDialog.Dispose();
				if (components != null)
					components.Dispose();
			}

			m_openFileDialog = null;
			m_validCharsGridMngr = null;
			m_chkBoxColHdrHandler = null;
			m_inventoryCharComparer = null;
			m_openFileDialog = null;

			base.Dispose(disposing);

		}
示例#14
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Compares character inventory rows on the character field.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		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_ws);

			return (s_inventorySortOrder == SortOrder.Ascending ?
				m_inventoryCharComparer.Compare(x.Character, y.Character) :
				m_inventoryCharComparer.Compare(y.Character, x.Character));
		}
示例#15
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Sorts the lists.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		public void InitSortComparer(IWritingSystem ws)
		{
			if (m_comparer != null && m_comparer.WritingSystem != ws)
				m_comparer = null;

			if (m_comparer == null && ws != null)
				m_comparer = new TsStringComparer(ws);
		}