Exemplo n.º 1
0
        public void AddFields()
        {
            InterlinLineChoices choices = new InterlinLineChoices(m_lp, kwsVernInPara, kwsAnalysis);

            choices.Add(InterlinLineChoices.kflidWord);
            choices.Add(InterlinLineChoices.kflidLexEntries);
            choices.Add(InterlinLineChoices.kflidWordGloss);
            choices.Add(InterlinLineChoices.kflidLexPos);
            choices.Add(InterlinLineChoices.kflidFreeTrans);
            choices.Add(InterlinLineChoices.kflidWordPos);
            choices.Add(InterlinLineChoices.kflidLexGloss);
            choices.Add(InterlinLineChoices.kflidLexGloss, 3003);

            // Check order inserted.
            Assert.AreEqual(InterlinLineChoices.kflidWord, choices[0].Flid);
            Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[1].Flid);
            // This gets reordered to keep the interlinears together.
            Assert.AreEqual(InterlinLineChoices.kflidLexPos, choices[2].Flid);
            // reordered past ff and word level
            Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[3].Flid);
            Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[4].Flid);
            // inserted third, but other things push past it.
            Assert.AreEqual(InterlinLineChoices.kflidWordGloss, choices[5].Flid);
            // reordered past a freeform.
            Assert.AreEqual(InterlinLineChoices.kflidWordPos, choices[6].Flid);
            Assert.AreEqual(InterlinLineChoices.kflidFreeTrans, choices[7].Flid);

            // Check writing systems assigned by default.
            Assert.AreEqual(kwsVernInPara, choices[0].WritingSystem);
            Assert.AreEqual(WritingSystemServices.kwsFirstAnal, choices[3].WritingSystem);
            Assert.AreEqual(3003, choices[4].WritingSystem);

            // Check field levels
            Assert.IsTrue(choices[0].WordLevel);
            Assert.IsTrue(choices[1].WordLevel);
            Assert.IsFalse(choices[7].WordLevel);

            Assert.IsFalse(choices[0].MorphemeLevel);
            Assert.IsTrue(choices[1].MorphemeLevel);
            Assert.IsFalse(choices[6].MorphemeLevel);
            Assert.AreEqual(1, choices.FirstMorphemeIndex);
            Assert.AreEqual(1, choices.FirstLexEntryIndex);

            Assert.IsTrue(choices[1].LexEntryLevel);                    // lex entries
            Assert.IsTrue(choices[2].LexEntryLevel);                    // lex pos
            Assert.IsTrue(choices[3].LexEntryLevel);                    // lex gloss
            Assert.IsTrue(choices[4].LexEntryLevel);                    // lex gloss
            Assert.IsFalse(choices[0].LexEntryLevel);                   // word
            Assert.IsFalse(choices[5].LexEntryLevel);                   // word gloss
            Assert.IsFalse(choices[6].LexEntryLevel);                   // word pos
            Assert.IsFalse(choices[7].LexEntryLevel);                   // free trans

            choices.Add(InterlinLineChoices.kflidMorphemes);
            Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[1].Flid);
            Assert.AreEqual(1, choices.FirstMorphemeIndex);             // morpheme line
            Assert.AreEqual(2, choices.FirstLexEntryIndex);             // lex entry
            Assert.IsFalse(choices[1].LexEntryLevel);                   // morphemes
        }
