Exemplo n.º 1
0
        public void ChangeColumn()
        {
            var allParaOccurrences = MakeAnalysesUsedN(1);
            var row0            = MakeRow("1a");
            var cellPart0_1     = MakeWordGroup(row0, 1, allParaOccurrences[0], allParaOccurrences[0]);
            var cellPart0_1a    = m_helper.MakeChartMarker(row0, 1, m_helper.GetAMarker());
            var originalColumn  = cellPart0_1.ColumnRA;
            var cellPartsToMove = new IConstituentChartCellPart[] { cellPart0_1, cellPart0_1a };
            var newColumn       = m_logic.AllMyColumns[2];
            var hvoNewCol       = newColumn.Hvo;

            EndSetupTask();             // SUT needs its own UOW to test Undo/Redo

            UndoableUnitOfWorkHelper.Do("TestChangeColumn", "TestChangeColumn", Cache.ActionHandlerAccessor,
                                        () => m_logic.ChangeColumn(cellPartsToMove, newColumn, row0));
            VerifyChangeColumn(cellPartsToMove, newColumn, "cellPart should have been moved to new column");

            // Now test Undo
            Assert.IsTrue(Cache.ActionHandlerAccessor.CanUndo());
            Cache.ActionHandlerAccessor.Undo();
            VerifyChangeColumn(cellPartsToMove, originalColumn, "cellPart should have returned to original column");

            // And now Redo
            Assert.IsTrue(Cache.ActionHandlerAccessor.CanRedo());
            Cache.ActionHandlerAccessor.Redo();
            VerifyChangeColumn(cellPartsToMove, newColumn, "cellPart should have been moved again to new column");
        }
Exemplo n.º 2
0
        public void ChangeRow()
        {
            var allParaOccurrences = MakeAnalysesUsedN(3);
            var row0        = MakeRow("1a");
            var row1        = MakeRow("1b");
            var cellPart0_1 = MakeWordGroup(row0, 1, allParaOccurrences[0], allParaOccurrences[0]);

            m_helper.MakeChartMarker(row0, 1, m_helper.GetAMarker());
            MakeWordGroup(row1, 1, allParaOccurrences[1], allParaOccurrences[1]);
            MakeWordGroup(row1, 3, allParaOccurrences[2], allParaOccurrences[2]);
            var cellPartsToMove = new IConstituentChartCellPart[] { cellPart0_1 };

            EndSetupTask();             // SUT needs its own UOW to test Undo/Redo

            // SUT
            UndoableUnitOfWorkHelper.Do("TestChangeRow", "TestChangeRow", Cache.ActionHandlerAccessor,
                                        () => m_logic.ChangeRow(cellPartsToMove, row0, row1, 0, 1));
            VerifyChangeRow(row0, cellPartsToMove, row1, "cellParts should have been moved to new row", 1);

            // Now test Undo
            Assert.IsTrue(Cache.ActionHandlerAccessor.CanUndo());
            Cache.ActionHandlerAccessor.Undo();
            VerifyChangeRow(row1, cellPartsToMove, row0,
                            "cellParts should have been moved back to original row by Undo", 0);

            // And now Redo
            Assert.IsTrue(Cache.ActionHandlerAccessor.CanRedo());
            Cache.ActionHandlerAccessor.Redo();
            VerifyChangeRow(row0, cellPartsToMove, row1, "cellParts should have been moved again to new row by redo", 1);
        }
Exemplo n.º 3
0
		/// <summary>
		/// Verify that the specified row of the chart exists and has the expected cell parts.
		/// </summary>
		/// <param name="index"></param>
		/// <param name="cellParts"></param>
		void VerifyRowContents(int index, IConstituentChartCellPart[] cellParts)
		{
			m_helper.VerifyRowCells(index, cellParts);
		}
