网络电视精灵

来源:互联网 发布:呼叫中心网络拓扑图 编辑:程序博客网 时间:2024/04/28 11:44
    public partial class Form1 : Form    {        public Form1()
public class TvProgram    {        private DateTime playTime; //播出时间        public DateTime PlayTime        {            get { return playTime; }            set { playTime = value; }        }        private string median; //时段        public string Median        {            get { return median; }            set { median = value; }        }        private string programName; //节目名称        public string ProgramName        {            get { return programName; }            set { programName = value; }        }        private string filePath; //节目文件路径        public string FilePath        {            get { return filePath; }            set { filePath = value; }        }    }

public abstract  class ChannelBase    {        private string channelName; //频道名称        public string ChannelName        {            get { return channelName; }            set { channelName = value; }        }        private List<TvProgram> programList; //节目列表        public List<TvProgram> ProgramList        {            get { return programList; }            set { programList = value; }        }      //解析频道节目单信息        public abstract void Fetch();    }

public class ChannelManager    {        private Dictionary<string, ChannelBase> fullChannel = new Dictionary<string, ChannelBase>();        public Dictionary<string, ChannelBase> FullChannel         {            get { return fullChannel; }            set { fullChannel = value; }        }        public void LoadChannel()        {            fullChannel.Clear();            XmlDocument xmlDoc = new XmlDocument();            xmlDoc.Load("FullChannels.xml");            XmlNode xmlRoot = xmlDoc.DocumentElement;            foreach (XmlNode node in xmlRoot.ChildNodes)            {                ChannelBase channel = CreateChannel(node["channelType"].InnerText);                channel.ChannelName=node["tvChannel"].InnerText;                fullChannel.Add(channel.ChannelName,channel);            }        }        public ChannelBase CreateChannel(string type)         {            ChannelBase channel = null;            if (type.Equals("TypeA"))            {                channel = new TypeAChannel();            }            else            {                channel = new TypeBChannel();            }            return channel;        }        //public ChannelManager()        //{        //    fullChannels = new Dictionary<string,ChannelBase>();        //}    }

public  class TypeAChannel:ChannelBase    {       public override void Fetch()       {           XmlDocument xmlDoc = new XmlDocument();           xmlDoc.Load("北京电视台.xml");           XmlNode elem = xmlDoc.DocumentElement;           ProgramList = new List<TvProgram>();           foreach (XmlNode node in elem.ChildNodes)           {               if (node.Name == "tvProgramTable")               {                   foreach (XmlNode subnode in node.ChildNodes)                   {                       TvProgram program = new TvProgram();                       program.PlayTime = DateTime.Parse(subnode["playTime"].InnerText);                       program.Median = subnode["meridien"].InnerText; ;                       program.ProgramName = subnode["programName"].InnerText;                       program.FilePath = subnode["path"].InnerText;                       this.ProgramList.Add(program);                   }               }           }       }    }

public class TypeBChannel:ChannelBase    {       public override void Fetch()       {           //获取频道列表           XmlDocument xmlDoc = new XmlDocument();           xmlDoc.Load("凤凰卫视.xml");           XmlNode elem = xmlDoc.DocumentElement;           ProgramList = new List<TvProgram>();           foreach (XmlNode node in elem.ChildNodes[0]) //[0]第一个节点           {                       TvProgram program = new TvProgram();                       program.PlayTime = DateTime.Parse(node["playTime"].InnerText);                       program.Median = "";                       program.ProgramName = node["name"].InnerText;                       program.FilePath = node["path"].InnerText;                       this.ProgramList.Add(program);           }       }    }

{ InitializeComponent(); } ChannelManager ma = new ChannelManager(); private void Form1_Load(object sender, EventArgs e) { this.dataGridView1.AutoGenerateColumns = false; //避免生成多余的列 this.treeView1.Nodes.Clear(); //清空所有节点 //初始化根节点 ma.LoadChannel(); TreeNode nodeFirstLevel = new TreeNode("我的电视台"); this.treeView1.Nodes.Add(nodeFirstLevel); nodeFirstLevel = new TreeNode("所有电视台"); this.treeView1.Nodes.Add(nodeFirstLevel); //加载“所有电视台”,循环所有频道集合 foreach (ChannelBase dicOne in ma.FullChannel.Values) { //定义一个treeview节点 TreeNode nodeLevel = new TreeNode(dicOne.ChannelName); this.treeView1.Nodes.Add(nodeLevel); TreeNode node = new TreeNode(); node.Text = dicOne.ChannelName; node.Tag = dicOne; this.treeView1.Nodes[2].Nodes.Add(node); } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (this.treeView1.SelectedNode.Level == 0) { return; } //获取节目 this.ma.FullChannel[this.treeView1.SelectedNode.Text].Fetch(); this.dataGridView1.DataSource = this.ma.FullChannel[this.treeView1.SelectedNode.Text].ProgramList; } }

0 0
原创粉丝点击