/// <summary> /// Set all controls to appropriate states for the current list selections. /// </summary> void EnableControls() { addButton.Enabled = optionsList.SelectedIndex >= 0; // We could use OkToRemove here, but we'd rather be able to display the message // if there is some reason not to. int listIndex = CurrentListIndex; removeButton.Enabled = listIndex >= 0; //Enhance: && m_choices.OkToRemove(listIndex); moveDownButton.Enabled = listIndex >= 0 && m_choices.OkToMoveDown(listIndex); moveUpButton.Enabled = listIndex >= 0 && m_choices.OkToMoveUp(listIndex); UpdateWsComboValue(); wsCombo.Enabled = listIndex >= 0 && m_choices.OkToChangeWritingSystem(listIndex); }
public void MoveUp() { InterlinLineChoices choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis); // To make it less confusing, here we add them in an order that does not produce // reordering. MakeStandardState(choices); // lit trans can move up Assert.IsFalse(choices.OkToMoveUp(0)); // words line already at toop Assert.IsTrue(choices.OkToMoveUp(1)); // non-edit, morphemes can move up, group goes too. Assert.IsTrue(choices.OkToMoveUp(2)); Assert.IsTrue(choices.OkToMoveUp(3)); Assert.IsTrue(choices.OkToMoveUp(4)); Assert.IsTrue(choices.OkToMoveUp(5)); // will move past whole morph bundle Assert.IsTrue(choices.OkToMoveUp(6)); Assert.IsFalse(choices.OkToMoveUp(7)); // free can't go anywhere Assert.IsTrue(choices.OkToMoveUp(8)); choices.MoveUp(1); // morphemes is now top Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[0].Flid); // Word moved down to position 4 Assert.AreEqual(InterlinLineChoices.kflidWord, choices[4].Flid); // Lex Gloss (to pick just one) also moved up Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[2].Flid); choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(2); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[1].Flid); Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[2].Flid); choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(3); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[2].Flid); Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[3].Flid); choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(5); // Moves past whole morpheme bundle Assert.AreEqual(InterlinLineChoices.kflidWordGloss, choices[1].Flid); Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[2].Flid); Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[3].Flid); choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(6); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidWordPos, choices[5].Flid); Assert.AreEqual(InterlinLineChoices.kflidWordGloss, choices[6].Flid); choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(8); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidLitTrans, choices[7].Flid); Assert.AreEqual(InterlinLineChoices.kflidFreeTrans, choices[8].Flid); }
public void MoveUp() { InterlinLineChoices choices = new InterlinLineChoices(0, kwsAnalysis); // To make it less confusing, here we add them in an order that does not produce // reordering. MakeStandardState(choices); // lit trans can move up Assert.IsFalse(choices.OkToMoveUp(0)); // words line already at toop Assert.IsTrue(choices.OkToMoveUp(1)); // non-edit, morphemes can move up, group goes too. Assert.IsTrue(choices.OkToMoveUp(2)); Assert.IsTrue(choices.OkToMoveUp(3)); Assert.IsTrue(choices.OkToMoveUp(4)); Assert.IsTrue(choices.OkToMoveUp(5)); // will move past whole morph bundle Assert.IsTrue(choices.OkToMoveUp(6)); Assert.IsFalse(choices.OkToMoveUp(7)); // free can't go anywhere Assert.IsTrue(choices.OkToMoveUp(8)); choices.MoveUp(1); // morphemes is now top Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[0].Flid); // Word moved down to position 4 Assert.AreEqual(InterlinLineChoices.kflidWord, choices[4].Flid); // Lex Gloss (to pick just one) also moved up Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[2].Flid); choices = new InterlinLineChoices(0, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(2); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[1].Flid); Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[2].Flid); choices = new InterlinLineChoices(0, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(3); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[2].Flid); Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[3].Flid); choices = new InterlinLineChoices(0, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(5); // Moves past whole morpheme bundle Assert.AreEqual(InterlinLineChoices.kflidWordGloss, choices[1].Flid); Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[2].Flid); Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[3].Flid); choices = new InterlinLineChoices(0, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(6); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidWordPos, choices[5].Flid); Assert.AreEqual(InterlinLineChoices.kflidWordGloss, choices[6].Flid); choices = new InterlinLineChoices(0, kwsAnalysis); MakeStandardState(choices); choices.MoveUp(8); // nothing complicated, two items changed place. Assert.AreEqual(InterlinLineChoices.kflidLitTrans, choices[7].Flid); Assert.AreEqual(InterlinLineChoices.kflidFreeTrans, choices[8].Flid); }