Exemplo n.º 4
0
		public void ChangeRow()
		{
			var allParaOccurrences = MakeAnalysesUsedN(3);
			var row0 = MakeRow("1a");
			var row1 = MakeRow("1b");
			var cellPart0_1 = MakeWordGroup(row0, 1, allParaOccurrences[0], allParaOccurrences[0]);
			m_helper.MakeChartMarker(row0, 1, m_helper.GetAMarker());
			MakeWordGroup(row1, 1, allParaOccurrences[1], allParaOccurrences[1]);
			MakeWordGroup(row1, 3, allParaOccurrences[2], allParaOccurrences[2]);
			var cellPartsToMove = new IConstituentChartCellPart[] { cellPart0_1 };
			EndSetupTask(); // SUT needs its own UOW to test Undo/Redo

			// SUT
			UndoableUnitOfWorkHelper.Do("TestChangeRow", "TestChangeRow", Cache.ActionHandlerAccessor,
				() => m_logic.ChangeRow(cellPartsToMove, row0, row1, 0, 1));
			VerifyChangeRow(row0, cellPartsToMove, row1, "cellParts should have been moved to new row", 1);

			// Now test Undo
			Assert.IsTrue(Cache.ActionHandlerAccessor.CanUndo());
			Cache.ActionHandlerAccessor.Undo();
			VerifyChangeRow(row1, cellPartsToMove, row0,
				"cellParts should have been moved back to original row by Undo", 0);

			// And now Redo
			Assert.IsTrue(Cache.ActionHandlerAccessor.CanRedo());
			Cache.ActionHandlerAccessor.Redo();
			VerifyChangeRow(row0, cellPartsToMove, row1, "cellParts should have been moved again to new row by redo", 1);
		}
Exemplo n.º 5
0
 private static void AssertMergeAfter(bool expectedState, IConstituentChartCellPart cellPart, string message)
 {
     Assert.AreEqual(expectedState, cellPart.MergesAfter, message);
 }
Exemplo n.º 6
0
		private static void AssertMergeAfter(bool expectedState, IConstituentChartCellPart cellPart, string message)
		{
			Assert.AreEqual(expectedState, cellPart.MergesAfter, message);
		}
Exemplo n.º 7
0
		public void ChangeColumn()
		{
			var allParaOccurrences = MakeAnalysesUsedN(1);
			var row0 = MakeRow("1a");
			var cellPart0_1 = MakeWordGroup(row0, 1, allParaOccurrences[0], allParaOccurrences[0]);
			var cellPart0_1a = m_helper.MakeChartMarker(row0, 1, m_helper.GetAMarker());
			var originalColumn = cellPart0_1.ColumnRA;
			var cellPartsToMove = new IConstituentChartCellPart[] { cellPart0_1, cellPart0_1a };
			var newColumn = m_logic.AllMyColumns[2];
			var hvoNewCol = newColumn.Hvo;
			EndSetupTask(); // SUT needs its own UOW to test Undo/Redo

			UndoableUnitOfWorkHelper.Do("TestChangeColumn", "TestChangeColumn", Cache.ActionHandlerAccessor,
				() => m_logic.ChangeColumn(cellPartsToMove, newColumn, row0));
			VerifyChangeColumn(cellPartsToMove, newColumn, "cellPart should have been moved to new column");

			// Now test Undo
			Assert.IsTrue(Cache.ActionHandlerAccessor.CanUndo());
			Cache.ActionHandlerAccessor.Undo();
			VerifyChangeColumn(cellPartsToMove, originalColumn, "cellPart should have returned to original column");

			// And now Redo
			Assert.IsTrue(Cache.ActionHandlerAccessor.CanRedo());
			Cache.ActionHandlerAccessor.Redo();
			VerifyChangeColumn(cellPartsToMove, newColumn, "cellPart should have been moved again to new column");
		}
