示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }