Ejemplo n.º 1
0
        private static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule(new TagsCloudModule());
            var container = builder.Build();

            Parser.Default.ParseArguments <InputOptions>(args).WithParsed(opts =>
            {
                ITagsCloudLayouter selectedLayouter = default;
                ITagsCloudRenderer selectedRenderer = default;
                IFilter[] selectedFilters           = default;

                if (DetermineLayouter(opts, container)
                    .Then(layouter => selectedLayouter = layouter)
                    .Then(layouter => DetermineRenderer(opts, container))
                    .Then(renderer => selectedRenderer = renderer)
                    .Then(renderer => DetermineFilters(opts, container))
                    .Then(filters =>
                {
                    selectedFilters = filters;
                    var wordsLoader = container.Resolve <WordsLoader>();
                    return(wordsLoader.LoadWords(opts.InputFile));
                })
                    .Then(words =>
                {
                    var wordsFilterer = container.Resolve <WordsFilterer>(new NamedParameter("filters", selectedFilters));
                    return(wordsFilterer.FilterWords(words));
                })
                    .Then(filteredWords =>
                {
                    var tagCloud = container.Resolve <TagsCloudGenerator>(
                        new NamedParameter("layouter", selectedLayouter),
                        new NamedParameter("renderer", selectedRenderer));
                    return(tagCloud.GenerateCloud(filteredWords));
                })
                    .Then(image =>
                {
                    var imageSaveHelper = container.Resolve <ImageSaveHelper>();
                    return(imageSaveHelper.SaveTo(image, opts.OutputFile));
                })
                    .OnFail(msg => Console.Error.WriteLine(msg))
                    .IsSuccess)
                {
                    Console.WriteLine("OK");
                }
            });

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
Ejemplo n.º 2
0
 public TagsCloudContainerApplication
     (IWordsReader reader, FormattingComponent formattingComponent,
     FilteringComponent filteringComponent, IWordsSizer wordsSizer, ITagsCloudRenderer renderer,
     IColorManager colorManager, IBoringWordsRepository boringWordsRepository,
     ITagsCloudFactory tagsCloudFactory, ITagsCloudLayouterFactory layouterFactory)
 {
     this.reader = reader;
     this.formattingComponent   = formattingComponent;
     this.filteringComponent    = filteringComponent;
     this.renderer              = renderer;
     this.colorManager          = colorManager;
     this.boringWordsRepository = boringWordsRepository;
     this.wordsSizer            = wordsSizer;
     this.tagsCloudFactory      = tagsCloudFactory;
     this.layouterFactory       = layouterFactory;
 }
Ejemplo n.º 3
0
 private void PrepareRendersMenu()
 {
     ComboBoxRenders.ItemsSource = knownRenderers.OrderBy(d => d.GetType().Name).Select(renderer =>
                                                                                        new KeyValuePair <ITagsCloudRenderer, string>(renderer, renderer.GetType().Name));
     ComboBoxRenders.DisplayMemberPath = "Value";
     ComboBoxRenders.SelectionChanged += (sender, e) =>
     {
         if (sender is ComboBox comboBox && comboBox.SelectedValue is KeyValuePair <ITagsCloudRenderer, string> kv)
         {
             selectedRenderer = kv.Key;
         }
         if (selectedRenderer == null)
         {
             return;
         }
         FillPropertiesPanel(selectedRenderer, RenderSettingsPanel);
     };
     ComboBoxRenders.SelectedIndex = 0;
 }
Ejemplo n.º 4
0
 public TagsCloudGenerator(ITagsCloudLayouter layouter, ITagsCloudRenderer renderer)
 {
     this.layouter = layouter;
     this.renderer = renderer;
 }