Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public GatherBySemanticDomainTask(
            GatherBySemanticDomainConfig config,
            LexEntryRepository lexEntryRepository,
            ViewTemplate viewTemplate,
            TaskMemoryRepository taskMemoryRepository,
            ILogger logger
            ) :
            base(
                config,
                lexEntryRepository,
                viewTemplate, taskMemoryRepository
                )
        {
            ViewTemplate = viewTemplate;
            Guard.AgainstNull(config, "config");
            Guard.AgainstNull(viewTemplate, "viewTemplate");
            _config = config;
            _logger = logger;

            _taskMemory = taskMemoryRepository.FindOrCreateSettingsByTaskId(config.TaskName);


            _currentDomainIndex   = -1;
            _currentQuestionIndex = 0;
            _words = null;

            _semanticDomainField = viewTemplate.GetField(LexSense.WellKnownProperties.SemanticDomainDdp4);
            var definitionWsId = viewTemplate.GetField(LexSense.WellKnownProperties.Definition).WritingSystemIds.First();
            IWritingSystemDefinition writingSystemForDefinition = viewTemplate.WritingSystems.Get(definitionWsId);

            Guard.AgainstNull(writingSystemForDefinition, "Definition input System");
            DefinitionWritingSystem = writingSystemForDefinition;
        }
Ejemplo n.º 3
0
 public AddPicturesTask(AddPicturesConfig config,
                        LexEntryRepository lexEntryRepository,
                        TaskMemoryRepository taskMemoryRepository,
                        IFileLocator fileLocator)
     : base(config, lexEntryRepository, taskMemoryRepository)
 {
     _config = config;
 }
Ejemplo n.º 4
0
        public AdvancedHistoryTask(IAdvancedHistoryConfig config,
                                   LexEntryRepository lexEntryRepository,
                                   TaskMemoryRepository taskMemoryRepository,
                                   IComponentContext diContainer)

            : base(config, lexEntryRepository, taskMemoryRepository)
        {
            _config      = config;
            _diContainer = diContainer;
        }
Ejemplo n.º 5
0
 public void FindOrCreateSettingsByTaskId_NotFound_CreatesNew()
 {
     using (var dir = new TemporaryFolder("TaskMemoryRepositoryTests"))
     {
         using (var repo = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
             Assert.IsNotNull(repo.FindOrCreateSettingsByTaskId("NewGuy"));
         }
     }
 }
Ejemplo n.º 6
0
 public void FindOrCreateSettingsByTaskId_FileCorrupt_CreatesNew()
 {
     using (var dir = new TemporaryFolder("TaskMemoryRepositoryTests"))
     {
         File.WriteAllText(dir.Combine("foo" + TaskMemoryRepository.FileExtensionWithDot), "I am corrupt");
         using (var seeIfWeCanLoad = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
         }
     }
 }
Ejemplo n.º 7
0
 public void CreateAndDispose_NoExistingFile_LeavesFile()
 {
     using (var dir = new TemporaryFolder("TaskMemoryRepositoryTests"))
     {
         using (var repo = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
             Assert.IsNotNull(repo);
         }
         Assert.IsTrue(File.Exists(dir.Combine("foo" + TaskMemoryRepository.FileExtensionWithDot)));
     }
 }
Ejemplo n.º 8
0
        public NotesBrowserTask(INotesBrowserConfig config,
                                LexEntryRepository lexEntryRepository,
                                TaskMemoryRepository taskMemoryRepository,
                                System.Func <Chorus.UI.Notes.Browser.NotesBrowserPage> getBrowserPage
                                )

            : base(config, lexEntryRepository, taskMemoryRepository)
        {
            _getBrowserPage = getBrowserPage;
            //   _diContainer = diContainer;
        }
Ejemplo n.º 9
0
 public void FindOrCreateSettingsByTaskId_IsFound_GivesOldMemory()
 {
     using (var dir = new TemporaryFolder("TaskMemoryRepositoryTests"))
     {
         using (var repo = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
             repo.FindOrCreateSettingsByTaskId("NewGuy").Set("color", "blue");
         }
         using (var repo = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
             Assert.AreEqual("blue", repo.FindOrCreateSettingsByTaskId("NewGuy").Get("color", "blah"));
         }
     }
 }
Ejemplo n.º 10
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];
            }
        }
Ejemplo n.º 11
0
        public DictionaryTask(DictionaryControl.Factory dictionaryControlFactory,
                              DictionaryBrowseAndEditConfiguration config,
                              LexEntryRepository lexEntryRepository,
                              TaskMemoryRepository taskMemoryRepository)
            : base(config, lexEntryRepository, taskMemoryRepository)
        {
            _dictionaryControlFactory = dictionaryControlFactory;
//            if (viewTemplate == null)
//            {
//                throw new ArgumentNullException("viewTemplate");
//            }
//            _viewTemplate = viewTemplate;
//            _logger = logger;
            _taskMemory = taskMemoryRepository.FindOrCreateSettingsByTaskId(config.TaskName);
        }
