protected IReversalIndexEntry CreateReversalIndexEntry(string riForm)
        {
            var            revIndexEntry = m_revIndexEntryFactory.Create();
            var            wsObj         = Cache.LanguageProject.DefaultAnalysisWritingSystem;
            IReversalIndex revIndex      = m_revIndexRepo.FindOrCreateIndexForWs(wsObj.Handle);

            //Add an entry to the Reveral index
            revIndex.EntriesOC.Add(revIndexEntry);
            revIndexEntry.ReversalForm.set_String(wsObj.Handle, Cache.TsStrFactory.MakeString(riForm, wsObj.Handle));
            return(revIndexEntry);
        }
        protected IReversalIndex AddReversalIndex(List <ICmObject> addList, IReversalIndexEntry revIndexEntry)
        {
            Assert.IsNotNull(m_revIndexFactory, "Fixture Initialization is not complete.");
            Assert.IsNotNull(m_window, "No window.");

            //create a reversal index for this project.
            var            wsObj    = Cache.LanguageProject.DefaultAnalysisWritingSystem;
            IReversalIndex revIndex = m_revIndexRepo.FindOrCreateIndexForWs(wsObj.Handle);

            //Add an entry to the Reveral index
            revIndex.EntriesOC.Add(revIndexEntry);

            addList.Add(revIndex);
            return(revIndex);
        }
Ejemplo n.º 3
0
        public void DummyReversalCreatedOnFocusLost()
        {
            NonUndoableUnitOfWorkHelper.Do(Cache.ActionHandlerAccessor, () =>
            {
                m_lexEntry      = Cache.ServiceLocator.GetInstance <ILexEntryFactory>().Create();
                ILexSense sense = Cache.ServiceLocator.GetInstance <ILexSenseFactory>().Create();
                m_lexEntry.SensesOS.Add(sense);
            });
            int engWsId = Cache.DefaultAnalWs;

            m_reversalSlice       = new DummyReversalIndexEntrySlice(m_lexEntry.SensesOS[0]);
            m_reversalSlice.Cache = Cache;

            // Creating the reversal index before the slice is fully initialized ensures the reversal index gets loaded into the dummy cache
            IReversalIndex ri = m_revIndexRepo.FindOrCreateIndexForWs(engWsId);

            m_reversalSlice.FinishInit();
            DummyReversalIndexEntrySliceView reversalView = m_reversalSlice.DummyControl;
            int indexFirstEntry = 0;

            reversalView.CacheNewDummyEntry(ri.Hvo, engWsId);             // Create an additional dummy reversal entry before we edit one
            reversalView.EditRevIndexEntryInCache(ri.Hvo, indexFirstEntry, engWsId, TsStringUtils.MakeString("first", engWsId));

            // The dummy cache will have two dummy reversal index entries, but non exists in the real data yet.
            // The reversal index entry control must maintain a dummy entry at the end to allow a place to click to add new entries.
            Assert.AreEqual(0, m_revIndexEntryRepo.Count);
            Assert.AreEqual(2, reversalView.GetIndexSize(ri.Hvo));             // The second dummy entry will remain a dummy
            reversalView.KillFocus(new Control());
            Assert.AreEqual(1, m_revIndexEntryRepo.Count);
            Assert.AreEqual(2, reversalView.GetIndexSize(ri.Hvo));
            IReversalIndexEntry rie = m_revIndexEntryRepo.AllInstances().First();

            Assert.AreEqual("first", rie.ShortName);
            Assert.AreEqual(1, m_lexEntry.SensesOS[0].ReferringReversalIndexEntries.Count());
            Assert.True(m_lexEntry.SensesOS[0].ReferringReversalIndexEntries.Contains(rie));
        }