コード例 #1
0
        private ViewTemplate MakeViewTemplate()
        {
            string[] analysisWritingSystemIds = new string[]
            {
                WritingSystemsIdsForTests.AnalysisIdForTest
            };
            string[] vernacularWritingSystemIds = new string[]
            {
                WritingSystemsIdsForTests.VernacularIdForTest
            };
            ViewTemplate viewTemplate = new ViewTemplate();
            Field        field        = new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                                                  "LexEntry",
                                                  vernacularWritingSystemIds);

            field.DisplayName = "Word";
            viewTemplate.Add(field);
#if GlossMeaning
            string meaningFieldName = Field.FieldNames.SenseGloss.ToString();
#else
            string meaningFieldName = LexSense.WellKnownProperties.Definition;
#endif
            viewTemplate.Add(new Field(meaningFieldName, "LexSense", analysisWritingSystemIds));
            viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
                                       "LexExampleSentence",
                                       vernacularWritingSystemIds));
            viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
                                       "LexExampleSentence",
                                       analysisWritingSystemIds));

            Field rare = new Field("rare", "LexSense", analysisWritingSystemIds);
            rare.Visibility = CommonEnumerations.VisibilitySetting.NormallyHidden;
            viewTemplate.Add(rare);
            return(viewTemplate);
        }
コード例 #2
0
		public void Setup()
		{
			BasilProject.InitializeForTests();

			_FilePath = Path.GetTempFileName();
			_lexEntryRepository = new LexEntryRepository(_FilePath);

			_outputPath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());

			_writingSystemIds = new List<string>(new string[] {"red", "green", "blue"});
			_headwordWritingSystem = new WritingSystem(_writingSystemIds[0],
													   new Font(FontFamily.GenericSansSerif, 10));

			_viewTemplate = new ViewTemplate();

			_viewTemplate.Add(new Field(LexEntry.WellKnownProperties.Citation,
										"LexEntry",
										new string[] {"blue", "red"}));
			_viewTemplate.Add(new Field(LexEntry.WellKnownProperties.LexicalUnit,
										"LexEntry",
										new string[] {"red", "green", "blue"}));
			_viewTemplate.Add(new Field(LexEntry.WellKnownProperties.BaseForm,
										"LexEntry",
										_writingSystemIds));

			Field visibleCustom = new Field("VisibleCustom",
											"LexEntry",
											_writingSystemIds,
											Field.MultiplicityType.ZeroOr1,
											"MultiText");
			visibleCustom.Visibility = CommonEnumerations.VisibilitySetting.Visible;
			visibleCustom.DisplayName = "VisibleCustom";
			_viewTemplate.Add(visibleCustom);
		}
コード例 #3
0
ファイル: DictionaryTaskTests.cs プロジェクト: sillsdev/wesay
        public void Setup()
        {
            _tempFolder = new TemporaryFolder();
            _filePath   = _tempFolder.GetTemporaryFile();

            WeSayProjectTestHelper.InitializeForTests();
            string[] vernacularWritingSystemIds = new string[]
            {
                WritingSystemsIdsForTests.VernacularIdForTest
            };
            _viewTemplate = new ViewTemplate();
            _viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                                        "LexEntry",
                                        vernacularWritingSystemIds));
            _viewTemplate.Add(new Field("Note",
                                        "LexEntry",
                                        new string[] { "en" },
                                        Field.MultiplicityType.ZeroOr1,
                                        "MultiText"));
            _lexEntryRepository = new LexEntryRepository(_filePath);

            EntryViewControl.Factory entryViewFactory = (() => new EntryViewControl());
            _dictControlFactory = (memory => new DictionaryControl(entryViewFactory, _lexEntryRepository, _viewTemplate, memory, new StringLogger()));

            _taskMemoryRepository = new TaskMemoryRepository();
            _task = new DictionaryTask(_dictControlFactory, DictionaryBrowseAndEditConfiguration.CreateForTests("definition"), _lexEntryRepository,
                                       _taskMemoryRepository);

//            _task = new DictionaryTask( DictionaryBrowseAndEditConfiguration.CreateForTests(),  _lexEntryRepository,
//                _viewTemplate, new TaskMemoryRepository(),   new StringLogger())};//, new UserSettingsForTask());
        }
コード例 #4
0
ファイル: ViewTemplateTests.cs プロジェクト: sillsdev/wesay
        private static ViewTemplate PopulateViewTemplate()
        {
            var f = new ViewTemplate();

            f.Add(new Field("field1", "LexEntry", new[] { "en", "br", "th" }));
            f.Add(new Field("field2", "LexEntry", new[] { "th" }));
            f.Add(new Field("field2", "LexEntry", new[] { "en", "br" }));
            return(f);
        }
コード例 #5
0
        public void Setup()
        {
            WeSayProjectTestHelper.InitializeForTests();
            _glossingLanguageWSId   = WritingSystemsIdsForTests.AnalysisIdForTest;
            _vernacularLanguageWSId = WritingSystemsIdsForTests.VernacularIdForTest;
            BasilProject.Project.WritingSystems.Set(WritingSystemDefinition.Parse("fr"));

            _tempFolder             = new TemporaryFolder();
            _simpleWordListFilePath = _tempFolder.GetTemporaryFile();
//            _liftWordListFile = new TempLiftFile("wordlist.lift",_tempFolder, LiftXml, LiftIO.Validation.Validator.LiftVersion);
            _filePath = _tempFolder.GetTemporaryFile();

            _lexEntryRepository = new LexEntryRepository(_filePath);             // InMemoryRecordListManager();
            File.WriteAllLines(_simpleWordListFilePath, _words);
            _viewTemplate = new ViewTemplate();
            _viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                                        "LexEntry",
                                        new string[]
            {
                WritingSystemsIdsForTests.VernacularIdForTest
            }));

            _viewTemplate.Add(
                new Field(
                    LexSense.WellKnownProperties.Definition.ToString(),
                    "LexSense",
                    new string[]
            {
                WritingSystemsIdsForTests.AnalysisIdForTest,
                "fr"
            }
                    )
                );

            _viewTemplate.Add(
                new Field(
                    LexSense.WellKnownProperties.Gloss.ToString(),
                    "LexSense",
                    new string[]
            {
                WritingSystemsIdsForTests.AnalysisIdForTest,
                "fr"
            }
                    )
                );
            _catalog = new WordListCatalog();
            _catalog.Add(_simpleWordListFilePath, new WordListDescription("en", "label", "longLabel", "description"));
            _task = new GatherWordListTask(GatherWordListConfig.CreateForTests(_simpleWordListFilePath, _glossingLanguageWSId, _catalog),
                                           _lexEntryRepository,
                                           _viewTemplate, new TaskMemoryRepository());
        }