Exemplo n.º 2
0
		public void AddFields()
		{
			InterlinLineChoices choices = new InterlinLineChoices(0, kwsAnalysis);
			choices.Add(InterlinLineChoices.kflidWord);
			choices.Add(InterlinLineChoices.kflidLexEntries);
			choices.Add(InterlinLineChoices.kflidWordGloss);
			choices.Add(InterlinLineChoices.kflidLexPos);
			choices.Add(InterlinLineChoices.kflidFreeTrans);
			choices.Add(InterlinLineChoices.kflidWordPos);
			choices.Add(InterlinLineChoices.kflidLexGloss);
			choices.Add(InterlinLineChoices.kflidLexGloss, 3003);

			// Check order inserted.
			Assert.AreEqual(InterlinLineChoices.kflidWord, choices[0].Flid);
			Assert.AreEqual(InterlinLineChoices.kflidLexEntries, choices[1].Flid);
			// This gets reordered to keep the interlinears together.
			Assert.AreEqual(InterlinLineChoices.kflidLexPos, choices[2].Flid);
			// reordered past ff and word level
			Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[3].Flid);
			Assert.AreEqual(InterlinLineChoices.kflidLexGloss, choices[4].Flid);
			// inserted third, but other things push past it.
			Assert.AreEqual(InterlinLineChoices.kflidWordGloss, choices[5].Flid);
			// reordered past a freeform.
			Assert.AreEqual(InterlinLineChoices.kflidWordPos, choices[6].Flid);
			Assert.AreEqual(InterlinLineChoices.kflidFreeTrans, choices[7].Flid);

			// Check writing systems assigned by default.
			Assert.AreEqual(kwsVern, choices[0].WritingSystem);
			Assert.AreEqual((int)LangProject.kwsFirstAnal, choices[3].WritingSystem);
			Assert.AreEqual(3003, choices[4].WritingSystem);

			// Check field levels
			Assert.IsTrue(choices[0].WordLevel);
			Assert.IsTrue(choices[1].WordLevel);
			Assert.IsFalse(choices[7].WordLevel);

			Assert.IsFalse(choices[0].MorphemeLevel);
			Assert.IsTrue(choices[1].MorphemeLevel);
			Assert.IsFalse(choices[6].MorphemeLevel);
			Assert.AreEqual(1, choices.FirstMorphemeIndex);
			Assert.AreEqual(1, choices.FirstLexEntryIndex);

			Assert.IsTrue(choices[1].LexEntryLevel);	// lex entries
			Assert.IsTrue(choices[2].LexEntryLevel);	// lex pos
			Assert.IsTrue(choices[3].LexEntryLevel);	// lex gloss
			Assert.IsTrue(choices[4].LexEntryLevel);	// lex gloss
			Assert.IsFalse(choices[0].LexEntryLevel);	// word
			Assert.IsFalse(choices[5].LexEntryLevel);	// word gloss
			Assert.IsFalse(choices[6].LexEntryLevel);	// word pos
			Assert.IsFalse(choices[7].LexEntryLevel);	// free trans

			choices.Add(InterlinLineChoices.kflidMorphemes);
			Assert.AreEqual(InterlinLineChoices.kflidMorphemes, choices[1].Flid);
			Assert.AreEqual(1, choices.FirstMorphemeIndex);	// morpheme line
			Assert.AreEqual(2, choices.FirstLexEntryIndex);	// lex entry
			Assert.IsFalse(choices[1].LexEntryLevel);	// morphemes
		}
Exemplo n.º 3
0
 private void MakeStandardState(InterlinLineChoices choices)
 {
     choices.Add(InterlinLineChoices.kflidWord);             // 0
     choices.Add(InterlinLineChoices.kflidMorphemes);        // 1
     choices.Add(InterlinLineChoices.kflidLexEntries);       //2
     choices.Add(InterlinLineChoices.kflidLexGloss);         //3
     choices.Add(InterlinLineChoices.kflidLexPos);           //4
     choices.Add(InterlinLineChoices.kflidWordGloss);        //5
     choices.Add(InterlinLineChoices.kflidWordPos);          //6
     choices.Add(InterlinLineChoices.kflidFreeTrans);        //7
     choices.Add(InterlinLineChoices.kflidLitTrans);         //8
 }
        private void addButton_Click(object sender, System.EventArgs e)
        {
            if (optionsList.SelectedItem == null || !(optionsList.SelectedItem is LineOption))
            {
                return;
            }
            int flid = (optionsList.SelectedItem as LineOption).Flid;

            int ws = 0;

            if (m_choices.IndexOf(flid) != -1)             // i.e., if m_choices contains flid.
            {
                InterlinLineSpec existingSpec = m_choices[m_choices.IndexOf(flid)];
                int prevWs = existingSpec.WritingSystem;

                foreach (WsComboItem item in WsComboItems(existingSpec.ComboContent))
                {
                    int newWs = getWsFromId(item.Id);

                    if (newWs != prevWs && m_choices.IndexOf(flid, newWs, true) == -1)
                    {
                        ws = newWs;
                        break;
                    }
                }
            }

            int index = m_choices.Add(flid, ws);

            InitCurrentList(index);
        }
Exemplo n.º 5
0
        private void addButton_Click(object sender, System.EventArgs e)
        {
            if (optionsList.SelectedItem == null)
            {
                return;
            }
            int flid  = (optionsList.SelectedItem as LineOption).Flid;
            int index = m_choices.Add(flid);

            InitCurrentList(index);
        }
Exemplo n.º 6
0
		/// <summary>
		/// Make sure there is SOME lineChoice for the specified flid in m_lineChoices.
		/// If lineChoices is non-null and contains one for the right flid, choose the first.
		/// </summary>
		/// <param name="dest"></param>
		/// <param name="source"></param>
		/// <param name="flid"></param>
		private static void GetLineChoice(InterlinLineChoices dest, InterlinLineChoices source, int flid)
		{
			if (source != null)
			{
				var index = source.IndexOf(flid);
				if (index >= 0)
				{
					dest.Add(source[index]);
					return;
				}
			}
			// Last resort.
			dest.Add(flid);
		}
