예제 #1
0
        public override void FinishInit()
        {
            CheckDisposed();

            DummyReversalIndexEntrySliceView ctrl = new DummyReversalIndexEntrySliceView(Object.Hvo);

            ctrl.Cache   = Cache;
            DummyControl = ctrl;

            if (ctrl.RootBox == null)
            {
                ctrl.MakeRoot();
            }
        }
예제 #2
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));
        }