private void AddTab(int index, BothTeamSettings roundSettings, string team1Name, string team2Name) { TabPage roundTabPage = new TabPage(); TabControl teamsTabControl = new TabControl(); TabPage team1TabPage = new TabPage(); TabPage team2TabPage = new TabPage(); RoundUserControlBase team1Control = CreateControlForRoundSettings(roundSettings.Team1Settings); RoundUserControlBase team2Control = CreateControlForRoundSettings(roundSettings.Team2Settings); roundTabPage.SuspendLayout(); teamsTabControl.SuspendLayout(); team1TabPage.SuspendLayout(); team2TabPage.SuspendLayout(); team1Control.SuspendLayout(); team2Control.SuspendLayout(); roundTabPage.Controls.Add(teamsTabControl); roundTabPage.Name = "TeamTabControl_" + index.ToString(); roundTabPage.Padding = new System.Windows.Forms.Padding(3); roundTabPage.Text = roundSettings.RoundName; roundTabPage.UseVisualStyleBackColor = true; teamsTabControl.Alignment = System.Windows.Forms.TabAlignment.Bottom; teamsTabControl.Controls.Add(team1TabPage); teamsTabControl.Controls.Add(team2TabPage); teamsTabControl.Dock = System.Windows.Forms.DockStyle.Fill; teamsTabControl.Name = "TeamsTabControl_" + index.ToString(); teamsTabControl.SelectedIndex = 0; team1TabPage.Controls.Add(team1Control); team1TabPage.Name = "Team1TabPage_" + index.ToString(); team1TabPage.Padding = new System.Windows.Forms.Padding(3); team1TabPage.Text = team1Name; team1TabPage.UseVisualStyleBackColor = true; team1Control.Dock = System.Windows.Forms.DockStyle.Fill; team1Control.Name = "Team1UserControl_" + index.ToString(); team2TabPage.Controls.Add(team2Control); team2TabPage.Name = "Team2TabPage_" + index.ToString(); team2TabPage.Padding = new System.Windows.Forms.Padding(3); team2TabPage.Text = team2Name; team2TabPage.UseVisualStyleBackColor = true; team2Control.Dock = System.Windows.Forms.DockStyle.Fill; team2Control.Name = "Team2UserControl_" + index.ToString(); RoundsTabControl.Controls.Add(roundTabPage); team1Control.LoadSettings(roundSettings.Team1Settings); team2Control.LoadSettings(roundSettings.Team2Settings); team2Control.ResumeLayout(false); team1Control.ResumeLayout(false); team2TabPage.ResumeLayout(false); team1TabPage.ResumeLayout(false); teamsTabControl.ResumeLayout(false); roundTabPage.ResumeLayout(false); }
private static GameSettings LoadAllRoundSettings(XmlDocument settingsXml, string settingsFilePath, GetSongPlayerSettings songPlayerNameGetterFunction, GetVideoPlayerSettings videoPlayerNameGetterFunction) { GameSettings parsedSettings = new GameSettings(); XmlNodeList rounds = settingsXml.SelectNodes(c_RoundsXPath); if (rounds.Count == 0) { throw new InvalidGameSettingsException(string.Format( "Spēles konfigurācijā nav norādīts neviens raunds.{0}({1})", Environment.NewLine, c_RoundsXPath), settingsFilePath); } foreach (XmlNode round in rounds) { string roundName = null; XmlAttribute roundNameAttribute = round.Attributes[c_RoundNameAttributeName]; if (roundNameAttribute != null) { roundName = roundNameAttribute.InnerText; } if (round.SelectSingleNode(WordGuessingRoundXPaths.RoundNodeName) != null) { XmlNode roundNode = round.SelectSingleNode(WordGuessingRoundXPaths.RoundNodeName); BothTeamSettings newRoundSettings = GetWordGuessingRoundSettings(settingsFilePath, roundNode, roundName); parsedSettings.Rounds.Add(newRoundSettings); } else if (round.SelectSingleNode(ImageRoundXPaths.RoundNodeName) != null) { XmlNode roundNode = round.SelectSingleNode(ImageRoundXPaths.RoundNodeName); BothTeamSettings newRoundSettings = GetImageRoundSettings(settingsFilePath, roundNode, roundName); parsedSettings.Rounds.Add(newRoundSettings); } else if (round.SelectSingleNode(SongRoundXPaths.RoundNodeName) != null) { XmlNode roundNode = round.SelectSingleNode(SongRoundXPaths.RoundNodeName); BothTeamSettings newRoundSettings = GetSongRoundSettings(settingsFilePath, roundNode, songPlayerNameGetterFunction, roundName); parsedSettings.Rounds.Add(newRoundSettings); } else if (round.SelectSingleNode(VideoRoundXPaths.RoundNodeName) != null) { XmlNode roundNode = round.SelectSingleNode(VideoRoundXPaths.RoundNodeName); BothTeamSettings newRoundSettings = GetVideoRoundSettings(settingsFilePath, roundNode, videoPlayerNameGetterFunction, roundName); parsedSettings.Rounds.Add(newRoundSettings); } else { throw new InvalidGameSettingsException(string.Format("Nezināms spēles raunds{0}{1}", Environment.NewLine, round.InnerXml), settingsFilePath); } } return(parsedSettings); }
private static BothTeamSettings GetImageRoundSettings(string settingsFilePath, XmlNode roundSettingsNode, string roundName) { if (string.IsNullOrEmpty(roundName)) { roundName = ImageRoundSettings.DefaultRoundName; } BothTeamSettings roundSettings = new BothTeamSettings(roundName); string[] imageNames = ReadToStringArray(roundSettingsNode, ImageRoundXPaths.Team1ImagesXPath, settingsFilePath, true, false); roundSettings.Team1Settings = new ImageRoundSettings(imageNames, settingsFilePath, DirectoryNames.ImagesDirectory); imageNames = ReadToStringArray(roundSettingsNode, ImageRoundXPaths.Team2ImagesXPath, settingsFilePath, true, false); roundSettings.Team2Settings = new ImageRoundSettings(imageNames, settingsFilePath, DirectoryNames.ImagesDirectory); return(roundSettings); }
private static BothTeamSettings GetVideoRoundSettings(string settingsFilePath, XmlNode roundSettingsNode, GetVideoPlayerSettings videoPlayerNameGetterFunction, string roundName) { if (string.IsNullOrEmpty(roundName)) { roundName = VideoRoundSettings.DefaultRoundName; } BothTeamSettings roundSettings = new BothTeamSettings(roundName); XmlNode node = roundSettingsNode.SelectSingleNode(VideoRoundXPaths.Team1MovieXPath); if (node == null) { throw new InvalidGameSettingsException("Netika atrasts 1. komandas video", settingsFilePath); } string videoFileName = node.Value; string answer = null; node = roundSettingsNode.SelectSingleNode(VideoRoundXPaths.Team1AnswerXPath); if (node != null) { answer = node.InnerText; } roundSettings.Team1Settings = new VideoRoundSettings(videoFileName, answer, settingsFilePath, DirectoryNames.MoviesDirectory, videoPlayerNameGetterFunction); node = roundSettingsNode.SelectSingleNode(VideoRoundXPaths.Team2MovieXPath); if (node == null) { throw new InvalidGameSettingsException("Netika atrasts 2. komandas video ", settingsFilePath); } videoFileName = node.Value; answer = null; node = roundSettingsNode.SelectSingleNode(VideoRoundXPaths.Team2AnswerXPath); if (node != null) { answer = node.InnerText; } roundSettings.Team2Settings = new VideoRoundSettings(videoFileName, answer, settingsFilePath, DirectoryNames.MoviesDirectory, videoPlayerNameGetterFunction); return(roundSettings); }
private static BothTeamSettings GetSongRoundSettings(string settingsFilePath, XmlNode roundSettingsNode, GetSongPlayerSettings songPlayerNameGetterFunction, string roundName) { if (string.IsNullOrEmpty(roundName)) { roundName = SongRoundSettings.DefaultRoundName; } BothTeamSettings roundSettings = new BothTeamSettings(roundName); XmlNode node = roundSettingsNode.SelectSingleNode(SongRoundXPaths.Team1SongXPath); if (node == null) { throw new InvalidGameSettingsException("Netika atrasta 1. komandas dziesma", settingsFilePath); } string songFileName = node.Value; string answer = null; node = roundSettingsNode.SelectSingleNode(SongRoundXPaths.Team1AnswerXPath); if (node != null) { answer = node.InnerText; } roundSettings.Team1Settings = new SongRoundSettings(songFileName, answer, settingsFilePath, DirectoryNames.SongsDirectory, songPlayerNameGetterFunction); node = roundSettingsNode.SelectSingleNode(SongRoundXPaths.Team2SongXPath); if (node == null) { throw new InvalidGameSettingsException("Netika atrasta 2. komandas dziesma", settingsFilePath); } songFileName = node.Value; answer = null; node = roundSettingsNode.SelectSingleNode(SongRoundXPaths.Team2AnswerXPath); if (node != null) { answer = node.InnerText; } roundSettings.Team2Settings = new SongRoundSettings(songFileName, answer, settingsFilePath, DirectoryNames.SongsDirectory, songPlayerNameGetterFunction); return(roundSettings); }
private static BothTeamSettings GetWordGuessingRoundSettings(string settingsFilePath, XmlNode roundSettingsNode, string roundName) { if (string.IsNullOrEmpty(roundName)) { roundName = WordGuessingRoundSettings.DefaultRoundName; } XmlNode badWordCountNode = roundSettingsNode.SelectSingleNode(WordGuessingRoundXPaths.BadWordCountXPath); if (badWordCountNode == null) { throw new InvalidGameSettingsException("Netika atrasts slikto (\"sarkano\") lauku skaits", settingsFilePath); } int badWordCount = int.Parse(badWordCountNode.Value); BothTeamSettings roundSettings = new BothTeamSettings(roundName); string fullSongText = null; XmlNode songTextNode = roundSettingsNode.SelectSingleNode(WordGuessingRoundXPaths.Team1FullSongTextXPath); if (songTextNode != null) { fullSongText = songTextNode.InnerText; } string[] words = ReadToStringArray(roundSettingsNode, WordGuessingRoundXPaths.Team1WordsXPath, settingsFilePath, true, false); roundSettings.Team1Settings = new WordGuessingRoundSettings(words, badWordCount, fullSongText, settingsFilePath); fullSongText = null; songTextNode = roundSettingsNode.SelectSingleNode(WordGuessingRoundXPaths.Team2FullSongTextXPath); if (songTextNode != null) { fullSongText = songTextNode.InnerText; } words = ReadToStringArray(roundSettingsNode, WordGuessingRoundXPaths.Team2WordsXPath, settingsFilePath, true, false); roundSettings.Team2Settings = new WordGuessingRoundSettings(words, badWordCount, fullSongText, settingsFilePath); return(roundSettings); }