src/FingersDance.Control.Screen/UserControlScreen.xaml.cs
changeset 148 c379899e9c94
parent 143 9f157d9c725b
child 152 46577fd0a294
--- a/src/FingersDance.Control.Screen/UserControlScreen.xaml.cs	Wed Oct 14 13:45:55 2009 +0200
+++ b/src/FingersDance.Control.Screen/UserControlScreen.xaml.cs	Wed Oct 14 14:02:31 2009 +0200
@@ -1,6 +1,7 @@
 using System;
 using System.IO;
 using System.Net;
+using System.Collections.Generic;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Data;
@@ -20,28 +21,27 @@
         public int id = 0;
         public event EventHandler UC_Screen_NewSession;
         public MainViewModel MainViewModel;
-        public User User = new User();
+        public ProjectViewModel Project = new ProjectViewModel();
+        List<Session> sessions = new List<Session>();
+        User User = new User();
 
         public UserControlScreen(int id, MainViewModel mvmodel)
         {
             this.InitializeComponent();
             this.id = id;
             MainViewModel = mvmodel;
-
             if (MainViewModel.Session.VideoPath.Equals(""))
             {
                 //1-Creation de la ListVideo
                 UserControlListVideo ListVideo = new UserControlListVideo();
                 ListVideo.Name = "ListVideo1";
-
                 //2-Ajout de la ListVideo au ControlScreen
                 this.AddToGrid(ListVideo);
-
                 //3-Creation des Events pour chaque item de la video
                 ListVideo.EH_ItemVideo1_ContactDown += new System.EventHandler(this.ListVideo_EH_ItemVideo_ContactDown);
             }
             else
-                ListVideo_EH_ItemVideo_ContactDown(null, null);
+                OpenProject();
         }
 
         //Rajout un UIElement vers la grid du screen.
@@ -56,42 +56,136 @@
 
         private void ListVideo_EH_ItemVideo_ContactDown(object sender, EventArgs e)
         {
-            //1-Creation d'une nouvelle seance.                
-            UserControlSessionInput SessionInput = new UserControlSessionInput();
-            SessionInput.Name = "SessionInput";
-
             try
             {
-                //2-Recuperer la Grid (Layout root du UC screen)qui contient le UCListVideo et l'ajouter.
-                
-                LayoutRoot.Children.Add(SessionInput);
-
-                //2.5 rensegner la video choisie au screen
-                if (sender != null)
-                    MainViewModel.CreateSession(((UserControlListVideo)sender).VideoName, ((UserControlListVideo)sender).path);
-
-                //3-Creation des Events
-                SessionInput.EH_SurfaceButtonSubmit_ContactDown += new System.EventHandler(this.SessionInput_EH_SurfaceButtonSubmit_ContactDown);
-                //4-Supression du UC List Video
+                //1 rensegner la video choisie au screen
+                MainViewModel.CreateSession(((UserControlListVideo)sender).VideoName, ((UserControlListVideo)sender).path);
+                //2-Supression du UC List Video
                 LayoutRoot.Children.Remove((UserControlListVideo)sender);
+                OpenSession();
             }
             catch (Exception ex) { }
         }
-        
+
+        private void OpenSession()
+        {
+            try
+            {
+                sessions = LoadSessions(MainViewModel.Session.VideoPath);
+                UserControlListSession listSession = new UserControlListSession(sessions);
+                listSession.Name = "ListSession";
+                LayoutRoot.Children.Add(listSession);
+                listSession.EH_List_ContactDown += new EventHandler(listSession_EH_List_ContactDown);
+            }
+            catch (Exception) { }
+        }
+
+        private List<Session> LoadSessions(string name)
+        {
+            try
+            {
+                return new List<Session>();
+            }
+            catch (Exception) 
+            {
+                return new List<Session>();
+            }
+        }
+
+        void listSession_EH_List_ContactDown(object sender, EventArgs e)
+        {
+            try
+            {
+                LayoutRoot.Children.Remove((UserControlListSession)sender);
+                if (((UserControlListSession)sender).SelectedItem.Equals("New Session"))
+                {
+                    UserControlSessionInput SessionInput = new UserControlSessionInput();
+                    SessionInput.Name = "SessionInput";
+                    LayoutRoot.Children.Add(SessionInput);
+                    SessionInput.EH_SurfaceButtonSubmit_ContactDown += new System.EventHandler(this.SessionInput_EH_SurfaceButtonSubmit_ContactDown);
+                }
+                else
+                {
+                    foreach (Session elt in sessions)
+                    {
+                        if (elt.Name.Equals(((UserControlListSession)sender).SelectedItem))
+                        {
+                            MainViewModel.Session.Projects = elt.Projects;
+                            OpenProject();
+                            return;
+                        }
+                    }
+                }
+            }
+            catch (Exception) { }
+        }
+
         private void SessionInput_EH_SurfaceButtonSubmit_ContactDown(object sender, EventArgs e)
         {
             try
             {
-                //1-Creation du projet
-                User = ((UserControlSessionInput)sender).User;
-                MainViewModel.CreateProject(User);
+                MainViewModel.Session.Alias = ((UserControlSessionInput)sender).Alias;
+                MainViewModel.Session.Email = ((UserControlSessionInput)sender).Email;
+                MainViewModel.Session.Description = ((UserControlSessionInput)sender).Description;
+                MainViewModel.Session.Name = ((UserControlSessionInput)sender).Name;
+                
                 //2-Suppression UCSession Input
                 LayoutRoot.Children.Remove((UserControlSessionInput)sender);
-                //3-Suppression du UC Screen
-                if(UC_Screen_NewSession!=null)
-                    UC_Screen_NewSession(this, new EventArgs());
+                OpenProject();
             }
             catch (Exception ex) { }
         }
+
+        private void OpenProject()
+        {
+            try
+            {
+                UserControlListProject listProjects = new UserControlListProject(MainViewModel.Session.Projects);
+                listProjects.Name = "ListProjects";
+                LayoutRoot.Children.Add(listProjects);
+                listProjects.EH_Item_ContactDown += new EventHandler(listProjects_EH_Item_ContactDown);
+            }
+            catch (Exception) { }
+        }
+
+        void listProjects_EH_Item_ContactDown(object sender, EventArgs e)
+        {
+            try
+            {
+                LayoutRoot.Children.Remove((UserControlListProject)sender);
+                if (((UserControlListProject)sender).SelectedItem.Equals("New Project"))
+                {
+                    UserControlNewProject newProject = new UserControlNewProject(User);
+                    newProject.Name = "newProject";
+                    LayoutRoot.Children.Add(newProject);
+                    newProject.EH_NewProject_ContactDown += new EventHandler(newProject_EH_NewProject_ContactDown);
+                } 
+                else
+                {
+                    foreach(KeyValuePair<string, Project> elt in MainViewModel.Session.Projects)
+                        if (elt.Key.Equals(((UserControlListProject)sender).SelectedItem))
+                        {
+                            Project = new ProjectViewModel(elt.Value);
+                            if (UC_Screen_NewSession != null)
+                                UC_Screen_NewSession(this, new EventArgs());
+                            return;
+                        }
+                }
+            }
+            catch (Exception) { }
+        }
+
+        void newProject_EH_NewProject_ContactDown(object sender, EventArgs e)
+        {
+            try
+            {
+                LayoutRoot.Children.Remove((UserControlNewProject)sender);
+                Project = new ProjectViewModel(((UserControlNewProject)sender).Project);
+                MainViewModel.Session.Projects.Add(Project.Name, Project.Project);
+                if (UC_Screen_NewSession != null)
+                    UC_Screen_NewSession(this, new EventArgs());
+            }
+            catch (Exception) { }
+        }
 	}
 }
\ No newline at end of file