コード例 #6
0
		public void SetUp()
		{
			WeSayWordsProject.InitializeForTests();

			_tempFolder = new TemporaryFolder();
			_filePath = _tempFolder.GetTemporaryFile();
			_lexEntryRepository = new LexEntryRepository(_filePath);

#if GlossMeaning
		   _primaryMeaningFieldName = Field.FieldNames.SenseGloss.ToString();
#else
			_primaryMeaningFieldName = LexSense.WellKnownProperties.Definition;
#endif

			string[] analysisWritingSystemIds = new string[]
													{
															BasilProject.Project.WritingSystems.
																	TestWritingSystemAnalId
													};
			string[] vernacularWritingSystemIds = new string[]
													  {
															  BasilProject.Project.WritingSystems.
																	  TestWritingSystemVernId
													  };
			RtfRenderer.HeadWordWritingSystemId = vernacularWritingSystemIds[0];

			_viewTemplate = new ViewTemplate();
			_viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
										"LexEntry",
										vernacularWritingSystemIds));
			_viewTemplate.Add(new Field(_primaryMeaningFieldName,
										"LexSense",
										analysisWritingSystemIds));
			_viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
										"LexExampleSentence",
										vernacularWritingSystemIds));
			_viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
										"LexExampleSentence",
										analysisWritingSystemIds));

			empty = CreateTestEntry("", "", "");
			apple = CreateTestEntry("apple", "red thing", "An apple a day keeps the doctor away.");
			banana = CreateTestEntry("banana", "yellow food", "Monkeys like to eat bananas.");
			car = CreateTestEntry("car",
								  "small motorized vehicle",
								  "Watch out for cars when you cross the street.");
			bike = CreateTestEntry("bike", "vehicle with two wheels", "He rides his bike to school.");
		}
コード例 #7
0
		public void Setup()
		{
			_tempFolder = new TemporaryFolder();
			_wordListFilePath = _tempFolder.GetTemporaryFile();
			_filePath = _tempFolder.GetTemporaryFile();
			//Db4oLexModelHelper.InitializeForNonDbTests();
			WeSayWordsProject.InitializeForTests();

			_lexEntryRepository = new LexEntryRepository(_filePath); // InMemoryRecordListManager();
			_glossingLanguageWSId = BasilProject.Project.WritingSystems.TestWritingSystemAnalId;
			_vernacularLanguageWSId = BasilProject.Project.WritingSystems.TestWritingSystemVernId;

			File.WriteAllLines(_wordListFilePath, _words);
			_viewTemplate = new ViewTemplate();
			_viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
										"LexEntry",
										new string[]
											{
													BasilProject.Project.WritingSystems.
															TestWritingSystemVernId
											}));

			_task = new GatherWordListTask( GatherWordListConfig.CreateForTests( _wordListFilePath,_glossingLanguageWSId),
											_lexEntryRepository,
										   _viewTemplate);
		}
コード例 #8
0
ファイル: SampleTaskBuilder.cs プロジェクト: bbriggs/wesay
		public SampleTaskBuilder(WeSayWordsProject project, ICurrentWorkTask currentWorkTask, IRecordListManager recordListManager)
		{
			_picoContext = CreateContainer();
			_picoContext.RegisterComponentInstance("Project", project);
			_picoContext.RegisterComponentInstance("Current Task Provider", currentWorkTask);
			_picoContext.RegisterComponentInstance("Record List Manager", recordListManager);

			string[] analysisWritingSystemIds = new string[] { project.WritingSystems.AnalysisWritingSystemDefaultId };
			string[] vernacularWritingSystemIds = new string[] {project.WritingSystems.VernacularWritingSystemDefaultId};
			ViewTemplate viewTemplate = new ViewTemplate();
			viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(), vernacularWritingSystemIds));
			viewTemplate.Add(new Field(Field.FieldNames.SenseGloss .ToString(), analysisWritingSystemIds));
			viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(), vernacularWritingSystemIds));
			viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(), analysisWritingSystemIds));
			_picoContext.RegisterComponentInstance("Default Field Inventory", viewTemplate);
		}
コード例 #9
0
        private static ViewTemplate MakeSampleInventory()
        {
            ViewTemplate f = new ViewTemplate();

            f.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                            "LexEntry",
                            new string[] { "xx", "yy" }));
            Field field = new Field(LexSense.WellKnownProperties.Gloss,
                                    "LexSense",
                                    new string[] { "zz" });

            field.Enabled = false;
            //field.Visibility = CommonEnumerations.VisibilitySetting.Invisible;
            f.Add(field);
            return(f);
        }
コード例 #10
0
ファイル: SampleTaskBuilder.cs プロジェクト: sillsdev/wesay
        public SampleTaskBuilder(WeSayWordsProject project, ICurrentWorkTask currentWorkTask, IRecordListManager recordListManager)
        {
            _picoContext = CreateContainer();
            _picoContext.RegisterComponentInstance("Project", project);
            _picoContext.RegisterComponentInstance("Current Task Provider", currentWorkTask);
            _picoContext.RegisterComponentInstance("Record List Manager", recordListManager);

            string[]     analysisWritingSystemIds   = new string[] { project.WritingSystems.AnalysisWritingSystemDefaultId };
            string[]     vernacularWritingSystemIds = new string[] { project.WritingSystems.VernacularWritingSystemDefaultId };
            ViewTemplate viewTemplate = new ViewTemplate();

            viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(), vernacularWritingSystemIds));
            viewTemplate.Add(new Field(Field.FieldNames.SenseGloss.ToString(), analysisWritingSystemIds));
            viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(), vernacularWritingSystemIds));
            viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(), analysisWritingSystemIds));
            _picoContext.RegisterComponentInstance("Default Field Inventory", viewTemplate);
        }
