public void Run(string[] args)
        {
            var ui          = new CLI(args);
            var appSettings = ui.ApplicationSettings;
            var words       = reader.ReadWords(appSettings.InputPath);

            words = formattingComponent.FormatWords(words);
            var generator = new TagsCloudGenerator
                                (wordsSizer, layouterFactory.CreateTagsCloudLayouter(appSettings.TagsCloudCenter, tagsCloudFactory));

            boringWordsRepository.LoadWords(appSettings.BlackListPath);
            words = filteringComponent.FilterWords(words);
            var cloud = generator.CreateCloud(words, appSettings.ImageSettings.LetterSize);

            renderer.RenderIntoFile(appSettings.ImageSettings, colorManager, cloud);
        }
示例#2
0
        public void SetUp()
        {
            var container = new Container();

            container.RegisterSingleton <ILayouterAlgorithm>(() => new SimpleRadialAlgorithm());
            container.RegisterSingleton <ICloudLayouter>(() =>
                                                         new CircularCloudLayouter(new Point(1024, 1024), container.GetInstance <ILayouterAlgorithm>()));
            container.RegisterSingleton <IWordsReader, SimpleTxtReader>();
            container.RegisterSingleton <ILayoutPainter, SimpleLayoutPainter>();
            container.RegisterCollection <IWordFormatter>(new SimpleWordFormatter());
            container.RegisterSingleton <WordsNormalizer>();
            container.RegisterSingleton <WordsLayouter>();
            container.RegisterSingleton <TagsCloudGenerator>();

            container.Verify();

            generator = container.GetInstance <TagsCloudGenerator>();

            inputFile = CreateInputFile();
        }
示例#3
0
        public Result <None> Run(string[] args)
        {
            var ui          = new CLI(args);
            var appSettings = ui.ApplicationSettings;
            var generator   = new TagsCloudGenerator
                                  (wordsSizer, layouterFactory.CreateTagsCloudLayouter(appSettings.TagsCloudCenter, tagsCloudFactory));

            var result = boringWordsRepository.LoadWords(appSettings.BlackListPath)
                         .Then(x => reader.ReadWords(appSettings.InputPath))
                         .Then(words => formattingComponent.FormatWords(words))
                         .Then(words => filteringComponent.FilterWords(words))
                         .Then(words => generator.CreateCloud(words, appSettings.ImageSettings.LetterSize))
                         .Then(tagsCloud => renderer.RenderIntoFile(appSettings.ImageSettings, colorManager, tagsCloud));

            if (!result.IsSuccess)
            {
                Console.WriteLine(result.Error);
            }

            return(result);
        }
示例#4
0
        private void MenuItemGenerate_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(inputFileName))
            {
                MenuItemOpenFile_Click(null, null);
                if (string.IsNullOrWhiteSpace(inputFileName))
                {
                    return;
                }
            }

            var wordsLoader = new WordsLoader(knownParsers);
            var words       = wordsLoader.LoadWords(inputFileName);

            var selectedFilters = filtersOptions.Where(fo => fo.IsActive).OrderBy(fo => fo.Priority).Select(fo => fo.Filter).ToArray();
            var wordsFilterer   = new WordsFilterer(selectedFilters);
            var filteredWords   = wordsFilterer.FilterWords(words);

            tagsCloud = new TagsCloudGenerator(selectedLayouter, selectedRenderer);
            tagsCloud.GenerateCloud(filteredWords);

            UpdateImageControl();
        }
示例#5
0
        public void SetUp()
        {
            var layouter = new CircularCloudLayouter(new Point(300, 300), new TagsCloudFactory());

            generator = new TagsCloudGenerator(new FrequencyWordsSizer(), layouter);
        }