Exemplo n.º 8
0
		protected internal override void ChangeColumnInternal(IConstituentChartCellPart[] partsToMove, ICmPossibility newCol)
		{
			if (m_fRecordBasicEdits)
				m_events.Add(new object[] { "change column internal", partsToMove, newCol });
			else
				base.ChangeColumnInternal(partsToMove, newCol);
		}
Exemplo n.º 9
0
		public override void ChangeColumn(IConstituentChartCellPart[] partsToMove, ICmPossibility newCol, IConstChartRow row)
		{
			if (m_fRecordBasicEdits)
				m_events.Add(new object[] { "change column", partsToMove, newCol, row });
			else
				base.ChangeColumn(partsToMove, newCol, row);
		}
Exemplo n.º 10
0
		/// <summary>
		/// Return true if the CellPart is a ConstChartTag, but the Tag is null,
		/// because then its a "Missing" marker.
		/// Takes the actual CellPart object.
		/// </summary>
		/// <param name="cellPart"></param>
		/// <returns></returns>
		private static bool IsMissingMkr(IConstituentChartCellPart cellPart)
		{
			var part = cellPart as IConstChartTag;
			return part != null && part.TagRA == null;
		}
Exemplo n.º 11
0
		/// <summary>
		/// Return true if the CellPart is a ConstChartTag (which in a CellPart list makes it
		/// a reference to a CmPossibility), also known as a generic marker. But we still
		/// want to return false if the Tag is null, because then its a "Missing" marker.
		/// This version takes the actual CellPart object.
		/// </summary>
		/// <param name="cellPart"></param>
		/// <returns></returns>
		private static bool IsListRef(IConstituentChartCellPart cellPart)
		{
			var part = cellPart as IConstChartTag;
			return part != null && part.TagRA != null;
		}
Exemplo n.º 12
0
		private void AddCellPartToCell(IConstituentChartCellPart cellPart)
		{
			var fSwitchBrackets = m_chart.IsRightToLeft && !(cellPart is IConstChartWordGroup);
			if (m_cCellPartsInCurrentCell != 0)
				m_vwenv.AddString(m_this.SpaceString);
			m_cCellPartsInCurrentCell++;
			if (m_icellpart == m_icellPartOpenClause && !fSwitchBrackets)
			{
				AddOpenBracketBeforeDepClause();
			}
			// RightToLeft weirdness because non-wordgroup stuff doesn't work right!
			if (m_icellpart == m_icellPartCloseClause && fSwitchBrackets)
			{
				AddCloseBracketAfterDepClause();
			}
			if (ConstituentChartLogic.IsMovedText(cellPart))
				m_vwenv.AddObj(cellPart.Hvo, m_this, ConstChartVc.kfragMovedTextCellPart);
			// Is its target a CmPossibility?
			else if (IsListRef(cellPart))
			{
				// If we're about to add our first CellPart and its a ConstChartTag, see if AutoMissingMarker flies.
				if (m_cCellPartsInCurrentCell == 1 && m_chart.Logic.ColumnHasAutoMissingMarkers(m_iLastColForWhichCellExists))
				{
					InsertAutoMissingMarker(m_iLastColForWhichCellExists);
					m_cCellPartsInCurrentCell++;
				}
				m_vwenv.AddObj(cellPart.Hvo, m_this, ConstChartVc.kfragChartListItem);
			}
				// Is its target a user's missing marker (not auto)
			else if (IsMissingMkr(cellPart))
			{
				m_vwenv.AddString(m_missMkr);
			}
			else
			{
				m_vwenv.AddObj(cellPart.Hvo, m_this, ConstChartVc.kfragCellPart);
			}
			if (m_icellpart == m_icellPartCloseClause && !fSwitchBrackets)
			{
				AddCloseBracketAfterDepClause();
			}
			// RightToLeft weirdness because non-wordgroup stuff doesn't work right!
			if (m_icellpart == m_icellPartOpenClause && fSwitchBrackets)
			{
				AddOpenBracketBeforeDepClause();
			}
		}