Ejemplo n.º 12
0
 public void PersistThenGet_TwoTasksWithSameKey_GivesCorrectValue()
 {
     using (var dir = new TemporaryFolder("TaskMemoryRepositoryTests"))
     {
         using (var repo = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
             repo.FindOrCreateSettingsByTaskId("one").Set("common", "forOne");
             repo.FindOrCreateSettingsByTaskId("two").Set("common", "forTwo");
             Assert.AreEqual("forOne", repo.FindOrCreateSettingsByTaskId("one").Get("common", "blah"));
             Assert.AreEqual("forTwo", repo.FindOrCreateSettingsByTaskId("two").Get("common", "blah"));
         }
         //now reopen and verify
         using (var repo = TaskMemoryRepository.CreateOrLoadTaskMemoryRepository("foo", dir.FolderPath))
         {
             Assert.AreEqual("forOne", repo.FindOrCreateSettingsByTaskId("one").Get("common", "blah"));
             Assert.AreEqual("forTwo", repo.FindOrCreateSettingsByTaskId("two").Get("common", "blah"));
         }
     }
 }
Ejemplo n.º 13
0
        public MissingInfoTask(MissingInfoConfiguration config,
                               LexEntryRepository lexEntryRepository,
                               ViewTemplate defaultViewTemplate,
                               TaskMemoryRepository taskMemoryRepository)
            : base(config, lexEntryRepository, taskMemoryRepository)
        {
            Guard.AgainstNull(config.MissingInfoFieldName, "MissingInfoFieldName");
            Guard.AgainstNull(defaultViewTemplate, "viewTemplate");
            Debug.Assert(config.WritingSystemsWeWantToFillInArray == null ||
                         config.WritingSystemsWeWantToFillInArray.Length == 0 ||
                         !string.IsNullOrEmpty(config.WritingSystemsWeWantToFillInArray[0]));

            _config     = config;
            _taskMemory = taskMemoryRepository.FindOrCreateSettingsByTaskId(config.TaskName);


            _missingInfoField = defaultViewTemplate[config.MissingInfoFieldName];

            _viewTemplate = config.CreateViewTemplate(defaultViewTemplate);
        }
Ejemplo n.º 14
0
        private void StartUserInterface()
        {
            try
            {
                _project.AddToContainer(
                    b => b.Register <StatusBarController>(
                        container =>
                {
                    var controller = new StatusBarController(container.Resolve <ICountGiver>());
                    controller.ShowConfigLauncher = _commandLineArguments.launchedByConfigTool;
                    return(controller);
                }));
                _project.AddToContainer(b => b.RegisterType <TabbedForm>());
                _tabbedForm = _project.Container.Resolve <TabbedForm>();
                _tabbedForm.Show();            // so the user sees that we did launch
                var versionString = BasilProject.VersionString;
                var title         = StringCatalog.Get("~WeSay", "It's up to you whether to bother translating this or not.");
                if (title != "WeSay")
                {
                    _tabbedForm.Font = (System.Drawing.Font)StringCatalog.LabelFont.Clone();
                }
                _tabbedForm.Text = String.Format(
                    "{0} {1}: {2}",
                    title,
                    versionString,
                    _project.Name
                    );
                Application.DoEvents();

                //todo: this is what we're supposed to use the autofac "modules" for
                //couldn't get this to work: _project.AddToContainer(typeof(ICurrentWorkTask), _tabbedForm as ICurrentWorkTask);
                _project.AddToContainer(b => b.RegisterInstance <ICurrentWorkTask>(_tabbedForm));
                _project.AddToContainer(b => b.RegisterInstance(_tabbedForm.StatusStrip));
                _project.AddToContainer(
                    b =>
                    b.RegisterInstance(
                        TaskMemoryRepository.CreateOrLoadTaskMemoryRepository(
                            _project.Name, _project.PathToWeSaySpecificFilesDirectoryInProject)));

                _project.LoadTasksFromConfigFile();

                Application.DoEvents();
                _tabbedForm.ContinueLaunchingAfterInitialDisplay();
                _tabbedForm.Activate();
                _tabbedForm.BringToFront();            //needed if we were previously in server mode
#if (!__MonoCS__)
                if (WeSayWordsProject.GeckoOption)
                {
                    // Currently with Gecko 29 on Windows systems, the browser objects do
                    // not size properly without this process at startup
                    _tabbedForm.WindowState = FormWindowState.Minimized;
                    _tabbedForm.WindowState = FormWindowState.Maximized;
                }
#endif

                RtfRenderer.HeadWordWritingSystemId =
                    _project.DefaultViewTemplate.HeadwordWritingSystem.Id;
                HtmlRenderer.HeadWordWritingSystemId = _project.DefaultViewTemplate.HeadwordWritingSystem.Id;

#if __MonoCS__
                UglyHackForXkbIndicator();
#endif

                //run the ui
                Application.Run(_tabbedForm);

                Settings.Default.SkinName = DisplaySettings.Default.SkinName;
            }
            catch (IOException e)
            {
                ErrorReport.NotifyUserOfProblem(e.Message);
            }
        }