Exemple #1
0
        public GatherWordListTask(IGatherWordListConfig config,
                                  LexEntryRepository lexEntryRepository,
                                  ViewTemplate viewTemplate,
                                  TaskMemoryRepository taskMemoryRepository)

            : base(config, lexEntryRepository, viewTemplate, taskMemoryRepository)
        {
            _viewTemplate = viewTemplate;
            Guard.AgainstNull(config.WordListFileName, "config.WordListFileName");
            Guard.AgainstNull(config.WordListWritingSystemIdOfOldFlatWordList, "config.WordListWritingSystemIdOfOldFlatWordList");
            Guard.AgainstNull(viewTemplate, "viewTemplate");

            //enhance: this isn't really true anymore, as we're moving to wordpack (where it's the folder)
            //for now, this is figure out more carefully in GetPathToUse
            _usingLiftFile = ".lift" == Path.GetExtension(config.WordListFileName).ToLower();

            _lexicalUnitWritingSystem =
                viewTemplate.GetFirstNonVoiceWritingSystemForFieldOrThrow(Field.FieldNames.EntryLexicalForm.ToString());
            _lexemeFormListFileName = config.WordListFileName;
            _words = null;
            _preferredPromptingWritingSystemId = config.WordListWritingSystemIdOfOldFlatWordList;
            var f = viewTemplate.GetField(LexSense.WellKnownProperties.Definition);

            Guard.AgainstNull(f, "No field for definition");
            _definitionWritingSystemIds = f.WritingSystemIds;

            f = viewTemplate.GetField(LexSense.WellKnownProperties.Gloss);
            if (f != null)
            {
                _glossWritingSystemIds = f.WritingSystemIds;
            }
            else
            {
                _glossWritingSystemIds = new List <string>();
            }
            if (f != null && f.IsMeaningField)
            {
                _glossMeaningField       = true;
                _meaningWritingSystemIds = _glossWritingSystemIds;
            }
            else
            {
                _meaningWritingSystemIds = _definitionWritingSystemIds;
            }
            if (_meaningWritingSystemIds.Count > 0)
            {
                _preferredPromptingWritingSystemId = _meaningWritingSystemIds[0];
            }
        }
Exemple #2
0
		// private bool _suspendNotificationOfNavigation=false;

		public GatherWordListTask(IGatherWordListConfig config,
									LexEntryRepository lexEntryRepository,
								  ViewTemplate viewTemplate)

				: base(config, lexEntryRepository, viewTemplate)
		{
			if (config.WordListFileName == null)
			{
				throw new ArgumentNullException("wordListFileName");
			}
			if (config.WordListWritingSystemId == null)
			{
				throw new ArgumentNullException("wordListWritingSystemId");
			}
			if (viewTemplate == null)
			{
				throw new ArgumentNullException("viewTemplate");
			}
			Field lexicalFormField =
					viewTemplate.GetField(Field.FieldNames.EntryLexicalForm.ToString());
			if (lexicalFormField == null || lexicalFormField.WritingSystemIds.Count < 1)
			{
				_lexicalUnitWritingSystem =
						BasilProject.Project.WritingSystems.UnknownVernacularWritingSystem;
			}
			else
			{
				string firstWSid = lexicalFormField.WritingSystemIds[0];
				WritingSystem firstWS = BasilProject.Project.WritingSystems[firstWSid];
				_lexicalUnitWritingSystem = firstWS;
			}

			_wordListFileName = config.WordListFileName;
			_words = null;
			_writingSystemIdForWordListWords = config.WordListWritingSystemId;
		}