コード例 #11
0
        public void SetUp()
        {
            WeSayProjectTestHelper.InitializeForTests();

            _tempFolder         = new TemporaryFolder();
            _filePath           = _tempFolder.GetTemporaryFile();
            _lexEntryRepository = new LexEntryRepository(_filePath);

#if GlossMeaning
            _primaryMeaningFieldName = Field.FieldNames.SenseGloss.ToString();
#else
            _primaryMeaningFieldName = LexSense.WellKnownProperties.Definition;
#endif

            string[] analysisWritingSystemIds = new string[]
            {
                WritingSystemsIdsForTests.AnalysisIdForTest
            };
            string[] vernacularWritingSystemIds = new string[]
            {
                WritingSystemsIdsForTests.VernacularIdForTest
            };
            RtfRenderer.HeadWordWritingSystemId = vernacularWritingSystemIds[0];

            _viewTemplate = new ViewTemplate();
            _viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                                        "LexEntry",
                                        vernacularWritingSystemIds));
            _viewTemplate.Add(new Field(_primaryMeaningFieldName,
                                        "LexSense",
                                        analysisWritingSystemIds));
            _viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
                                        "LexExampleSentence",
                                        vernacularWritingSystemIds));
            _viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
                                        "LexExampleSentence",
                                        analysisWritingSystemIds));

            empty  = CreateTestEntry("", "", "");
            apple  = CreateTestEntry("apple", "red thing", "An apple a day keeps the doctor away.");
            banana = CreateTestEntry("banana", "yellow food", "Monkeys like to eat bananas.");
            car    = CreateTestEntry("car",
                                     "small motorized vehicle",
                                     "Watch out for cars when you cross the street.");
            bike = CreateTestEntry("bike", "vehicle with two wheels", "He rides his bike to school.");
        }
コード例 #12
0
		private static ViewTemplate MakeViewTemplate(string nameAndQuestionWritingSystem)
		{
			Field semanticDomainField = new Field(LexSense.WellKnownProperties.SemanticDomainsDdp4,
												  "LexSense",
												  new string[] {nameAndQuestionWritingSystem});
			semanticDomainField.OptionsListFile = "Ddp4.xml";
			semanticDomainField.DataTypeName = "OptionRefCollection";

			ViewTemplate v = new ViewTemplate();
			Field lexicalFormField = new Field(Field.FieldNames.EntryLexicalForm.ToString(),
											   "LexEntry",
											   new string[] {"br"});
			lexicalFormField.DataTypeName = "MultiText";

			v.Add(lexicalFormField);
			v.Add(semanticDomainField);
			return v;
		}
コード例 #13
0
        public void Setup()
        {
            _tempFolder         = new TemporaryFolder();
            _filePath           = _tempFolder.GetTemporaryFile();
            _lexEntryRepository = new LexEntryRepository(_filePath);

            WeSayProjectTestHelper.InitializeForTests();
            RtfRenderer.HeadWordWritingSystemId = _vernacularWritingSystemId;

            _missingFieldName = LexSense.WellKnownProperties.Definition;

            LexEntry entry = _lexEntryRepository.CreateItem();

            _lexicalForm = "vernacular";
            entry.LexicalForm.SetAlternative(_vernacularWritingSystemId, _lexicalForm);
            _lexEntryRepository.SaveItem(entry);
            _longLabel          = "Long label";
            _remainingCountText = "Remaining count:";
            _referenceCountText = "Reference count:";

            _fieldsToShow = "LexicalForm";
            _label        = "My label";
            _description  = "My description";

            _viewTemplate = new ViewTemplate();
            _viewTemplate.Add(new Field(LexEntry.WellKnownProperties.LexicalUnit,
                                        "LexEntry",
                                        new string[] { _vernacularWritingSystemId }));
            _viewTemplate.Add(new Field(LexSense.WellKnownProperties.Definition,
                                        "LexSense",
                                        new string[] { "en" }));
            _viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
                                        "LexExampleSentence",
                                        new string[] { "th" }));
            _task = CreateMissingInfoTask(_lexEntryRepository,
                                          _missingFieldName,
                                          _label,
                                          _longLabel,
                                          _description,
                                          _remainingCountText,
                                          _referenceCountText,
                                          _viewTemplate,
                                          _fieldsToShow, string.Empty);
        }
コード例 #14
0
ファイル: ViewTemplateTests.cs プロジェクト: sillsdev/wesay
        public void CustomFieldRetained()
        {
            ViewTemplate master        = MakeMasterInventory();
            int          count         = master.Count;
            var          usersTemplate = new ViewTemplate();

            usersTemplate.Add(new Field("dummy", "LexEntry", new[] { "en" }));
            ViewTemplate.UpdateUserViewTemplate(master, usersTemplate);
            Assert.IsTrue(usersTemplate.Contains("dummy"));
        }
