Example #1
0
        public void UpdateContent(EventListControl eventList)
        {
            var selectedTypes = eventList.TypeFilters.Where(x => x.Checked.HasValue && x.Checked.Value).ToArray();

            if (selectedTypes.Length == 0)
            {
                return;
            }

            var commonAncestor = selectedTypes.First().Type;

            foreach (var type in selectedTypes)
            {
                commonAncestor = GetClosestType(commonAncestor, type.Type);
            }

            if (typeof(BuffEvent).IsAssignableFrom(commonAncestor))
            {
                Content = buffLayout;
            }

            /*
             * else if (typeof(AgentEvent).IsAssignableFrom(commonAncestor))
             * {
             *      var filterAgentRadioButton = new RadioButton {Text = "Exact Agent"};
             *      var filterAgentDataRadioButton = new RadioButton(filterAgentRadioButton) {Text = "Agent data"};
             *      var agentsDropDown = new DropDown
             *      {
             *              DataStore = agents,
             *              ItemTextBinding = new DelegateBinding<Agent, string>(x => $"{x.Name} ({x.Address})")
             *      };
             *
             *      var filterLayout = new DynamicLayout();
             *      filterLayout.BeginHorizontal();
             *      filterLayout.BeginGroup("Agent filter");
             *      filterLayout.BeginVertical(spacing: new Size(5, 5));
             *      filterLayout.AddRow(filterAgentRadioButton, null, agentsDropDown);
             *      filterLayout.AddRow(filterAgentDataRadioButton, new CheckBox {Text = "Name"}, new TextBox {Text = ""});
             *      filterLayout.AddRow(null, new CheckBox {Text = "Type"},
             *              new DropDown {DataStore = new[] {"Player", "NPC", "Gadget"}});
             *      filterLayout.AddRow(null);
             *      filterLayout.EndVertical();
             *      filterLayout.EndGroup();
             *      filterLayout.EndHorizontal();
             *      filterPanel.Content = filterLayout;
             * }
             */
            else
            {
                Content = null;
            }
        }
Example #2
0
        public UIElement GetDisplayElement()
        {
            EventListViewModel viewModel = new EventListViewModel(this, facade);
            EventListControl   control   = new EventListControl(viewModel);

            viewModel.EventSelected += (s, e) =>
            {
                EventDisplayModel eventDisplayModel = e.Event;

                TournamentBaseDTO tournamentBaseDTO = new TournamentBaseDTO
                {
                    Name        = eventDisplayModel.TournamentName,
                    DateOfStart = eventDisplayModel.DateOfTournamentStart,
                    SportName   = eventDisplayModel.SportName
                };

                using (IParticipantService service = factory.CreateParticipantService())
                {
                    DataServiceMessage <IEnumerable <ParticipantBaseDTO> > serviceMessage = service.GetByTournament(tournamentBaseDTO);
                    RaiseReceivedMessageEvent(serviceMessage);

                    if (serviceMessage.IsSuccessful)
                    {
                        IEnumerable <ParticipantBaseModel> allParticipants = serviceMessage
                                                                             .Data
                                                                             .Select(p => Mapper.Map <ParticipantBaseDTO, ParticipantBaseModel>(p))
                                                                             .OrderBy(p => p.Name);

                        Edit(e.Event, allParticipants);
                    }
                }
            };
            viewModel.EventDeleteRequest += (s, e) => Delete(e.Event);

            return(control);
        }
Example #3
0
        public InspectorForm()
        {
            Title      = "Scratch EVTC Inspector";
            ClientSize = new Size(800, 600);
            var formLayout = new DynamicLayout();

            Content = formLayout;

            var openFileMenuItem = new ButtonMenuItem {
                Text = "&Open EVTC log"
            };

            openFileMenuItem.Click   += OpenFileButtonOnClick;
            openFileMenuItem.Shortcut = Application.Instance.CommonModifier | Keys.O;

            var fileMenuItem = new ButtonMenuItem {
                Text = "&File"
            };

            fileMenuItem.Items.Add(openFileMenuItem);

            Menu = new MenuBar(fileMenuItem);

            openFileDialog = new OpenFileDialog();
            openFileDialog.Filters.Add(new FileFilter("EVTC logs", ".evtc", ".evtc.zip", ".zevtc"));

            parsedStateLabel = new Label {
                Text = "No log parsed yet."
            };

            agentItemGridView             = new GridViewGenerator().GetGridView <ParsedAgent>();
            skillsGridView                = new GridViewGenerator().GetGridView <ParsedSkill>();
            combatItemsGridView           = new GridViewGenerator().GetGridView <ParsedCombatItem>();
            agentItemGridView.DataStore   = parsedAgents;
            skillsGridView.DataStore      = parsedSkills;
            combatItemsGridView.DataStore = parsedCombatItems;
            new GridViewSorter <ParsedAgent>(agentItemGridView, parsedAgents).EnableSorting();
            new GridViewSorter <ParsedSkill>(skillsGridView, parsedSkills).EnableSorting();
            new GridViewSorter <ParsedCombatItem>(combatItemsGridView, parsedCombatItems).EnableSorting();

            agentItemGridView.Columns.Single(x => x.HeaderText == "Name").DataCell = new TextBoxCell
            {
                Binding = new DelegateBinding <ParsedAgent, string>(x => $"{x.Name.TrimEnd('\0').Replace("\0", "\\0")}")
            };

            eventListControl = new EventListControl();

            var agentsGridView = ConstructAgentGridView();

            agentControl = new AgentControl();
            var mainTabControl = new TabControl();

            var parsedTabControl = new TabControl();

            parsedTabControl.Pages.Add(new TabPage(agentItemGridView)
            {
                Text = "Agents"
            });
            parsedTabControl.Pages.Add(new TabPage(skillsGridView)
            {
                Text = "Skills"
            });
            parsedTabControl.Pages.Add(new TabPage(combatItemsGridView)
            {
                Text = "Combat Items"
            });

            var eventsDetailLayout = new DynamicLayout();

            eventsDetailLayout.BeginVertical();
            eventsDetailLayout.Add(eventListControl);
            eventsDetailLayout.EndVertical();

            var agentsDetailLayout = new DynamicLayout();

            agentsDetailLayout.BeginVertical();
            agentsDetailLayout.Add(agentControl);
            agentsDetailLayout.EndVertical();

            var agentSplitter = new Splitter {
                Panel1 = agentsGridView, Panel2 = agentsDetailLayout, Position = 300
            };

            var processedTabControl = new TabControl();

            processedTabControl.Pages.Add(new TabPage(eventsDetailLayout)
            {
                Text = "Events"
            });
            processedTabControl.Pages.Add(new TabPage(agentSplitter)
            {
                Text = "Agents"
            });

            var statisticsLayout = new DynamicLayout();

            statisticsLayout.Add(statisticsJsonControl);

            mainTabControl.Pages.Add(new TabPage(parsedTabControl)
            {
                Text = "Parsed data", Padding = MainTabPadding
            });
            mainTabControl.Pages.Add(new TabPage(processedTabControl)
            {
                Text = "Processed data", Padding = MainTabPadding
            });
            mainTabControl.Pages.Add(new TabPage(parsedStateLabel)
            {
                Text = "Log", Padding = MainTabPadding
            });
            mainTabControl.Pages.Add(new TabPage(statisticsLayout)
            {
                Text = "Statistics", Padding = MainTabPadding
            });

            formLayout.BeginVertical();
            formLayout.AddRow(mainTabControl);
            formLayout.EndVertical();
        }