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); }
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)); }