コード例 #1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Preloads the data used by TE.
        /// </summary>
        /// <param name="cache">The cache.</param>
        /// <param name="splashScreen">The splash screen (can be null).</param>
        /// ------------------------------------------------------------------------------------
        public static void PreloadData(FdoCache cache, IFwSplashScreen splashScreen)
        {
            if (splashScreen != null)
            {
                splashScreen.ProgressBar.SetRange(0, 21);                 // we call 21 x UpdateProgress() below
                splashScreen.ProgressBar.StepSize = 1;
                splashScreen.ProgressBar.Position = 0;
            }

            // Preload all vectors for scripture
            // NOTE: splitting up the loading of flids off of the same object type (e.g. StText)
            // lets us create a smoother progress bar and doesn't seem to produce any noticable
            // performance hit!
            cache.PreloadIfMissing(cache.LangProject.TranslatedScriptureOAHvo,
                                   (int)Scripture.ScriptureTags.kflidScriptureBooks, 0);
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)ScrBook.ScrBookTags.kflidSections, "ScrBook");
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)Scripture.ScriptureTags.kflidStyles, "Scripture");
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningAtomicProp((int)ScrSection.ScrSectionTags.kflidHeading, "ScrSection");
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningAtomicProp((int)ScrSection.ScrSectionTags.kflidContent, "ScrSection");
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
                                              new int[] { (int)ScrBook.ScrBookTags.kflidFootnotes });
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
                                              new int[] { (int)ScrBook.ScrBookTags.kflidTitle });
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
                                              new int[] { (int)ScrSection.ScrSectionTags.kflidHeading });
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)StText.StTextTags.kflidParagraphs, "StText",
                                              new int[] { (int)ScrSection.ScrSectionTags.kflidContent });
            UpdateProgress(splashScreen);
            cache.LoadAllOfAnOwningVectorProp((int)StTxtPara.StTxtParaTags.kflidTranslations, "StTxtPara");
            UpdateProgress(splashScreen);

            // also preload all scripture, sections, paragraphs and footnotes
            CmObject.LoadDataForFlids(typeof(Scripture), cache, null,
                                      LangProject.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(StStyle), cache,
                                      new int[] { (int)LangProject.LangProjectTags.kflidTranslatedScripture },
                                      Scripture.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(ScrSection), cache,
                                      new int[] { (int)Scripture.ScriptureTags.kflidScriptureBooks },
                                      ScrBook.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(StFootnote), cache,
                                      new int[] { (int)Scripture.ScriptureTags.kflidScriptureBooks },
                                      ScrBook.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
                                      new int[] { (int)ScrBook.ScrBookTags.kflidFootnotes }, StText.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
                                      new int[] { (int)ScrBook.ScrBookTags.kflidTitle }, StText.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
                                      new int[] { (int)ScrSection.ScrSectionTags.kflidHeading }, StText.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(StTxtPara), cache,
                                      new int[] { (int)ScrSection.ScrSectionTags.kflidContent }, StText.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(CmTranslation), cache,
                                      new int[] { (int)CmTranslation.CmTranslationTags.kflidStatus }, CmTranslation.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(CmTranslation), cache,
                                      new int[] { (int)CmTranslation.CmTranslationTags.kflidTranslation }, CmTranslation.FullViewName);
            UpdateProgress(splashScreen);
            CmObject.LoadDataForFlids(typeof(CmTranslation), cache,
                                      new int[] { (int)CmTranslation.CmTranslationTags.kflidType }, CmTranslation.FullViewName);
            UpdateProgress(splashScreen);
        }