コード例 #15
0
		public void SetUp()
		{
			WeSayWordsProject.InitializeForTests();

			_tempFolder = new TemporaryFolder();
			_filePath = _tempFolder.GetTemporaryFile();
			_lexEntryRepository = new LexEntryRepository(_filePath);

			_writingSystem = new WritingSystem("pretendVernacular",
											   new Font(FontFamily.GenericSansSerif, 24));

			CreateTestEntry("apple", "red thing", "An apple a day keeps the doctor away.");
			CreateTestEntry("banana", "yellow food", "Monkeys like to eat bananas.");
			CreateTestEntry("car",
							"small motorized vehicle",
							"Watch out for cars when you cross the street.");
			CreateTestEntry("dog", "animal with four legs; man's best friend", "He walked his dog.");

			string[] analysisWritingSystemIds = new string[] {"analysis"};
			string[] vernacularWritingSystemIds = new string[] {_writingSystem.Id};
			RtfRenderer.HeadWordWritingSystemId = vernacularWritingSystemIds[0];

			_viewTemplate = new ViewTemplate();
			_viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
										"LexEntry",
										vernacularWritingSystemIds));
			_viewTemplate.Add(new Field(LexSense.WellKnownProperties.Definition,
										"LexSense",
										analysisWritingSystemIds));

			_viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
										"LexExampleSentence",
										vernacularWritingSystemIds));
			Field exampleTranslationField = new Field(
					Field.FieldNames.ExampleTranslation.ToString(),
					"LexExampleSentence",
					analysisWritingSystemIds);
			_viewTemplate.Add(exampleTranslationField);

			_missingTranslationRecordList =
					_lexEntryRepository.GetEntriesWithMissingFieldSortedByLexicalUnit(
							exampleTranslationField, _writingSystem);
		}
コード例 #16
0
        public void FieldsToShow_PrefixedField_InitializedFromCreate()
        {
            ViewTemplate viewTemplate = new ViewTemplate();

            string[] writingSystemIds = new string[] { "en" };
            viewTemplate.Add(new Field("Dummy", "LexSense", writingSystemIds));
            viewTemplate.Add(new Field("PrefixDummy", "LexSense", writingSystemIds));

            MissingInfoTask task = CreateMissingInfoTask(_lexEntryRepository,
                                                         "Dummy",
                                                         _label,
                                                         _longLabel,
                                                         _description,
                                                         _remainingCountText,
                                                         _referenceCountText,
                                                         viewTemplate,
                                                         "Dummy", string.Empty);

            Assert.AreEqual(true, task.ViewTemplate.Contains("Dummy"));
            Assert.AreEqual(false, task.ViewTemplate.Contains("PrefixDummy"));
        }
コード例 #17
0
ファイル: ViewTemplateTests.cs プロジェクト: sillsdev/wesay
        public void UpdateUserViewTemplate_Jan2008Upgrade_DefinitionGetsGlossWritingSystemsAdded()
        {
            ViewTemplate master          = MakeMasterInventory();
            ViewTemplate simple          = new ViewTemplate();
            Field        definitionField = new Field(LexSense.WellKnownProperties.Definition,
                                                     "LexSense",
                                                     new[] { "en", "a", "b" });

            definitionField.Enabled = false;
            simple.Add(definitionField);
            Field glossField = new Field(LexSense.WellKnownProperties.Gloss,
                                         "LexSense",
                                         new[] { "b", "c" });

            simple.Add(glossField);
            ViewTemplate.UpdateUserViewTemplate(master, simple);
            Assert.AreEqual(4, definitionField.WritingSystemIds.Count);
            Assert.IsTrue(definitionField.WritingSystemIds.Contains("en"));
            Assert.IsTrue(definitionField.WritingSystemIds.Contains("a"));
            Assert.IsTrue(definitionField.WritingSystemIds.Contains("b"));
            Assert.IsTrue(definitionField.WritingSystemIds.Contains("c"));
        }
コード例 #18
0
ファイル: ViewTemplateTests.cs プロジェクト: sillsdev/wesay
        public void UpdateUserViewTemplate_Jan2008Upgrade_DefinitionIsEnabled()
        {
            ViewTemplate master          = MakeMasterInventory();
            var          simple          = new ViewTemplate();
            var          definitionField = new Field(LexSense.WellKnownProperties.Definition,
                                                     "LexSense",
                                                     new[] { "en" });

            definitionField.Enabled = false;
            simple.Add(definitionField);
            ViewTemplate.UpdateUserViewTemplate(master, simple);
            Assert.IsTrue(definitionField.Enabled);
        }
コード例 #19
0
ファイル: MissingInfoTask.cs プロジェクト: bbriggs/wesay
		public MissingInfoTask(MissingInfoConfiguration config,
							   LexEntryRepository lexEntryRepository,
							   ViewTemplate viewTemplate)
			: base( config, lexEntryRepository)
		{
			if (config.MissingInfoField == null)
			{
				throw new ArgumentNullException("MissingInfoField");
			}
			if (viewTemplate == null)
			{
				throw new ArgumentNullException("viewTemplate");
			}

			_missingInfoField = viewTemplate[config.MissingInfoField];

			_viewTemplate = CreateViewTemplateFromListOfFields(viewTemplate, config.FieldsToShow);
			MarkReadOnlyFields(config.FieldsToShowReadOnly);

			//hack until we overhaul how Tasks are setup:
			_isBaseFormFillingTask = config.FieldsToShow.Contains(LexEntry.WellKnownProperties.BaseForm);
			if (_isBaseFormFillingTask)
			{
				Field flagField = new Field();
				flagField.DisplayName = StringCatalog.Get("~This word has no Base Form",
														  "The user will click this to say that this word has no baseform.  E.g. Kindess has Kind as a baseform, but Kind has no other word as a baseform.");
				flagField.DataTypeName = "Flag";
				flagField.ClassName = "LexEntry";
				flagField.FieldName = "flag_skip_" + config.MissingInfoField;
				flagField.Enabled = true;
				_viewTemplate.Add(flagField);
			}
			_writingSystem = BasilProject.Project.WritingSystems.UnknownVernacularWritingSystem;
			// use the master view Template instead of the one for this task. (most likely the one for this
			// task doesn't have the EntryLexicalForm field specified but the Master (Default) one will
			Field fieldDefn =
				WeSayWordsProject.Project.DefaultViewTemplate.GetField(
					Field.FieldNames.EntryLexicalForm.ToString());
			if (fieldDefn != null)
			{
				if (fieldDefn.WritingSystemIds.Count > 0)
				{
					_writingSystem = BasilProject.Project.WritingSystems[fieldDefn.WritingSystemIds[0]];
				}
				else
				{
					throw new ConfigurationException("There are no writing systems enabled for the Field '{0}'",
													 fieldDefn.FieldName);
				}
			}
		}
