private ContextMenuComponent CreateContextMenuComponentForViewModel(ChatMessageViewModel message)
        {
            var contextMenuComponent = new ContextMenuComponent();
            var commandActions       = ViewModel.GetCommandActionsForMessage(message);

            switch (commandActions.Count)
            {
            case 1:
                contextMenuComponent.AddCommand(ContextMenuActions.Delete, commandActions[0]);
                break;

            case 2:
                contextMenuComponent.AddCommand(ContextMenuActions.Edit, commandActions[0]);
                contextMenuComponent.AddCommand(ContextMenuActions.Delete, commandActions[1]);
                break;
            }
            return(contextMenuComponent);
        }
Beispiel #2
0
        public Form1()
        {
            Model = new Model();
            InitializeComponent();

            Groups();

            imageResource = new ImageResource(this.imageList1)
            {
                Resource = "UI/Icons/"
            };
            imageResource.ImageSizeChange(Settings.Default.IconSize);
            largeImageResource = new ImageResource(this.imageList2)
            {
                Resource = "UI/Images/"
            };
            largeImageResource.Load(largeImageResource.Resource);

            contextMenu = new ContextMenuComponent(metroContextMenu1)
            {
                GetStatistic = (x) => Model.Hero.Statistic(x)
            };

            playerPick = new PlayerPickInfo(playerpickButton)
            {
                GetImage  = imageResource.Bitmap,
                GetHeroId = (x) => Model.Hero.Select(x).Item[0].Id
            };

            forecastResultComponent = new ForecastResultComponent(metroListView1, btn_forecast)
            {
                Compute        = Model.ForecastService.Select(x => x).ToList(),
                GetHeroes      = () => Model.Hero,
                GetPlayersPick = playerPick.GetPlayerPics,
                MatchupWith    = Model.Statistic.MatchUp.With,
                MatchupAgainst = Model.Statistic.MatchUp.Against
            };

            filterTab = new FilterTab(cont_Filter, btn_FilterVisibleChange);
            filterTab.Collapse();

            statfilterTab = new FilterTab(splitContainer2, bunifuTileButton1);
            statfilterTab.Collapse();

            heroFilter     = new HeroFilter(groupCheckBox, subgroupCheckBox, franchiseCheckBox, metroTextBox9);
            heroStatFilter = new HeroFilter(groupStatCheckBox, subgroupStatCheckBox,
                                            franchiseStatCheckBox, metroTextBox1);

            heroPicker = new HeroPicker(listView1)
            {
                GetImageId = imageResource.Index,
                GetHeroes  = () => Model.Hero
            };

            heroSelector = new HeroSelector(listView2)
            {
                GetImageId         = imageResource.Index,
                GetHeroes          = () => Model.Hero,
                GetFranchiseFilter = heroFilter.GetFranchiseFilter,
                GetGroupFilter     = heroFilter.GetGroupsFilter,
                GetSubGroupFilter  = heroFilter.GetSubGroupFilter,
                GetTextFilter      = heroFilter.GetTextFilter
            };

            heroComponent = new HeroComponent(controls)
            {
                GetImage      = imageResource.Bitmap,
                GetLargeImage = largeImageResource.Bitmap,
                GetHero       = (x) => Model.Hero.Select(x).Item[0]
            };

            renderSettings = new RenderSettings(metroComboBox1, metroTextBox15, metroCheckBox2, numericUpDown1)
            {
                GetRenderType = () => imageResource.RenderType.ToArray()
            };
            renderSettings.Init();

            styleManager = new StyleManager(controls, metroContextMenu1, metroStyleManager1, this);

            themeSelector = new ThemeSelector(metroComboBox2, metroComboBox3);

            statComponent = new StatComponent(zedGraphControl1)
            {
                Hero = x => Model.Hero.Item[x].Hero,
                HeroesAvgStatistic = () => Model.Statistic.HeroStatistic.All().Item1,
                HeroGameCount      = x => Model.Hero.Select(x).Item[0].Statistic.count,
                Image  = imageResource.Bitmap,
                Style  = () => styleManager.Style,
                Filter = () =>
                {
                    return(Model.Hero.
                           Select(heroStatFilter.GetGroupsFilter()).
                           Select(heroStatFilter.GetSubGroupFilter()).
                           Select(heroStatFilter.GetFranchiseFilter()).
                           Select(heroStatFilter.GetTextFilter()).Select(X => X.Id).ToList());
                }
            };
            statComponent.Init();

            statGraph = new StatGraph(metroComboBox4)
            {
                GetSupportHeroStatistic = () => statComponent.HeroStat
            };
            statGraph.HeroesSelectionChanged += statComponent.ComputeHeroesStat;
            statGraph.Init();

            heroSelector.SelectionChanged += contextMenu.SelectPlayer;

            heroPicker.SelectionChanged += heroComponent.Render;

            playerPick.PickChanged     += contextMenu.ChangeElement;
            contextMenu.OnPlayerPicked += playerPick.SetPick;

            heroFilter.OnGroupChanged     += heroSelector.Render;
            heroFilter.OnSubGroupChanged  += heroSelector.Render;
            heroFilter.OnFranchiseChanged += heroSelector.Render;
            heroFilter.OnTextСhanged      += heroSelector.Render;

            heroStatFilter.OnGroupChanged     += statComponent.ComputeHeroesStat;
            heroStatFilter.OnSubGroupChanged  += statComponent.ComputeHeroesStat;
            heroStatFilter.OnFranchiseChanged += statComponent.ComputeHeroesStat;
            heroStatFilter.OnTextСhanged      += statComponent.ComputeHeroesStat;

            themeSelector.OnThemeChanged += styleManager.ChangeTheme;
            themeSelector.OnStyleChanged += styleManager.ChangeStyle;

            renderSettings.OnBackgroundChanged  += styleManager.SetBackground;
            renderSettings.OnTransparentChanged += styleManager.TransparentChange;
            renderSettings.OnBackgroundChanged  += heroPicker.ChangeBackGround;
            renderSettings.OnRenderModeChanged  += heroPicker.RenderModeChange;
            renderSettings.OnImageSizeChanged   += heroPicker.ItemSizeChange;
            renderSettings.OnBackgroundChanged  += heroSelector.ChangeBackGround;
            renderSettings.OnRenderModeChanged  += heroSelector.RenderModeChange;
            renderSettings.OnImageSizeChanged   += heroSelector.ItemSizeChange;
            renderSettings.OnImageSizeChanged   += imageResource.ImageSizeChange;

            LoadToolTip();
            Render();
        }