Exemple #1
0
        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());
                }
            }
        }
Exemple #2
0
        /// ------------------------------------------------------------------------------------
        /// <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]);
        }