Exemplo n.º 7
0
		private void MakeStandardState(InterlinLineChoices choices)
		{
			choices.Add(InterlinLineChoices.kflidWord); // 0
			choices.Add(InterlinLineChoices.kflidMorphemes); // 1
			choices.Add(InterlinLineChoices.kflidLexEntries); //2
			choices.Add(InterlinLineChoices.kflidLexGloss); //3
			choices.Add(InterlinLineChoices.kflidLexPos); //4
			choices.Add(InterlinLineChoices.kflidWordGloss); //5
			choices.Add(InterlinLineChoices.kflidWordPos); //6
			choices.Add(InterlinLineChoices.kflidFreeTrans); //7
			choices.Add(InterlinLineChoices.kflidLitTrans); //8
		}
Exemplo n.º 8
0
		private void CacheLexGlossWithInflTypeForAllCurrentWs(ILexEntry possibleVariant, int hvoLexSenseSec, int wsVern, IVwCacheDa cda,
			ILexEntryInflType inflType)
		{
			IList<int> currentAnalysisWsList = m_caches.MainCache.ServiceLocator.WritingSystems.CurrentAnalysisWritingSystems.Select(wsObj => wsObj.Handle).ToArray();
			CacheStringAltForAllCurrentWs(currentAnalysisWsList, cda, hvoLexSenseSec, ktagSbNamedObjName,
				delegate(int wsLexGloss)
					{
						var hvoSenseReal = m_caches.RealHvo(hvoLexSenseSec);
						var sense = Cache.ServiceLocator.GetInstance<ILexSenseRepository>().GetObject(hvoSenseReal);
						var spec = m_choices.CreateSpec(InterlinLineChoices.kflidLexGloss, wsLexGloss);
						var choices = new InterlinLineChoices(Cache, m_choices.m_wsDefVern,
															m_choices.m_wsDefAnal);
						choices.Add(spec);
						ITsString tssResult;
						return InterlinVc.TryGetLexGlossWithInflTypeTss(possibleVariant, sense, spec, choices, wsVern, inflType, out tssResult) ?
									tssResult : null;
					});
		}
Exemplo n.º 9
0
		public override void MakeRoot()
		{
			CheckDisposed();

			m_rootb = VwRootBoxClass.Create();
			m_rootb.SetSite(this);

			m_vc = new RibbonVc(this);

			if (LineChoices == null)
			{
				// fall-back (mainly for testing).
				LineChoices = new InterlinLineChoices(Cache.LangProject, Cache.DefaultVernWs, Cache.DefaultAnalWs);
				LineChoices.Add(InterlinLineChoices.kflidWord);
				LineChoices.Add(InterlinLineChoices.kflidWordGloss);
			}
			m_vc.LineChoices = LineChoices;

			m_rootb.DataAccess = Decorator;
			m_rootb.SetRootObject(HvoRoot, m_vc, kfragRibbonWordforms, this.StyleSheet);

			base.MakeRoot();
			m_rootb.Activate(VwSelectionState.vssOutOfFocus); // Makes selection visible even before ever got focus.\
			MakeInitialSelection();
		}
Exemplo n.º 10
0
		public override void MakeRoot()
		{
			CheckDisposed();

			m_rootb = VwRootBoxClass.Create();
			m_rootb.SetSite(this);

			m_vc = new RibbonVc(this);

			if (m_lineChoices == null)
			{
				// fall-back (mainly for testing).
				m_lineChoices = new InterlinLineChoices(0, m_cache.DefaultAnalWs, m_cache.LangProject);
				m_lineChoices.Add(InterlinLineChoices.kflidWord);
				m_lineChoices.Add(InterlinLineChoices.kflidWordGloss);
			}
			m_vc.LineChoices = m_lineChoices;
			// may be needed..normally happens when the VC displays a top-level paragraph.
			//SetupRealVernWsForDisplay(m_cache.LangProject.ActualWs(LangProject.kwsVernInParagraph,
			//    hvo, (int)StText.StTextTags.kflidParagraphs));

			m_rootb.DataAccess = m_cache.MainCacheAccessor;
			m_rootb.SetRootObject(HvoRoot, m_vc, kfragRibbonAnnotations, this.StyleSheet);

			base.MakeRoot();
			m_rootb.Activate(VwSelectionState.vssOutOfFocus); // Makes selection visible even before ever got focus.\
			MakeInitialSelection();
		}