コード例 #20
0
ファイル: DictionaryTaskTests.cs プロジェクト: bbriggs/wesay
		public void Setup()
		{
			_tempFolder = new TemporaryFolder();
			_filePath = _tempFolder.GetTemporaryFile();

			WeSayWordsProject.InitializeForTests();
			string[] vernacularWritingSystemIds = new string[]
													  {
															  BasilProject.Project.WritingSystems.
																	  TestWritingSystemVernId
													  };
			_viewTemplate = new ViewTemplate();
			_viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
										"LexEntry",
										vernacularWritingSystemIds));
			_viewTemplate.Add(new Field("Note",
										"LexEntry",
										new string[] {"en"},
										Field.MultiplicityType.ZeroOr1,
										"MultiText"));
			_lexEntryRepository = new LexEntryRepository(_filePath);
			_task = new DictionaryTask( DictionaryBrowseAndEditConfiguration.CreateForTests(),  _lexEntryRepository, _viewTemplate);//, new UserSettingsForTask());
		}
コード例 #21
0
        [Test]         //Greg's WS-375
        public void FieldsToShow_RequiredFields_ShownEvenIfDisabledInDefaultTemplate()
        {
            ViewTemplate viewTemplate = new ViewTemplate();

            string[] writingSystemIds = new string[] { "en" };
            Field    field            = new Field("Dummy", "LexSense", writingSystemIds);

            field.Enabled = false;
            viewTemplate.Add(field);
            viewTemplate.Add(new Field("PrefixDummy", "LexSense", writingSystemIds));

            MissingInfoTask task = CreateMissingInfoTask(_lexEntryRepository,
                                                         "Dummy",
                                                         _label,
                                                         _longLabel,
                                                         _description,
                                                         _remainingCountText,
                                                         _referenceCountText,
                                                         viewTemplate,
                                                         "PrefixDummy Dummy", string.Empty);

            Assert.AreEqual(true, task.ViewTemplate.Contains("Dummy"));
        }
コード例 #22
0
        private static ViewTemplate CreateViewTemplateFromListOfFields(IEnumerable <Field> fieldList,
                                                                       string fieldsToShow,
                                                                       string fieldsToShowReadOnly)
        {
            string[]     fields       = SplitUpFieldNames(fieldsToShow + "," + fieldsToShowReadOnly);
            ViewTemplate viewTemplate = new ViewTemplate();

            foreach (Field field in fieldList)
            {
                if (Array.IndexOf(fields, field.FieldName) >= 0)
                {
                    if (field.Enabled == false)
                    //make sure specified fields are shown (greg's ws-356)
                    {
                        Field enabledField = new Field(field);
                        enabledField.Visibility = CommonEnumerations.VisibilitySetting.Visible;
                        enabledField.Enabled    = true;
                        viewTemplate.Add(enabledField);
                    }
                    else
                    {
                        if (field.Visibility != CommonEnumerations.VisibilitySetting.Visible)
                        //make sure specified fields are visible (not in 'rare mode)
                        {
                            Field visibleField = new Field(field);
                            visibleField.Visibility = CommonEnumerations.VisibilitySetting.Visible;
                            viewTemplate.Add(visibleField);
                        }
                        else
                        {
                            viewTemplate.Add(field);
                        }
                    }
                }
            }
            return(viewTemplate);
        }
コード例 #23
0
        private GatherWordListTask CreateAndActivateLiftTask(IEnumerable <string> definitionWritingSystems, string entriesXml)
        {
            var file = new TempLiftFile("wordlist.lift", _tempFolder, entriesXml, Palaso.Lift.Validation.Validator.LiftVersion);

            var vt = new ViewTemplate();

            vt.Add(new Field(
                       Field.FieldNames.EntryLexicalForm.ToString(),
                       "LexEntry",
                       new[] { WritingSystemsIdsForTests.VernacularIdForTest }
                       ));
            vt.Add(new Field(
                       LexSense.WellKnownProperties.Definition.ToString(),
                       "LexSense", definitionWritingSystems
                       ));
            vt.Add(
                new Field(
                    LexSense.WellKnownProperties.Gloss.ToString(),
                    "LexSense",
                    new string[]
            {
                WritingSystemsIdsForTests.AnalysisIdForTest,
                "fr"
            }
                    )
                );

            var t = new GatherWordListTask(
                GatherWordListConfig.CreateForTests(file.Path, "xx", _catalog),
                _lexEntryRepository,
                vt,
                new TaskMemoryRepository()
                );

            t.Activate();
            return(t);
        }
コード例 #24
0
ファイル: ViewTemplateTests.cs プロジェクト: sillsdev/wesay
        public void UserInvWithVisibleFieldConveyedToMaster()
        {
            ViewTemplate master = MakeMasterInventory();

            Assert.IsFalse(master.Contains(Field.FieldNames.ExampleTranslation.ToString()),
                           "If translation is turned on by default, you must fix the test which sees if it is turned on by the user inventory");
            int count  = master.Count;
            var simple = new ViewTemplate();

            simple.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
                                 "LexExampleSentence",
                                 new[] { "en" }));
            ViewTemplate.UpdateUserViewTemplate(master, simple);

            Assert.AreEqual(count, master.Count);
            Assert.IsTrue(master.Contains(Field.FieldNames.ExampleTranslation.ToString()));
        }
