示例#1
0
        public DiscourseTestHelper(FdoCache cache)
        {
            m_cache = cache;

            #region Load Factories and Repositories

            m_servLoc        = m_cache.ServiceLocator;
            m_tsf            = cache.TsStrFactory;
            m_wAnalysisFact  = m_servLoc.GetInstance <IWfiAnalysisFactory>();
            m_wGlossFact     = m_servLoc.GetInstance <IWfiGlossFactory>();
            m_rowFact        = m_servLoc.GetInstance <IConstChartRowFactory>();
            m_wordGrpFact    = m_servLoc.GetInstance <IConstChartWordGroupFactory>();
            m_ccTagFact      = m_servLoc.GetInstance <IConstChartTagFactory>();
            m_mtmFact        = m_servLoc.GetInstance <IConstChartMovedTextMarkerFactory>();
            m_clauseMrkrFact = m_servLoc.GetInstance <IConstChartClauseMarkerFactory>();
            m_partRepo       = m_servLoc.GetInstance <IConstituentChartCellPartRepository>();
            m_rowRepo        = m_servLoc.GetInstance <IConstChartRowRepository>();

            #endregion

            m_text = m_servLoc.GetInstance <ITextFactory>().Create();
            //Cache.LangProject.TextsOC.Add(m_text);
            m_stText          = m_servLoc.GetInstance <IStTextFactory>().Create();
            m_text.ContentsOA = m_stText;
            m_allOccurrences  = new Dictionary <IStTxtPara, AnalysisOccurrence[]>();
            m_firstPara       = MakeParagraph();
        }
示例#2
0
        private static void CreateAnalysisForWord(string word, ISegment segment, int ws,
                                                  bool fCreateGlosses)
        {
            FdoCache               cache              = segment.Cache;
            IWfiWordformFactory    wfFactory          = cache.ServiceLocator.GetInstance <IWfiWordformFactory>();
            IWfiWordformRepository wfRepo             = cache.ServiceLocator.GetInstance <IWfiWordformRepository>();
            IWfiGlossFactory       glossFactory       = cache.ServiceLocator.GetInstance <IWfiGlossFactory>();
            IWfiAnalysisFactory    wfiAnalysisFactory = cache.ServiceLocator.GetInstance <IWfiAnalysisFactory>();

            ITsString    tssForm = cache.TsStrFactory.MakeString(word, cache.DefaultVernWs);
            IWfiWordform form;
            IAnalysis    analysis;

            if (wfRepo.TryGetObject(tssForm, out form))
            {
                analysis = (fCreateGlosses) ? (IAnalysis)form.AnalysesOC.First().MeaningsOC.First() : form;
            }
            else
            {
                analysis = form = wfFactory.Create(tssForm);
                IWfiAnalysis actualWfiAnalysis = wfiAnalysisFactory.Create();
                form.AnalysesOC.Add(actualWfiAnalysis);
                if (fCreateGlosses)
                {
                    IWfiGloss gloss = glossFactory.Create();
                    actualWfiAnalysis.MeaningsOC.Add(gloss);
                    gloss.Form.set_String(ws, "G" + word + "g");
                    analysis = gloss;
                }
            }
            segment.AnalysesRS.Add(analysis);
        }
示例#3
0
        private void SetUpGlosses(ISegment seg, params string[] glosses)
        {
            var servloc = Cache.ServiceLocator;
            IWfiAnalysisFactory analFactory  = servloc.GetInstance <IWfiAnalysisFactory>();
            IWfiGlossFactory    glossFactory = servloc.GetInstance <IWfiGlossFactory>();

            UndoableUnitOfWorkHelper.Do("Undo add glosses", "Redo add glosses", Cache.ActionHandlerAccessor,
                                        () =>
            {
                for (int i = 0; i < glosses.Length; i++)
                {
                    if (glosses[i] == null)
                    {
                        continue;
                    }
                    IWfiWordform wfiWordform = (IWfiWordform)seg.AnalysesRS[i];
                    IWfiAnalysis analysis    = analFactory.Create(wfiWordform, glossFactory);
                    IWfiGloss gloss          = analysis.MeaningsOC.First();
                    seg.AnalysesRS[i]        = gloss;
                    gloss.Form.SetAnalysisDefaultWritingSystem(glosses[i]);
                }
            });
        }
示例#4
0
		/// <summary>
		///
		/// </summary>
		/// <param name="owner"></param>
		/// <param name="glossFactory">For creating a gloss for the first in analysis.Meanings</param>
		/// <returns></returns>
		public IWfiAnalysis Create(IWfiWordform owner, IWfiGlossFactory glossFactory)
		{
			var waNew = Create();
			owner.AnalysesOC.Add(waNew);
			var newGloss = glossFactory.Create();
			waNew.MeaningsOC.Add(newGloss);
			return waNew;
		}