コード例 #1
0
        public void FirstRectangle_ShouldContainCenter(Point center, Size rectangleSize)
        {
            Layouter = new DenseRandomTagsCloudLayouter(center);
            var rectangle = Layouter.PutNextRectangle(rectangleSize);

            rectangle.Should().Match <Rectangle>(r => r.Contains(center));
        }
コード例 #2
0
 public VisualizatorConfiguration(
     ITagsCloudLayouter layouter,
     ITagsWrapper wrapper,
     IEnumerable <ITagsDecorator> decorators,
     IEnumerable <IBackgroundDecorator> backgroundDecorators
     )
 {
     Layouter             = layouter;
     Wrapper              = wrapper;
     Decorators           = decorators;
     BackgroundDecorators = backgroundDecorators;
 }
コード例 #3
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();
        }
コード例 #4
0
 private void PrepareLayoutersMenu()
 {
     ComboBoxLayouters.ItemsSource = knownLayouters.OrderBy(l => l.GetType().Name).Select(layouter =>
                                                                                          new KeyValuePair <ITagsCloudLayouter, string>(layouter, layouter.GetType().Name));
     ComboBoxLayouters.DisplayMemberPath = "Value";
     ComboBoxLayouters.SelectionChanged += (sender, e) =>
     {
         if (sender is ComboBox comboBox && comboBox.SelectedValue is KeyValuePair <ITagsCloudLayouter, string> kv)
         {
             selectedLayouter = kv.Key;
         }
         if (selectedLayouter == null)
         {
             return;
         }
         FillPropertiesPanel(selectedLayouter, LayouterSettingsPanel);
     };
     ComboBoxLayouters.SelectedIndex = 0;
 }
コード例 #5
0
 public TagsCloudGenerator(ITagsCloudLayouter layouter, ITagsCloudRenderer renderer)
 {
     this.layouter = layouter;
     this.renderer = renderer;
 }
コード例 #6
0
ファイル: TagsCloudCreator.cs プロジェクト: AppleePie/fp
 public TagsCloudCreator(ITagsCloudLayouter layouter, IWordHandler wordHandler, WordConverter wordConverter)
 {
     Layouter      = layouter;
     WordHandler   = wordHandler;
     WordConverter = wordConverter;
 }
コード例 #7
0
 public void SetUp()
 {
     Layouter = new DenseRandomTagsCloudLayouter(new Point(0, 0));
 }
コード例 #8
0
ファイル: TagsCloudGenerator.cs プロジェクト: eliyy4hu/di
 public TagsCloudGenerator(IWordsSizer wordsSizer, ITagsCloudLayouter layouter)
 {
     this.layouter   = layouter;
     this.wordsSizer = wordsSizer;
 }