コード例 #25
0
        public void SetUp()
        {
            WeSayProjectTestHelper.InitializeForTests();

            _tempFolder         = new TemporaryFolder();
            _filePath           = _tempFolder.GetTemporaryFile();
            _lexEntryRepository = new LexEntryRepository(_filePath);

            _writingSystem = WritingSystemDefinition.Parse(WritingSystemsIdsForTests.OtherIdForTest);

            CreateTestEntry("apple", "red thing", "An apple a day keeps the doctor away.");
            CreateTestEntry("banana", "yellow food", "Monkeys like to eat bananas.");
            CreateTestEntry("car",
                            "small motorized vehicle",
                            "Watch out for cars when you cross the street.");
            CreateTestEntry("dog", "animal with four legs; man's best friend", "He walked his dog.");

            string[] analysisWritingSystemIds   = new[] { WritingSystemsIdsForTests.AnalysisIdForTest };
            string[] vernacularWritingSystemIds = new[] { _writingSystem.Id };
            RtfRenderer.HeadWordWritingSystemId = vernacularWritingSystemIds[0];

            _viewTemplate = new ViewTemplate
            {
                new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                          "LexEntry",
                          vernacularWritingSystemIds),
                new Field(LexSense.WellKnownProperties.Definition,
                          "LexSense",
                          analysisWritingSystemIds),
                new Field(Field.FieldNames.ExampleSentence.ToString(),
                          "LexExampleSentence",
                          vernacularWritingSystemIds)
            };

            var exampleTranslationField = new Field(
                Field.FieldNames.ExampleTranslation.ToString(),
                "LexExampleSentence",
                analysisWritingSystemIds
                );

            _viewTemplate.Add(exampleTranslationField);

            _missingTranslationRecordList =
                _lexEntryRepository.GetEntriesWithMissingFieldSortedByLexicalUnit(
                    exampleTranslationField, null, _writingSystem);
        }
コード例 #26
0
            public EnvironmentForTest()
            {
                _projectDir = new ProjectDirectorySetupForTesting("");
                var project = _projectDir.CreateLoadedProject();

                _outputFile           = new TempFile();
                Repo                  = new LexEntryRepository(_projectDir.PathToLiftFile);
                WritingSystemIds      = new List <string>(new[] { Red, Green, Blue, Voice });
                HeadwordWritingSystem = WritingSystemDefinition.Parse(Red);
                project.WritingSystems.Set(HeadwordWritingSystem);
                project.WritingSystems.Set(WritingSystemDefinition.Parse(Green));
                project.WritingSystems.Set(WritingSystemDefinition.Parse(Blue));
                project.WritingSystems.Set(WritingSystemDefinition.Parse(Voice));

                Template = new ViewTemplate
                {
                    new Field(
                        LexEntry.WellKnownProperties.Citation,
                        "LexEntry",
                        new[] { Blue, Red, Voice }),
                    new Field(
                        LexEntry.WellKnownProperties.LexicalUnit,
                        "LexEntry",
                        new[] { Red, Green, Blue, Voice }),
                    new Field(
                        LexEntry.WellKnownProperties.BaseForm,
                        "LexEntry",
                        WritingSystemIds),
                    new Field(
                        "brother",
                        "LexEntry",
                        WritingSystemIds)
                };

                var visibleCustom = new Field(
                    "VisibleCustom",
                    "LexEntry",
                    WritingSystemIds,
                    Field.MultiplicityType.ZeroOr1,
                    "MultiText"
                    );

                visibleCustom.Visibility  = CommonEnumerations.VisibilitySetting.Visible;
                visibleCustom.DisplayName = "VisibleCustom";
                Template.Add(visibleCustom);
            }
コード例 #27
0
        private EntryViewControl CreateFilteredForm(LexEntry entry,
                                                    string field,
                                                    string className,
                                                    params string[] writingSystems)
        {
            ViewTemplate viewTemplate = new ViewTemplate();

            viewTemplate.Add(new Field(field, className, writingSystems));
            EntryViewControl entryViewControl = new EntryViewControl();

            entryViewControl.LexEntryRepository = _lexEntryRepository;
            entryViewControl.ViewTemplate       = viewTemplate;
            entryViewControl.DataSource         = entry;


            Form window = new Form();

            window.Controls.Add(entryViewControl);
            window.Show();

            return(entryViewControl);
        }
コード例 #28
0
		private EntryViewControl CreateFilteredForm(LexEntry entry,
													string field,
													string className,
													params string[] writingSystems)
		{
			ViewTemplate viewTemplate = new ViewTemplate();
			viewTemplate.Add(new Field(field, className, writingSystems));
			EntryViewControl entryViewControl = new EntryViewControl();
			entryViewControl.LexEntryRepository = _lexEntryRepository;
			entryViewControl.ViewTemplate = viewTemplate;
			entryViewControl.DataSource = entry;


			Form window = new Form();
			window.Controls.Add(entryViewControl);
			window.Show();

			return entryViewControl;
		}
コード例 #29
0
ファイル: LayouterTests.cs プロジェクト: bbriggs/wesay
		private DetailList MakeDetailList(bool showNormallyHiddenFields)
		{
			string[] analysisWritingSystemIds = new string[]
													{
															BasilProject.Project.WritingSystems.
																	TestWritingSystemAnalId
													};
			string[] vernacularWritingSystemIds = new string[]
													  {
															  BasilProject.Project.WritingSystems.
																	  TestWritingSystemVernId
													  };
			ViewTemplate viewTemplate = new ViewTemplate();
			Field field = new Field(Field.FieldNames.EntryLexicalForm.ToString(),
									"LexEntry",
									vernacularWritingSystemIds);
			field.DisplayName = "Word";
			viewTemplate.Add(field);
#if GlossMeaning
			string meaningFieldName = Field.FieldNames.SenseGloss.ToString();
#else
			string meaningFieldName = LexSense.WellKnownProperties.Definition;
#endif
			viewTemplate.Add(new Field(meaningFieldName, "LexSense", analysisWritingSystemIds));
			viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
									   "LexExampleSentence",
									   vernacularWritingSystemIds));
			viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
									   "LexExampleSentence",
									   analysisWritingSystemIds));

			Field rare = new Field("rare", "LexSense", analysisWritingSystemIds);
			rare.Visibility = CommonEnumerations.VisibilitySetting.NormallyHidden;
			viewTemplate.Add(rare);

			//TODO need tests for other data types when made optional
			//TODO need tests for showing non-empty optional tests in non-show-all mode

			LexEntry entry = GetNewEntry();

			DetailList dl = new DetailList();
			LexEntryLayouter layout = new LexEntryLayouter(dl, viewTemplate, null);
			layout.ShowNormallyHiddenFields = showNormallyHiddenFields;
			_rowCount = layout.AddWidgets(entry);
			return dl;
		}
