コード例 #1
0
ファイル: LabelDef.cs プロジェクト: configare/hispeed
        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);
        }
コード例 #2
0
ファイル: MarkerSymbol.cs プロジェクト: configare/hispeed
        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);
        }
コード例 #3
0
        /// ------------------------------------------------------------------------------------
        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;
            }
        }