protected internal bool OnAddTexts(object args) { CheckDisposed(); // get saved scripture choices var interestingTextsList = GetInterestingTextList(); var interestingTexts = interestingTextsList.InterestingTexts.ToArray(); IFilterTextsDialog <IStText> dlg = null; try { if (FwUtils.IsOkToDisplayScriptureIfPresent) { dlg = new FilterTextsDialogTE(Cache, interestingTexts, m_mediator.HelpTopicProvider, this); } else { dlg = new FilterTextsDialog(Cache, interestingTexts, m_mediator.HelpTopicProvider); } if (dlg.ShowDialog(((IApp)m_mediator.PropertyTable.GetValue("App")).ActiveMainWindow) == DialogResult.OK) { interestingTextsList.SetInterestingTexts(dlg.GetListOfIncludedTexts()); UpdateFilterStatusBarPanel(); } } finally { if (dlg != null) { ((IDisposable)dlg).Dispose(); } } return(true); }
protected internal bool OnAddTexts(object args) { CheckDisposed(); // get saved scripture choices var interestingTextsList = GetInterestingTextList(); var interestingTexts = interestingTextsList.InterestingTexts.ToArray(); using (var dlg = new FilterTextsDialog(m_propertyTable.GetValue <IApp>("App"), Cache, interestingTexts, m_propertyTable.GetValue <IHelpTopicProvider>("HelpTopicProvider"))) { if (dlg.ShowDialog(m_propertyTable.GetValue <Form>("window")) == DialogResult.OK) { interestingTextsList.SetInterestingTexts(dlg.GetListOfIncludedTexts()); UpdateFilterStatusBarPanel(); } } return(true); }
/// <summary> /// In SE Fieldworks we can't depend upon ScrControls.dll We need some decoupling to /// prevent the linker from trying to load ScrControls.dll and crashing. /// This seems to work. (Although I wonder if we could get away with just calling this method /// if IsTEInstalled?) /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void LaunchFilterTextsDialog(object sender, EventArgs args) { IFilterTextsDialog <IStText> dlg = null; try { var interestingTextsList = InterestingTextsDecorator.GetInterestingTextList(m_mediator, m_cache.ServiceLocator); var textsToChooseFrom = new List <IStText>(interestingTextsList.InterestingTexts); if (!FwUtils.IsTEInstalled) { // TE is not installed, so remove scripture from the list textsToChooseFrom = textsToChooseFrom.Where(text => !ScriptureServices.ScriptureIsResponsibleFor(text)).ToList(); } var interestingTexts = textsToChooseFrom.ToArray(); if (FwUtils.IsTEInstalled) { dlg = (IFilterTextsDialog <IStText>)DynamicLoader.CreateObject( "ScrControls.dll", "SIL.FieldWorks.Common.Controls.FilterTextsDialogTE", m_cache, interestingTexts, m_mediator.HelpTopicProvider, m_bookImporter); } else { dlg = new FilterTextsDialog(m_cache, interestingTexts, m_mediator.HelpTopicProvider); } // LT-12181: Was 'PruneToSelectedTexts(text) and most others were deleted. // We want 'PruneToInterestingTextsAndSelect(interestingTexts, selectedText)' dlg.PruneToInterestingTextsAndSelect(interestingTexts, (IStText)m_objRoot); // LT-12140 Dialog name shouldn't change from Choose Texts //dlg.Text = ITextStrings.ksExportInterlinearizedTexts; dlg.TreeViewLabel = ITextStrings.ksSelectSectionsExported; if (dlg.ShowDialog(this) == DialogResult.OK) { m_objs.AddRange(dlg.GetListOfIncludedTexts()); } } finally { if (dlg != null) { ((IDisposable)dlg).Dispose(); } } }
private void LaunchFilterTextsDialog(object sender, EventArgs args) { IFilterTextsDialog <IStText> dlg = null; try { var interestingTextsList = InterestingTextsDecorator.GetInterestingTextList(m_mediator, m_cache.ServiceLocator); var textsToChooseFrom = new List <IStText>(interestingTextsList.InterestingTexts); if (!FwUtils.IsOkToDisplayScriptureIfPresent) { // Mustn't show any Scripture, so remove scripture from the list textsToChooseFrom = textsToChooseFrom.Where(text => !ScriptureServices.ScriptureIsResponsibleFor(text)).ToList(); } var interestingTexts = textsToChooseFrom.ToArray(); if (FwUtils.IsOkToDisplayScriptureIfPresent) { dlg = new FilterTextsDialogTE(m_cache, interestingTexts, m_mediator.HelpTopicProvider, m_bookImporter); } else { dlg = new FilterTextsDialog(m_cache, interestingTexts, m_mediator.HelpTopicProvider); } // LT-12181: Was 'PruneToSelectedTexts(text) and most others were deleted. // We want 'PruneToInterestingTextsAndSelect(interestingTexts, selectedText)' dlg.PruneToInterestingTextsAndSelect(interestingTexts, (IStText)m_objRoot); dlg.TreeViewLabel = ITextStrings.ksSelectSectionsExported; if (dlg.ShowDialog(this) == DialogResult.OK) { m_objs.AddRange(dlg.GetListOfIncludedTexts()); } } finally { if (dlg != null) { ((IDisposable)dlg).Dispose(); } } }
protected internal bool OnAddTexts(object args) { CheckDisposed(); // get saved scripture choices var interestingTextsList = GetInterestingTextList(); var interestingTexts = interestingTextsList.InterestingTexts.ToArray(); IFilterTextsDialog <IStText> dlg = null; try { if (FwUtils.IsTEInstalled) { dlg = (IFilterTextsDialog <IStText>)DynamicLoader.CreateObject( "ScrControls.dll", "SIL.FieldWorks.Common.Controls.FilterTextsDialogTE", Cache, interestingTexts, m_mediator.HelpTopicProvider, (IBookImporter)this); } else { dlg = new FilterTextsDialog(Cache, interestingTexts, m_mediator.HelpTopicProvider); } if (dlg.ShowDialog(((IApp)m_mediator.PropertyTable.GetValue("App")).ActiveMainWindow) == DialogResult.OK) { interestingTextsList.SetInterestingTexts(dlg.GetListOfIncludedTexts()); UpdateFilterStatusBarPanel(); } } finally { if (dlg != null) { ((IDisposable)dlg).Dispose(); } } return(true); }
/// <summary> /// Allow the user to export more than one to a single file (LT-11483) /// </summary> /// <returns>true iff export can proceed to choosing an output file</returns> protected override bool PrepareForExport() { m_objs.Clear(); var interestingTextsList = InterestingTextsDecorator.GetInterestingTextList(m_mediator, m_propertyTable, m_cache.ServiceLocator); var textsToShow = interestingTextsList.InterestingTexts; var isOkToDisplayScripture = m_cache.ServiceLocator.GetInstance <IScrBookRepository>().AllInstances().Any(); if (!isOkToDisplayScripture) { // Mustn't show any Scripture, so remove scripture from the list textsToShow = textsToShow.Where(text => !ScriptureServices.ScriptureIsResponsibleFor(text)); } var selectedTexts = new[] { (IStText)m_objRoot }; using (var dlg = new FilterTextsDialog(m_propertyTable.GetValue <IApp>("App"), m_cache, selectedTexts, m_propertyTable.GetValue <IHelpTopicProvider>("HelpTopicProvider"))) { dlg.TextsToShow = textsToShow.ToList(); dlg.TreeViewLabel = ITextStrings.ksSelectSectionsExported; if (dlg.ShowDialog(this) == DialogResult.OK) { m_objs.AddRange(dlg.GetListOfIncludedTexts()); } } return(m_objs.Count > 0); }