コード例 #30
0
		public override void Setup()
		{
			base.Setup();
			_tempFolder = new TemporaryFolder();
			_vernacularWritingSystem =
					new WritingSystem(BasilProject.Project.WritingSystems.TestWritingSystemVernId,
									  SystemFonts.DefaultFont);
			RtfRenderer.HeadWordWritingSystemId = _vernacularWritingSystem.Id;

			_filePath = _tempFolder.GetTemporaryFile();
			_lexEntryRepository = new LexEntryRepository(_filePath);

			string[] analysisWritingSystemIds = new string[]
													{
															BasilProject.Project.WritingSystems.
																	TestWritingSystemAnalId
													};
			string[] vernacularWritingSystemIds = new string[] {_vernacularWritingSystem.Id};
			ViewTemplate viewTemplate = new ViewTemplate();
			viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
									   "LexEntry",
									   vernacularWritingSystemIds));
			viewTemplate.Add(new Field("focusOnMe",
									   "LexEntry",
									   analysisWritingSystemIds,
									   Field.MultiplicityType.ZeroOr1,
									   "MultiText"));
			viewTemplate.Add(new Field("MyEntryCustom",
									   "LexEntry",
									   analysisWritingSystemIds,
									   Field.MultiplicityType.ZeroOr1,
									   "MultiText"));

			Field readOnlySemanticDomain =
					new Field(LexSense.WellKnownProperties.SemanticDomainsDdp4,
							  "LexSense",
							  analysisWritingSystemIds);
			readOnlySemanticDomain.Visibility = CommonEnumerations.VisibilitySetting.ReadOnly;
			viewTemplate.Add(readOnlySemanticDomain);

			Field shy1 = new Field("MyShyEntryCustom",
								   "LexEntry",
								   analysisWritingSystemIds,
								   Field.MultiplicityType.ZeroOr1,
								   "MultiText");
			shy1.Visibility = CommonEnumerations.VisibilitySetting.NormallyHidden;
			shy1.DisplayName = "MyShyEntryCustom";
			viewTemplate.Add(shy1);

#if GlossMeaning
			viewTemplate.Add(new Field(Field.FieldNames.SenseGloss.ToString(), "LexSense", analysisWritingSystemIds));
#else
			_definitionField = new Field(LexSense.WellKnownProperties.Definition,
										 "LexSense",
										 analysisWritingSystemIds);
			viewTemplate.Add(_definitionField);
#endif
			viewTemplate.Add(new Field("MySenseCustom",
									   "LexSense",
									   analysisWritingSystemIds,
									   Field.MultiplicityType.ZeroOr1,
									   "MultiText"));
			viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
									   "LexExampleSentence",
									   vernacularWritingSystemIds));
			viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
									   "LexExampleSentence",
									   analysisWritingSystemIds));

			_firstEntryGuid = AddEntry("Initial", analysisWritingSystemIds[0], "meaning", true);
			_secondEntryGuid = AddEntry("Secondary", analysisWritingSystemIds[0], "secondarymeaning", false);
			AddEntry("Tertiary", analysisWritingSystemIds[0], "meaning", true);

			Field customField = new Field("SemanticDomains",
										  "LexSense",
										  analysisWritingSystemIds,
										  Field.MultiplicityType.ZeroOr1,
										  "OptionCollection");
			customField.DisplayName = "Sem Dom";
			customField.OptionsListFile = "SemanticDomains.xml";
			viewTemplate.Add(customField);

			Field customPOSField = new Field(LexSense.WellKnownProperties.PartOfSpeech,
											 "LexSense",
											 analysisWritingSystemIds,
											 Field.MultiplicityType.ZeroOr1,
											 "Option");
			customPOSField.DisplayName = "POS";
			customPOSField.OptionsListFile = "PartsOfSpeech.xml";
			viewTemplate.Add(customPOSField);

			Field customNotesField = new Field(WeSayDataObject.WellKnownProperties.Note,
											   "LexSense",
											   analysisWritingSystemIds);
			customNotesField.DisplayName = "s-note";
			viewTemplate.Add(customNotesField);

			Field exampleNotesField = new Field(WeSayDataObject.WellKnownProperties.Note,
												"LexExampleSentence",
												analysisWritingSystemIds);
			exampleNotesField.DisplayName = "ex-note";
			viewTemplate.Add(exampleNotesField);

			_task = new DictionaryTask(DictionaryBrowseAndEditConfiguration.CreateForTests(), _lexEntryRepository, viewTemplate);//, new UserSettingsForTask());
			_detailTaskPage = new TabPage();
			ActivateTask();

			_tabControl = new TabControl();

			_tabControl.Dock = DockStyle.Fill;
			_tabControl.TabPages.Add(_detailTaskPage);
			_tabControl.TabPages.Add(new TabPage("Dummy"));
			_window = new Form();
			_window.Controls.Add(_tabControl);
			_window.Width = 700;
			_window.Height = 500;
			_window.Show();
		}
コード例 #31
0
ファイル: MissingInfoTask.cs プロジェクト: bbriggs/wesay
		private static ViewTemplate CreateViewTemplateFromListOfFields(IEnumerable<Field> fieldList,
																	   string fieldsToShow)
		{
			string[] fields = SplitUpFieldNames(fieldsToShow);
			ViewTemplate viewTemplate = new ViewTemplate();
			foreach (Field field in fieldList)
			{
				if (Array.IndexOf(fields, field.FieldName) >= 0)
				{
					if (field.Enabled == false)
						//make sure specified fields are shown (greg's ws-356)
					{
						Field enabledField = new Field(field);
						enabledField.Visibility = CommonEnumerations.VisibilitySetting.Visible;
						enabledField.Enabled = true;
						viewTemplate.Add(enabledField);
					}
					else
					{
						if (field.Visibility != CommonEnumerations.VisibilitySetting.Visible)
							//make sure specified fields are visible (not in 'rare mode)
						{
							Field visibleField = new Field(field);
							visibleField.Visibility = CommonEnumerations.VisibilitySetting.Visible;
							viewTemplate.Add(visibleField);
						}
						else
						{
							viewTemplate.Add(field);
						}
					}
				}
			}
			return viewTemplate;
		}
