예제 #1
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"></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. ******************");
			// Must not be run more than once.
			if (IsDisposed)
				return;

			if (disposing)
			{
				// Dispose managed resources here.
				if (m_rtp != null)
					m_rtp.Dispose();
			}

			// Dispose unmanaged resources here, whether disposing is true or false.
			m_rtp = null;
			m_text1 = null;

			base.Dispose(disposing);
		}
예제 #2
0
		public override void Initialize()
		{
			CheckDisposed();
			base.Initialize();

			TextBuilder tb = new TextBuilder(Cache.LangProject.TextsOC);
			using (new UndoRedoTaskHelper(Cache, "TextEditingTests - Undo Setup texts",
				"TextEditingTests - Redo Setup texts"))
			{
				// Create a mirrored text without annotations.
				m_text1 = tb.CreateText(true);
				IStTxtPara para0 = tb.AppendNewParagraph();
				IStTxtPara para1 = tb.AppendNewParagraph();
				// raw copy from the annotated text.
				//	          1         2         3         4         5         6         7         8         9
				//  0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
				//	xxxpus xxxyalola xxxnihimbilira. xxxnihimbilira xxxpus xxxyalola. xxxhesyla xxxnihimbilira.
				para0.Contents.UnderlyingTsString = StringUtils.MakeTss(ParagraphContents[0], Cache.DefaultVernWs);
				para1.Contents.UnderlyingTsString = StringUtils.MakeTss(ParagraphContents[1], Cache.DefaultVernWs);
			}
			m_rtp = new MockRawTextEditor(Cache, tb);
		}
예제 #3
0
		public override void Initialize()
		{
			CheckDisposed();
			base.Initialize();

			TextBuilder tb;
			using (new UndoRedoTaskHelper(Cache, "TextEditingTests - Undo Setup texts",
				"TextEditingTests - Redo Setup texts"))
			{
				m_text1 = LoadTestText(@"LexText\Interlinear\ITextDllTests\TextEditingTestsTexts.xml", 1, m_textsDefn, out tb);
			}
			m_rtp = new MockRawTextEditor(Cache, tb);
			tb.GenerateAnnotationIdsFromDefn();
		}
예제 #4
0
				internal StateTransitionHelper(MockRawTextEditor rtp, List<XmlNode> statesBeforeEdit, List<XmlNode> expectedStatesAfterEdits)
				{
					m_rtp = rtp;
					m_statesBeforeEdit = statesBeforeEdit;
					m_expectedStatesAfterEdits = expectedStatesAfterEdits;
					XmlNode textSpecBeforeEdit = rtp.m_tb.SelectedNode;
					if (rtp.m_tb.ActualStText != null)
					{
						rtp.m_allLinkedObjectsBeforeEdit = rtp.m_tb.ActualStText.LinkedObjects;
					}
					if (textSpecBeforeEdit != null)
						statesBeforeEdit.Insert(0, (ParagraphBuilder.Snapshot(textSpecBeforeEdit)));
				}