public bool OnWritingSystemDeleted(object param) { var currentConfig = GetCurrentConfiguration(m_propertyTable, true, null); var cache = m_propertyTable.GetValue <LcmCache>("cache"); var configuration = new DictionaryConfigurationModel(currentConfig, cache); if (configuration.HomographConfiguration != null && ((string[])param).Any(x => x.ToString() == configuration.HomographConfiguration.HomographWritingSystem)) { configuration.HomographConfiguration.HomographWritingSystem = string.Empty; configuration.HomographConfiguration.CustomHomographNumbers = string.Empty; configuration.Save(); m_mediator.SendMessage("MasterRefresh", null); } return(true); }
public bool OnWritingSystemUpdated(object param) { if (param == null) { return(false); } var currentConfig = GetCurrentConfiguration(m_propertyTable, true, null); var cache = m_propertyTable.GetValue <LcmCache>("cache"); var configuration = new DictionaryConfigurationModel(currentConfig, cache); DictionaryConfigurationController.UpdateWritingSystemInModel(configuration, cache); configuration.Save(); return(true); }
public void Setup() { // Start out with a clean project configuration directory, and with a non-random name so it's easier to examine during testing. _projectConfigPath = Path.Combine(Path.GetTempPath(), "Dictionary"); if (Directory.Exists(_projectConfigPath)) { Directory.Delete(_projectConfigPath, true); } FileUtils.EnsureDirectoryExists(_projectConfigPath); _reversalProjectConfigPath = Path.Combine(Path.GetTempPath(), "ReversalIndex"); if (Directory.Exists(_reversalProjectConfigPath)) { Directory.Delete(_reversalProjectConfigPath, true); } FileUtils.EnsureDirectoryExists(_reversalProjectConfigPath); _controller = new DictionaryConfigurationImportController(Cache, _projectConfigPath, new List <DictionaryConfigurationModel>()); _reversalController = new DictionaryConfigurationImportController(Cache, _reversalProjectConfigPath, new List <DictionaryConfigurationModel>()); // Set up data for import testing. _zipFile = null; _reversalZipFile = null; // Prepare configuration to export var configurationToExport = new DictionaryConfigurationModel { Label = configLabel, Publications = new List <string> { "Main Dictionary", "unknown pub 1", "unknown pub 2" }, Parts = new List <ConfigurableDictionaryNode> { new ConfigurableDictionaryNode { FieldDescription = "LexEntry" } }, FilePath = Path.GetTempPath() + configFilename }; CssGeneratorTests.PopulateFieldsForTesting(configurationToExport); _pathToConfiguration = configurationToExport.FilePath; // Create XML file configurationToExport.Save(); // Prepare configuration to export var configurationReversalToExport = new DictionaryConfigurationModel { Label = reversalConfigLabel, WritingSystem = "en", Publications = new List <string> { "Main Dictionary", "unknown pub 1", "unknown pub 2" }, Parts = new List <ConfigurableDictionaryNode> { new ConfigurableDictionaryNode { FieldDescription = "LexEntry" } }, FilePath = Path.GetTempPath() + reversalConfigFilename }; CssGeneratorTests.PopulateFieldsForTesting(configurationReversalToExport); _reversalPathToConfiguration = configurationReversalToExport.FilePath; configurationReversalToExport.Save(); // Export a configuration that we know how to import _zipFile = Path.GetTempFileName(); _reversalZipFile = Path.GetTempFileName() + 1; // Add a test style to the cache NonUndoableUnitOfWorkHelper.Do(Cache.ActionHandlerAccessor, () => { var styleFactory = Cache.ServiceLocator.GetInstance <IStStyleFactory>(); styleFactory.Create(Cache.LangProject.StylesOC, "Dictionary-Headword", ContextValues.InternalConfigureView, StructureValues.Undefined, FunctionValues.Line, true, 2, true); var testStyle = styleFactory.Create(Cache.LangProject.StylesOC, "TestStyle", ContextValues.InternalConfigureView, StructureValues.Undefined, FunctionValues.Line, true, 2, false); testStyle.Usage.set_String(Cache.DefaultAnalWs, "Test Style"); var normalStyle = styleFactory.Create(Cache.LangProject.StylesOC, "Normal", ContextValues.InternalConfigureView, StructureValues.Undefined, FunctionValues.Line, false, 2, true); var propsBldr = TsPropsBldrClass.Create(); propsBldr.SetIntPropValues((int)FwTextPropType.ktptBackColor, (int)FwTextPropVar.ktpvDefault, 0x2BACCA); // arbitrary color to create para element normalStyle.Rules = propsBldr.GetTextProps(); var styleWithNamedColors = styleFactory.Create(Cache.LangProject.StylesOC, "Nominal", ContextValues.InternalConfigureView, StructureValues.Undefined, FunctionValues.Line, false, 2, false); styleWithNamedColors.BasedOnRA = normalStyle; propsBldr = TsPropsBldrClass.Create(); propsBldr.SetIntPropValues((int)FwTextPropType.ktptBackColor, (int)FwTextPropVar.ktpvDefault, NamedRedBGR); propsBldr.SetIntPropValues((int)FwTextPropType.ktptForeColor, (int)FwTextPropVar.ktpvDefault, NamedRedBGR); styleWithNamedColors.Rules = propsBldr.GetTextProps(); var styleWithCustomColors = styleFactory.Create(Cache.LangProject.StylesOC, "Abnormal", ContextValues.InternalConfigureView, StructureValues.Undefined, FunctionValues.Line, false, 2, false); styleWithCustomColors.BasedOnRA = normalStyle; propsBldr = TsPropsBldrClass.Create(); propsBldr.SetIntPropValues((int)FwTextPropType.ktptBackColor, (int)FwTextPropVar.ktpvDefault, CustomRedBGR); propsBldr.SetIntPropValues((int)FwTextPropType.ktptForeColor, (int)FwTextPropVar.ktpvDefault, CustomRedBGR); styleWithCustomColors.Rules = propsBldr.GetTextProps(); DictionaryConfigurationManagerController.ExportConfiguration(configurationToExport, _zipFile, Cache); DictionaryConfigurationManagerController.ExportConfiguration(configurationReversalToExport, _reversalZipFile, Cache); Cache.LangProject.StylesOC.Clear(); }); Assert.That(File.Exists(_zipFile), "Unit test not set up right"); Assert.That(new FileInfo(_zipFile).Length, Is.GreaterThan(0), "Unit test not set up right"); // Clear the configuration away so we can see it gets imported File.Delete(_pathToConfiguration); Assert.That(!File.Exists(_pathToConfiguration), "Unit test not set up right. Configuration should be out of the way for testing export."); Assert.That(_controller._configurations.All(config => config.Label != configLabel), "Unit test not set up right. A config exists with the same label as the config we will import."); Assert.That(_controller._configurations.All(config => config.Label != configLabel), "Unit test set up unexpectedly. Such a config should not be registered."); File.Delete(_reversalPathToConfiguration); Assert.That(!File.Exists(_reversalPathToConfiguration), "Unit test not set up right. Reversal configuration should be out of the way for testing export."); Assert.That(_reversalController._configurations.All(config => config.Label != configLabel), "Unit test not set up right. A reversal config exists with the same label as the reversal config we will import."); Assert.That(_reversalController._configurations.All(config => config.Label != configLabel), "Unit test set up unexpectedly. Such a reversal config should not be registered."); }