public PersistObject ToPersistObject() { PersistObject obj = new PersistObject("LabelDef"); obj.AddAttribute("source", _labelSource.ToString()); obj.AddAttribute("enabled", _enableLabeling.ToString()); obj.AddAttribute("field", _fieldname != null ? _fieldname : string.Empty); obj.AddAttribute("fields", _fields != null ? string.Join(",", _fields) : string.Empty); obj.AddAttribute("ruler", _masLabelRuler.ToString()); obj.AddAttribute("invalidvalue", _invalidValue != null ? _invalidValue.ToString() : string.Empty); obj.AddAttribute("autotonewline", _autoToNewline.ToString()); obj.AddAttribute("charcountperline", _charcountPerLine.ToString()); //Font PersistObject fontObj = new PersistObject("Font"); fontObj.AddAttribute("font", FontHelper.FontToString(_labelFont)); fontObj.AddAttribute("color", ColorHelper.ColorToString(_foreColor)); fontObj.AddAttribute("maskcolor", ColorHelper.ColorToString(_maskColor)); obj.AddSubNode(fontObj); //_scaleRange if (_displayScaleRange == null) { _displayScaleRange = new ScaleRange(-1, 1); } PersistObject rangeObj = (_displayScaleRange as IPersistable).ToPersistObject(); obj.AddSubNode(rangeObj); //_containerSymbol if (_containerSymbol != null) { PersistObject csymobj = _containerSymbol.ToPersistObject(); obj.AddSubNode(csymobj); } return(obj); }
public override PersistObject ToPersistObject() { PersistObject obj = new PersistObject("Symbol"); obj.AddAttribute("type", Path.GetFileName(this.GetType().Assembly.Location) + "," + this.GetType().ToString()); obj.AddAttribute("size", _fontSize.ToString()); if (_charItem != null) { obj.AddAttribute("font", FontHelper.FontToString(_charItem.Font)); obj.AddAttribute("code", _charItem.Code.ToString()); } obj.AddAttribute("color", ColorHelper.ColorToString(_color)); return(obj); }
/// ------------------------------------------------------------------------------------ public void Save() { var project = new XElement("Project"); project.Add(new XElement("Iso639Code", Iso639Code.NullTrim())); project.Add(!TranscriptionFont.Equals(Program.DialogFont) ? new XElement("transcriptionFont", FontHelper.FontToString(TranscriptionFont)) : new XElement("transcriptionFont", null)); project.Add(!FreeTranslationFont.Equals(Program.DialogFont) ? new XElement("freeTranslationFont", FontHelper.FontToString(FreeTranslationFont)) : new XElement("freeTranslationFont", null)); var autoSegmenterSettings = new XElement("AutoSegmentersettings"); project.Add(autoSegmenterSettings); if (AutoSegmenterMinimumSegmentLengthInMilliseconds != Settings.Default.DefaultAutoSegmenterMinimumSegmentLengthInMilliseconds || AutoSegmenterMaximumSegmentLengthInMilliseconds != Settings.Default.DefaultAutoSegmenterMaximumSegmentLengthInMilliseconds || AutoSegmenterPreferrerdPauseLengthInMilliseconds != Settings.Default.DefaultAutoSegmenterPreferrerdPauseLengthInMilliseconds || !AutoSegmenterOptimumLengthClampingFactor.Equals(Settings.Default.DefaultAutoSegmenterOptimumLengthClampingFactor)) { autoSegmenterSettings.Add(new XAttribute("minSegmentLength", AutoSegmenterMinimumSegmentLengthInMilliseconds)); autoSegmenterSettings.Add(new XAttribute("maxSegmentLength", AutoSegmenterMaximumSegmentLengthInMilliseconds)); autoSegmenterSettings.Add(new XAttribute("preferrerdPauseLength", AutoSegmenterPreferrerdPauseLengthInMilliseconds)); autoSegmenterSettings.Add(new XAttribute("optimumLengthClampingFactor", AutoSegmenterOptimumLengthClampingFactor)); } else { autoSegmenterSettings.Add(new XAttribute("minSegmentLength", "0")); autoSegmenterSettings.Add(new XAttribute("maxSegmentLength", "0")); autoSegmenterSettings.Add(new XAttribute("preferrerdPauseLength", "0")); autoSegmenterSettings.Add(new XAttribute("optimumLengthClampingFactor", "0")); } // metadata for archiving project.Add(new XElement("Title", Title.NullTrim())); project.Add(new XElement("FundingProjectTitle", FundingProjectTitle.NullTrim())); project.Add(new XElement("ProjectDescription", ProjectDescription.NullTrim())); project.Add(new XElement("VernacularISO3CodeAndName", VernacularISO3CodeAndName.NullTrim())); project.Add(new XElement("Location", Location.NullTrim())); project.Add(new XElement("Region", Region.NullTrim())); project.Add(new XElement("Country", Country.NullTrim() ?? "Unspecified")); project.Add(new XElement("Continent", Continent.NullTrim() ?? "Unspecified")); project.Add(new XElement("ContactPerson", ContactPerson.NullTrim())); project.Add(new XElement("AccessProtocol", AccessProtocol.NullTrim())); project.Add(new XElement("DateAvailable", DateAvailable.NullTrim())); project.Add(new XElement("RightsHolder", RightsHolder.NullTrim())); project.Add(new XElement("Depositor", Depositor.NullTrim())); project.Add(new XElement("IMDIOutputDirectory", IMDIOutputDirectory.NullTrim())); int retryCount = 1; Exception error; do { try { error = null; project.Save(SettingsFilePath); break; } catch (Exception e) { error = e; if (retryCount-- == 0) { break; } Thread.Sleep(250); } } while (true); if (error != null) { ErrorReport.NotifyUserOfProblem(error, LocalizationManager.GetString("MainWindow.ProblemSavingSayMoreProject", "There was a problem saving the SayMore project:\r\n\r\n{0}"), SettingsFilePath); } if (_accessProtocolChanged) { foreach (var editor in Program.GetControlsOfType <SessionBasicEditor>(Program.ProjectWindow)) { editor.SetAccessProtocol(); } _accessProtocolChanged = false; } }