# HG changeset patch # User ymh # Date 1253016817 -7200 # Node ID 0662bd606c28386edea336be4b08de86300dfe8a # Parent 1ec0ef228158d7bd1a9dbf8a3f0af24f295d0736# Parent c724ac22918191246ae07cff4ea75d19a9fe4b3d Merge diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.ActionFactory/ActionFactory.cs --- a/src/FingersDance.ActionFactory/ActionFactory.cs Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.ActionFactory/ActionFactory.cs Tue Sep 15 14:13:37 2009 +0200 @@ -3,25 +3,23 @@ using System.Linq; using System.Text; using FingersDance.Control.Player; -using FingersDance.Actions; namespace FingersDance.ActionFactory { public class ActionFactory { - private Dictionary actionDict = new Dictionary(); + private static ActionGenerator _Factory; public ActionFactory() + { } + + public ActionGenerator GetGenerator() { - actionDict.Add("ActionPlayMedia", typeof(FingersDance.Actions.ActionPlayMedia)); - actionDict.Add("ActionShowMessage", typeof(FingersDance.Actions.ActionShowMessage)); - actionDict.Add("ActionOpenMedia", typeof(FingersDance.Actions.ActionOpenMedia)); - actionDict.Add("ActionStopMedia", typeof(FingersDance.Actions.ActionStopMedia)); - } - - public ActionBase GetAction(string T, object Args) - { - return (ActionBase)Activator.CreateInstance(actionDict[T]); + if (_Factory == null) + { + _Factory = new ActionGenerator(); + } + return _Factory; } } } diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.ActionFactory/ActionGenerator.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/FingersDance.ActionFactory/ActionGenerator.cs Tue Sep 15 14:13:37 2009 +0200 @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using FingersDance.Actions; + +namespace FingersDance.ActionFactory +{ + public class ActionGenerator + { + private Dictionary actionDict = new Dictionary(); + + public ActionGenerator() + { + actionDict.Add("ActionPlayMedia", typeof(FingersDance.Actions.ActionPlayMedia)); + actionDict.Add("ActionShowMessage", typeof(FingersDance.Actions.ActionShowMessage)); + actionDict.Add("ActionOpenMedia", typeof(FingersDance.Actions.ActionOpenMedia)); + actionDict.Add("ActionStopMedia", typeof(FingersDance.Actions.ActionStopMedia)); + } + + public ActionBase GetAction(string T, object Args) + { + return (ActionBase)Activator.CreateInstance(actionDict[T]); + } + } +} diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.ActionFactory/FingersDance.ActionFactory.csproj --- a/src/FingersDance.ActionFactory/FingersDance.ActionFactory.csproj Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.ActionFactory/FingersDance.ActionFactory.csproj Tue Sep 15 14:13:37 2009 +0200 @@ -46,6 +46,7 @@ + diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Menu/FingersDance.Control.Menu.csproj --- a/src/FingersDance.Control.Menu/FingersDance.Control.Menu.csproj Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.Control.Menu/FingersDance.Control.Menu.csproj Tue Sep 15 14:13:37 2009 +0200 @@ -88,6 +88,8 @@ + + ResXFileCodeGenerator @@ -131,5 +133,15 @@ Designer + + + {C7B905EA-0678-4DA0-8EF8-7F9CBD22818E} + FingersDance.ActionFactory + + + {1E80D5A1-C45C-443B-8992-4A4D78D280FC} + FingersDance.Actions + + \ No newline at end of file diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Menu/Item.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/FingersDance.Control.Menu/Item.cs Tue Sep 15 14:13:37 2009 +0200 @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FingersDance.Control.Menu +{ + [Serializable] + public class Item + { + public List Items = new List(); + public string Name = ""; + public string Action = ""; + } +} diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Menu/Menu.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/FingersDance.Control.Menu/Menu.cs Tue Sep 15 14:13:37 2009 +0200 @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FingersDance.Control.Menu +{ + [Serializable] + public class Menu + { + public List Items = new List(); + } +} diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Menu/SurfaceMenuTest.xaml.cs --- a/src/FingersDance.Control.Menu/SurfaceMenuTest.xaml.cs Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.Control.Menu/SurfaceMenuTest.xaml.cs Tue Sep 15 14:13:37 2009 +0200 @@ -25,6 +25,8 @@ /// /// Default constructor. /// + /// + public SurfaceWindow1() { InitializeComponent(); diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Menu/UserControlMenu.xaml --- a/src/FingersDance.Control.Menu/UserControlMenu.xaml Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.Control.Menu/UserControlMenu.xaml Tue Sep 15 14:13:37 2009 +0200 @@ -8,47 +8,19 @@ x:Name="UserControl" Width="245" Height="Auto" xmlns:Custom="http://schemas.microsoft.com/surface/2008"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Menu/UserControlMenu.xaml.cs --- a/src/FingersDance.Control.Menu/UserControlMenu.xaml.cs Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.Control.Menu/UserControlMenu.xaml.cs Tue Sep 15 14:13:37 2009 +0200 @@ -7,6 +7,9 @@ using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Navigation; +using Microsoft.Surface; +using Microsoft.Surface.Presentation; +using System.Xml.Serialization; namespace FingersDance.Control.Menu { @@ -23,32 +26,97 @@ //Premet de deplacer les sous menus vers la droite pour avoir un effect tree view private void initChildSize() { - //Niveau 1 - PanelAnnotation.Width -= 0.10*this.Width; - PanelRecherche.Width -= 0.10 * this.Width; - //Niveau 2 - PanelChildChore.Width -= 0.10 * this.Width; - PanelChildCine.Width -= 0.10 * this.Width; - //Niveau 3 - PanelChild1AxeCam.Width -= 0.05 * this.Width; - PanelChild1MouvCam.Width -= 0.05 * this.Width; - + StreamReader reader = null; + reader = new StreamReader("../../Menu.iri"); + XmlSerializer serializer = new XmlSerializer(typeof(Menu)); + Menu temp = (Menu)serializer.Deserialize(reader); + foreach (Item elt in temp.Items) + try + { + LayoutRoot.Children.Add(CreateMenuItem(elt)); + } + catch (Exception) { } + reader.Close(); } - #region Events - //Annotation - private void ButtonAnnotation_ContactDown(object sender, Microsoft.Surface.Presentation.ContactEventArgs e) - { - if (PanelAnnotation.Visibility == Visibility.Collapsed) - { - PanelAnnotation.Visibility = Visibility.Visible; - } - else - { - PanelAnnotation.Visibility = Visibility.Collapsed; - } - } + public StackPanel CreateMenuItem(Item item) + { + try + { + StackPanel MItem = new StackPanel(); + Microsoft.Surface.Presentation.Controls.SurfaceButton ItemButton = new Microsoft.Surface.Presentation.Controls.SurfaceButton(); + ItemButton.Content = item.Name; + if (item.Items.Count > 0) + { + ItemButton.ContactDown += ButtonMenu_ContactDown; + ItemButton.Click += ButtonMenu_ContactDown; + MItem.Children.Add(ItemButton); + StackPanel Temp = new StackPanel(); + Temp.Margin = new Thickness(15,0,0,0); + foreach (Item elt in item.Items) + try + { + Temp.Children.Add(CreateMenuItem(elt)); + } + catch (Exception) { } + Temp.Name = ItemButton.Content + "Panel"; + Temp.Visibility = Visibility.Collapsed; + MItem.Children.Add(Temp); + } + else + { + ItemButton.ContactDown += GenerateAction; + ItemButton.Click += GenerateAction; + MItem.Children.Add(ItemButton); + } + return MItem; + } + catch (Exception ex) + { + throw ex; + } + } + private void GenerateAction(Object sender, RoutedEventArgs Event) + { + try + { + ActionFactory.ActionGenerator AG = (new ActionFactory.ActionFactory()).GetGenerator(); + FingersDance.Actions.ActionBase action = AG.GetAction("Action" + ((Microsoft.Surface.Presentation.Controls.SurfaceButton)sender).Content, null); + if (action != null) + { + //action.Execute(); + //this.debug.addToList(action.GetType().ToString()); + } + } + catch (Exception e) { } + } + + private void ButtonMenu_ContactDown(object sender, RoutedEventArgs e) + { + foreach (UIElement Child in ((Panel)((Microsoft.Surface.Presentation.Controls.SurfaceButton)sender).Parent).Children) + try + { + if (((StackPanel)Child).Name.Equals(((Microsoft.Surface.Presentation.Controls.SurfaceButton)sender).Content + "Panel")) + { + if (((StackPanel)Child).Visibility == Visibility.Collapsed) + { + ((StackPanel)Child).Visibility = Visibility.Visible; + } + else + { + ((StackPanel)Child).Visibility = Visibility.Collapsed; + } + return; + } + } + catch (Exception ex) { } + } + + #region Events + + /* + //Annotation private void ButtonAnnotation_Click(object sender, RoutedEventArgs e) { if (PanelAnnotation.Visibility == Visibility.Collapsed) @@ -180,6 +248,8 @@ PanelChild1AxeCam.Visibility = Visibility.Collapsed; } } + */ + #endregion diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance.Control.Player/UserControlPlayer.xaml --- a/src/FingersDance.Control.Player/UserControlPlayer.xaml Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance.Control.Player/UserControlPlayer.xaml Tue Sep 15 14:13:37 2009 +0200 @@ -15,7 +15,7 @@ - + diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance/FingersDance.csproj --- a/src/FingersDance/FingersDance.csproj Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance/FingersDance.csproj Tue Sep 15 14:13:37 2009 +0200 @@ -136,6 +136,10 @@ + + {C7B905EA-0678-4DA0-8EF8-7F9CBD22818E} + FingersDance.ActionFactory + {0EC4C48C-132C-4926-9A09-A4135C58688C} FingersDance.Control.Pivot diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance/MainSurfaceWindow.xaml.cs --- a/src/FingersDance/MainSurfaceWindow.xaml.cs Tue Sep 15 13:30:58 2009 +0200 +++ b/src/FingersDance/MainSurfaceWindow.xaml.cs Tue Sep 15 14:13:37 2009 +0200 @@ -25,6 +25,10 @@ /// /// Default constructor. /// + /// + + ActionFactory.ActionGenerator _Factory = new FingersDance.ActionFactory.ActionFactory().GetGenerator(); + public SurfaceWindow1() { InitializeComponent(); diff -r 1ec0ef228158 -r 0662bd606c28 src/FingersDance/Menu.iri --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/FingersDance/Menu.iri Tue Sep 15 14:13:37 2009 +0200 @@ -0,0 +1,74 @@ + + + + + Annotation + + + Cinematographique + + + MouvCam1 + + MouvCam1 + + + MouvCam2 + + MouvCam2 + + + Cinematographique + + + Camera + + + Axe camera1 + + Axe camera1 + + + Axe camera2 + + Axe camera2 + + + Axe camera3 + + Axe camera3 + + + Axe camera4 + + Axe camera4 + + + Camera + + + Choregraphique + + + ChildChore1 + + ChildChore1 + + + ChildChore2 + + ChildChore2 + + + Choregraphique + + + Annotation + + + ButtonRecherche + + ButtonRecherche + + + \ No newline at end of file