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; } }
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); }
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(); }