コード例 #32
0
		private static ViewTemplate MakeSampleInventory()
		{
			ViewTemplate f = new ViewTemplate();
			f.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
							"LexEntry",
							new string[] {"xx", "yy"}));
			Field field = new Field(LexSense.WellKnownProperties.Gloss,
									"LexSense",
									new string[] {"zz"});
			field.Enabled = false;
			//field.Visibility = CommonEnumerations.VisibilitySetting.Invisible;
			f.Add(field);
			return f;
		}
コード例 #33
0
        public override void Setup()
        {
            base.Setup();
            _tempFolder = new TemporaryFolder();
            _vernacularWritingSystem            = WritingSystemDefinition.Parse(WritingSystemsIdsForTests.VernacularIdForTest);
            RtfRenderer.HeadWordWritingSystemId = _vernacularWritingSystem.Id;

            _filePath           = _tempFolder.GetTemporaryFile();
            _lexEntryRepository = new LexEntryRepository(_filePath);

            _analysisWritingSystemIds = new string[]
            {
                WritingSystemsIdsForTests.AnalysisIdForTest
            };
            string[]     vernacularWritingSystemIds = new string[] { _vernacularWritingSystem.Id };
            ViewTemplate viewTemplate = new ViewTemplate();

            viewTemplate.Add(new Field(Field.FieldNames.EntryLexicalForm.ToString(),
                                       "LexEntry",
                                       vernacularWritingSystemIds));
            viewTemplate.Add(new Field("focusOnMe",
                                       "LexEntry",
                                       _analysisWritingSystemIds,
                                       Field.MultiplicityType.ZeroOr1,
                                       "MultiText"));
            viewTemplate.Add(new Field("MyEntryCustom",
                                       "LexEntry",
                                       _analysisWritingSystemIds,
                                       Field.MultiplicityType.ZeroOr1,
                                       "MultiText"));

            Field readOnlySemanticDomain =
                new Field(LexSense.WellKnownProperties.SemanticDomainDdp4,
                          "LexSense",
                          _analysisWritingSystemIds);

            readOnlySemanticDomain.Visibility = CommonEnumerations.VisibilitySetting.ReadOnly;
            viewTemplate.Add(readOnlySemanticDomain);

            Field shy1 = new Field("MyShyEntryCustom",
                                   "LexEntry",
                                   _analysisWritingSystemIds,
                                   Field.MultiplicityType.ZeroOr1,
                                   "MultiText");

            shy1.Visibility  = CommonEnumerations.VisibilitySetting.NormallyHidden;
            shy1.DisplayName = "MyShyEntryCustom";
            viewTemplate.Add(shy1);

#if GlossMeaning
            viewTemplate.Add(new Field(Field.FieldNames.SenseGloss.ToString(), "LexSense", analysisWritingSystemIds));
#else
            _definitionField = new Field(LexSense.WellKnownProperties.Definition,
                                         "LexSense",
                                         _analysisWritingSystemIds);
            viewTemplate.Add(_definitionField);
#endif
            viewTemplate.Add(new Field("MySenseCustom",
                                       "LexSense",
                                       _analysisWritingSystemIds,
                                       Field.MultiplicityType.ZeroOr1,
                                       "MultiText"));
            viewTemplate.Add(new Field(Field.FieldNames.ExampleSentence.ToString(),
                                       "LexExampleSentence",
                                       vernacularWritingSystemIds));
            viewTemplate.Add(new Field(Field.FieldNames.ExampleTranslation.ToString(),
                                       "LexExampleSentence",
                                       _analysisWritingSystemIds));

            Field customField = new Field("SemanticDomains",
                                          "LexSense",
                                          _analysisWritingSystemIds,
                                          Field.MultiplicityType.ZeroOr1,
                                          "OptionCollection");
            customField.DisplayName     = "Sem Dom";
            customField.OptionsListFile = "SemanticDomains.xml";
            viewTemplate.Add(customField);

            Field customPOSField = new Field(LexSense.WellKnownProperties.PartOfSpeech,
                                             "LexSense",
                                             _analysisWritingSystemIds,
                                             Field.MultiplicityType.ZeroOr1,
                                             "Option");
            customPOSField.DisplayName     = "POS";
            customPOSField.OptionsListFile = "PartsOfSpeech.xml";
            viewTemplate.Add(customPOSField);

            Field customNotesField = new Field(PalasoDataObject.WellKnownProperties.Note,
                                               "LexSense",
                                               _analysisWritingSystemIds);
            customNotesField.DisplayName = "s-note";
            viewTemplate.Add(customNotesField);

            Field exampleNotesField = new Field(PalasoDataObject.WellKnownProperties.Note,
                                                "LexExampleSentence",
                                                _analysisWritingSystemIds);
            exampleNotesField.DisplayName = "ex-note";
            viewTemplate.Add(exampleNotesField);

            _entryViewFactory = (() => new EntryViewControl());

            DictionaryControl.Factory dictControlFactory = (memory => new DictionaryControl(_entryViewFactory, _lexEntryRepository, viewTemplate, memory, new StringLogger()));

            _task           = new DictionaryTask(dictControlFactory, DictionaryBrowseAndEditConfiguration.CreateForTests("definition"), _lexEntryRepository, new TaskMemoryRepository());   //, new UserSettingsForTask());
            _detailTaskPage = new TabPage();
            ActivateTask();

            _tabControl = new TabControl();

            _tabControl.Dock = DockStyle.Fill;
            _tabControl.TabPages.Add(_detailTaskPage);
            _tabControl.TabPages.Add(new TabPage("Dummy"));
            _window = new Form();
            _window.Controls.Add(_tabControl);
            _window.Width  = 700;
            _window.Height = 500;
            _window.Show();
        }