private void CommonAddWS(bool isAnalysis, MenuItem selectedMI) { IWritingSystem ws = null; if (selectedMI.Text == LexTextControls.ks_DefineNew_) { IEnumerable <IWritingSystem> newWritingSystems; if (WritingSystemPropertiesDialog.ShowNewDialog(FindForm(), m_cache, m_cache.ServiceLocator.WritingSystemManager, m_cache.ServiceLocator.WritingSystems, m_helpTopicProvider, m_app, m_stylesheet, true, null, out newWritingSystems)) { ws = newWritingSystems.First(); } } else { ws = selectedMI.Tag as IWritingSystem; } if (ws != null) { m_wsNew = ws; // now add the ws to the FDO list for it NonUndoableUnitOfWorkHelper.Do(m_cache.ActionHandlerAccessor, () => { // Add a global writing system to the local writing system store. (Replace // does this if there's nothing to replace.) if (m_wsNew.Handle == 0) { m_cache.ServiceLocator.WritingSystemManager.Replace(m_wsNew); } if (isAnalysis) { m_cache.ServiceLocator.WritingSystems.AnalysisWritingSystems.Add(m_wsNew); if (!m_cache.ServiceLocator.WritingSystems.CurrentAnalysisWritingSystems.Contains(m_wsNew)) { m_cache.ServiceLocator.WritingSystems.CurrentAnalysisWritingSystems.Add(m_wsNew); } } else { m_cache.ServiceLocator.WritingSystems.VernacularWritingSystems.Add(m_wsNew); if (!m_cache.ServiceLocator.WritingSystems.CurrentVernacularWritingSystems.Contains(m_wsNew)) { m_cache.ServiceLocator.WritingSystems.CurrentVernacularWritingSystems.Add(m_wsNew); } } ProgressDialogWithTask.ImportTranslatedListsForWs(this.FindForm(), m_cache, m_wsNew.IcuLocale); }); if (WritingSystemAdded != null) { WritingSystemAdded(this, new EventArgs()); } } }
/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// <param name="comboWS">Combo box containing the list of writing systems</param> /// <param name="defaultName">project name, or null</param> /// ------------------------------------------------------------------------------------ private IWritingSystem[] DisplayNewWritingSystemProperties(ComboBox comboWS, string defaultName) { IWritingSystemContainer wsContainer = new MemoryWritingSystemContainer(m_wsManager.LocalWritingSystems, m_wsManager.LocalWritingSystems, Enumerable.Empty <IWritingSystem>(), Enumerable.Empty <IWritingSystem>(), Enumerable.Empty <IWritingSystem>()); IEnumerable <IWritingSystem> newWritingSystems; if (WritingSystemPropertiesDialog.ShowNewDialog(this, null, m_wsManager, wsContainer, m_helpTopicProvider, (IApp)m_helpTopicProvider, null, false, defaultName, out newWritingSystems)) { UpdateLanguageCombos(); string selectedWsId = newWritingSystems.First().Id; comboWS.SelectedItem = comboWS.Items.Cast <IWritingSystem>().First(ws => ws.Id == selectedWsId); return(newWritingSystems.ToArray()); } return(new IWritingSystem[0]); }