almost last step of search : menu is active and we listen to the recognised event from the player.
authorcavaliet
Fri, 20 Nov 2009 17:14:52 +0100
changeset 216 45d2dff788f2
parent 215 d13dbcf861d7
child 217 6cfd723a1378
child 219 5e080a5d2533
almost last step of search : menu is active and we listen to the recognised event from the player.
src/FingersDance.Actions/ActionSearchAnnotation.cs
src/FingersDance.Control.SessionInput/UserControlAnnotationOrSearch.xaml.cs
src/FingersDance.Control.SyncSource/FingersDance.Control.SyncSource.csproj
src/FingersDance.Control.SyncSource/UserControlSyncSource.xaml.cs
src/FingersDance.Control.TimeLine/UserControlTimeLine.xaml.cs
src/FingersDance.Control.UserPanel/UserControlUserPanel.xaml.cs
src/FingersDance/FingersDance.csproj
src/FingersDance/Resources/menu.xml
src/FingersDance/Resources/menu_search.xml
--- a/src/FingersDance.Actions/ActionSearchAnnotation.cs	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance.Actions/ActionSearchAnnotation.cs	Fri Nov 20 17:14:52 2009 +0100
@@ -2,29 +2,51 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.IO;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Navigation;
+using System.Windows.Controls.Primitives;
+
+using FingersDance.Control.TimeLine;
+
 
 namespace FingersDance.Actions
 {
     public class ActionSearchAnnotation : FingersDance.Actions.ActionBase
     {
-
-        
+        UserControlTimeLine myTimeline;
+        String GestureId;
 
         public ActionSearchAnnotation()
         {
-
+            
         }
 
         public ActionSearchAnnotation(Object[] param)
         {
-            //myTimeline = (UserControlTimeLine)args[0];
-            //myAnnotationViewModel = (AnnotationViewModel)args[1];
+            // The context param[0] is the userPanel, so we have to get the timeline's instance.
+            UserControl userPanel = (UserControl)param[0];
+            // Its content...
+            Grid o = (Grid)userPanel.Content;
+            // and the UserControlSyncSource within the grid...
+            UserControl syncSrc = (UserControl)((Grid)o.Children[1]).Children[0];
+            // and finally the timeline
+            myTimeline = (UserControlTimeLine)((Grid)((Grid)syncSrc.Content).Children[0]).Children[0];
+
+            GestureId = (String)param[1];
         }
 
         public void Execute()
         {
-            //if (myTimeline != null)
-            //    myTimeline.addAnnotation(myAnnotationViewModel);
+            Console.WriteLine("ActionSearchAnnotation Execute " + GestureId);
+            if (myTimeline != null)
+                myTimeline.sendNewGesture(GestureId);
         }
     }
 }
--- a/src/FingersDance.Control.SessionInput/UserControlAnnotationOrSearch.xaml.cs	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance.Control.SessionInput/UserControlAnnotationOrSearch.xaml.cs	Fri Nov 20 17:14:52 2009 +0100
@@ -66,6 +66,5 @@
             ChosenMode = chosenMode;
 
         }
-
     }
 }
--- a/src/FingersDance.Control.SyncSource/FingersDance.Control.SyncSource.csproj	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance.Control.SyncSource/FingersDance.Control.SyncSource.csproj	Fri Nov 20 17:14:52 2009 +0100
@@ -152,6 +152,10 @@
       <Project>{99A9037F-5431-44DD-BCE9-ED60670DEBC1}</Project>
       <Name>GestureControl</Name>
     </ProjectReference>
+    <ProjectReference Include="..\FingersDance.ViewModel\FingersDance.ViewModels.csproj">
+      <Project>{E81BB080-0598-43AC-90CE-54D6570C4E9E}</Project>
+      <Name>FingersDance.ViewModels</Name>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <WCFMetadata Include="Service References\" />
--- a/src/FingersDance.Control.SyncSource/UserControlSyncSource.xaml.cs	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance.Control.SyncSource/UserControlSyncSource.xaml.cs	Fri Nov 20 17:14:52 2009 +0100
@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using System.IO;
 using System.Net;
 using System.Windows;
@@ -7,8 +8,10 @@
 using System.Windows.Media;
 using System.Windows.Media.Animation;
 using System.Windows.Navigation;
+
 using FingersDance.Control.TimeLine;
 using FingersDance.Data;
+using FingersDance.ViewModels;
 using FingersDance.Factory;
 using GestureControl;
 
@@ -17,7 +20,10 @@
 	public partial class UserControlSyncSource
 	{
         #region Variables   
-            public event EventHandler OnSuccessAnnotation;
+        public event EventHandler OnSuccessAnnotation;
+
+        private String AnnotationOrSearchMode;
+        private Project searchedProject;
         #endregion
 
 		public UserControlSyncSource()
@@ -27,17 +33,20 @@
 			// Insert code required on object creation below this point.
 		}
 
-        public void Load(string path, Color col, Cutting cut)
+        public void Load(string path, Color col, Cutting cut, String AnnotOrSearchMode, Project searchedProj)
         {
             this.UserControlPlayer.initPlayer(path);
+            AnnotationOrSearchMode = AnnotOrSearchMode;
+            searchedProject = searchedProj;
             //Initialisation du Timer
             UCTimeLine.initTimer(col, cut);
-            this.UserControlPlayer.playerPlay();
-            this.userControlTimeLine.OnSuccessAnnotation += new EventHandler(userControlTimeLine_OnSuccessAnnotation);
-            this.userControlTimeLine.AnnotationAdded += new EventHandler(userControlTimeLine_AnnotationAdded);
-            this.userControlTimeLine.AnnotationRemoved += new EventHandler(userControlTimeLine_AnnotationRemoved);
-            this.UserControlPlayer.PlayerStopOrPause += new EventHandler(UserControlPlayer_PlayerStopOrPause);
-            UserControlPlayer.NewGestureRegognized += new EventHandler(UCTimeLine.UserControlPlayer_NewGestureRegognized);
+            UserControlPlayer.playerPlay();
+            userControlTimeLine.OnSuccessAnnotation += new EventHandler(userControlTimeLine_OnSuccessAnnotation);
+            userControlTimeLine.AnnotationAdded += new EventHandler(userControlTimeLine_AnnotationAdded);
+            userControlTimeLine.AnnotationRemoved += new EventHandler(userControlTimeLine_AnnotationRemoved);
+            UserControlPlayer.PlayerStopOrPause += new EventHandler(UserControlPlayer_PlayerStopOrPause);
+            UserControlPlayer.NewGestureRegognized += new EventHandler(UserControlPlayer_NewGestureRegognized);
+            UCTimeLine.NewGestureRecognized += new EventHandler<NewGestureRecognizedEventArg>(UCTimeLine_NewGestureRecognized);
         }
 
         void userControlTimeLine_AnnotationRemoved(object sender, EventArgs e)
@@ -151,5 +160,68 @@
         {
             UserControlPlayer.playerPause();
         }
+
+
+        public void UserControlPlayer_NewGestureRegognized(object sender, EventArgs e)
+        {
+            try
+            {
+                GestureEventArg grea = (GestureEventArg)e;
+                //Console.WriteLine("Timeline NewGestureRegognized " + grea.Gesture.Name + ", " + grea.Gesture.Start + ", " + grea.Gesture.End);
+                if (AnnotationOrSearchMode == "Annotation")
+                {
+                    // If the stroke has been drawed very fast, end and start can be the same, so we add a little length.
+                    float dur = (float)(grea.End - grea.Start);
+                    if (dur == 0) dur = (float)0.5;
+                    foreach (Gesture elt in grea.Gestures)
+                        UCTimeLine.addAnnotation((float)grea.Start, dur, elt.Name);
+                }
+                else
+                {
+                    // We are in search mode. So we have to get all the searchedProject's annotation which have the wanted gesture
+                    List<Annotation> searchedAnnot = new List<Annotation>();
+                    foreach(Cutting cut in searchedProject.Cuttings)
+                    {
+                        foreach (Annotation annot in cut.AnnotList)
+                        {
+                            foreach(Gesture gest in grea.Gestures)
+                                if (annot.GestureType == gest.Name)
+                                {
+                                    // One of the gesture is enough for the annotation to be added
+                                    searchedAnnot.Add(annot);
+                                    break;
+                                }
+                        }
+                    }
+                    // The list was built. If the number of found annotations is >0, we send the list to the timeline
+                    UCTimeLine.updateAnnotationList(searchedAnnot);
+                }
+            }
+            catch { }
+        }
+
+        public void searchAnnotations(String gestureName)
+        {
+            // We are in search mode. So we have to get all the searchedProject's annotation which have the wanted gesture
+            List<Annotation> searchedAnnot = new List<Annotation>();
+            foreach (Cutting cut in searchedProject.Cuttings)
+            {
+                foreach (Annotation annot in cut.AnnotList)
+                {
+                    if (annot.GestureType == gestureName)
+                    {
+                        // One of the gesture is enough for the annotation to be added
+                        searchedAnnot.Add(annot);
+                    }
+                }
+            }
+            // The list was built. If the number of found annotations is >0, we send the list to the timeline
+            UCTimeLine.updateAnnotationList(searchedAnnot);
+        }
+
+        void UCTimeLine_NewGestureRecognized(object sender, NewGestureRecognizedEventArg e)
+        {
+            searchAnnotations(e.GestureName);
+        }
     }
 }
\ No newline at end of file
--- a/src/FingersDance.Control.TimeLine/UserControlTimeLine.xaml.cs	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance.Control.TimeLine/UserControlTimeLine.xaml.cs	Fri Nov 20 17:14:52 2009 +0100
@@ -36,6 +36,7 @@
         public event EventHandler TimerTick;
         public event EventHandler AnnotationAdded;
         public event EventHandler AnnotationRemoved;
+        public event EventHandler<NewGestureRecognizedEventArg> NewGestureRecognized;
         //SAR
         public event EventHandler OnSuccessAnnotation;
         //ENDSAR
@@ -301,6 +302,11 @@
 
         }
 
+        public void addAnnotation(float start, float dur, String gestureType)
+        {
+            addAnnotation(new AnnotationViewModel(new Annotation("temp", start, dur, gestureType, CurrentColor), 0));
+        }
+
         public void startOrEndAnnotation(String gestureType)
         {
             Boolean annotOk = true;
@@ -361,22 +367,6 @@
             }
         }
 
-
-        public void UserControlPlayer_NewGestureRegognized(object sender, EventArgs e)
-        {
-            try
-            {
-                GestureEventArg grea = (GestureEventArg)e;
-                //Console.WriteLine("Timeline NewGestureRegognized " + grea.Gesture.Name + ", " + grea.Gesture.Start + ", " + grea.Gesture.End);
-                // If the stroke has been drawed very fast, end and start can be the same, so we add a little length.
-                float dur = (float)(grea.End - grea.Start);
-                if (dur == 0) dur = (float)0.5;
-                foreach(Gesture elt in grea.Gestures)
-                    addAnnotation(new AnnotationViewModel(new Annotation("temp", (float)grea.Start, (float)(grea.End - grea.Start), elt.Name, CurrentColor), 0));
-            }
-            catch { }
-        }
-
         private void listview_PreviewContactDown(object sender, Microsoft.Surface.Presentation.ContactEventArgs e)
         {
             FrameworkElement findSource = e.OriginalSource as FrameworkElement;
@@ -485,6 +475,42 @@
             canceledAnnotationVM = null;
         }
 
+        //
+        // Is search mode, function of the search gesture, we have to be able to update frequently the current list of annotation
+        //
+        public void updateAnnotationList(List<Annotation> la)
+        {
+            tv.DataContext = new CuttingViewModel(new Cutting("temp", "search", la), AnnotWidth, tv.ScaleX);
+        }
+
+        //
+        // Is search mode, we need the timeline to send the NewGestureEvent
+        //
+        public void sendNewGesture(String gestureName)
+        {
+            NewGestureRecognized(this, new NewGestureRecognizedEventArg(gestureName));
+        }
+
 
 	}
+
+
+    /// <summary>
+    /// AnnotationOrSearchEventArg
+    /// </summary>
+    public class NewGestureRecognizedEventArg : EventArgs
+    {
+        public String GestureName
+        {
+            get;
+            set;
+        }
+
+        public NewGestureRecognizedEventArg(String gestureName)
+        {
+
+            GestureName = gestureName;
+
+        }
+    }
 }
\ No newline at end of file
--- a/src/FingersDance.Control.UserPanel/UserControlUserPanel.xaml.cs	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance.Control.UserPanel/UserControlUserPanel.xaml.cs	Fri Nov 20 17:14:52 2009 +0100
@@ -27,7 +27,6 @@
         public int id = 0;
         public uint idcolor = 0;    //The color of the Pivot Button
         private Cutting cut;
-        private Project searchedProject;
 
         //variables for TagSound Control
         double baseOrientation = 0;
@@ -60,9 +59,8 @@
             this.InitializeComponent();
             id = idPar;
             cut = cutPar;
-            searchedProject = searchedProj;
             // We make the syncsrc load the good video and cutting 
-            this.UserControlSyncSource.Load(path, col, cut);
+            this.UserControlSyncSource.Load(path, col, cut, AnnotationOrSearchMode, searchedProj);
             UserControlSyncSource.OnSuccessAnnotation += new EventHandler(UserControlSyncSource_OnSuccessAnnotation);
             // We make the menu load the good xml
             UCMenu.MenuXmlFile = (AnnotationOrSearchMode == "Search") ? "menu_search.xml" : "menu.xml";
--- a/src/FingersDance/FingersDance.csproj	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance/FingersDance.csproj	Fri Nov 20 17:14:52 2009 +0100
@@ -143,9 +143,9 @@
     <Content Include="Resources\oneflat.wmv">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Resource Include="Resources\videos.xml">
+    <Content Include="Resources\videos.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Resource>
+    </Content>
     <Resource Include="FingersDance.xml" />
   </ItemGroup>
   <ItemGroup>
--- a/src/FingersDance/Resources/menu.xml	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance/Resources/menu.xml	Fri Nov 20 17:14:52 2009 +0100
@@ -1,254 +1,128 @@
-<?xml version="1.0" encoding="UTF-8"?> 
+<?xml version="1.0" encoding="UTF-8"?>
 <Menu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-	<Items>
-		<Item>
-			<Name>Annotation</Name>
-			<Items>
-				<Item>
-					<Name>Cinematographique</Name>
-					<Items>
-						<Item>
-							<Name>Mouv Camera</Name>
-							<Items>
-								<Item>
-									<Name>MouvCam1</Name>
-									<Items/>
-									<Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-									<Action>MouvCam1</Action>
-								</Item>
-								<Item>
-									<Name>MouvCam2</Name>
-									<Items/>
-									<Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-									<Action>MouvCam2</Action>
-								</Item>
-							</Items>
-							<Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-							<Action>MouvCam</Action>
-						</Item>
-						<Item>
-							<Name>Axe de Camera</Name>
-							<Items>
-								<Item>
-									<Name>Axe camera1</Name>
-									<Items/>
-									<Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-									<Action>Axecamera1</Action>
-								</Item>
-								<Item>
-									<Name>Axe camera2</Name>
-									<Items/>
-									<Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-									<Action>Axecamera2</Action>
-								</Item>
-								<Item>
-									<Name>Axe camera3</Name>
-									<Items/>
-									<Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-									<Action>Axecamera3</Action>
-								</Item>
-								<Item>
-									<Name>Axe camera4</Name>
-									<Items/>
-									<Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-									<Action>Axecamera4</Action>
-								</Item>
-							</Items>
-							<Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-							<Action>Axecamera</Action>
-						</Item>
-					</Items>
-					<Ressource>FingersDanceAnnotationButtonNiveau2</Ressource>
-					<Action>Cinematographique</Action>
-				</Item>						
-				<Item>
-					<Name>Choregraphique</Name>
-					<Items>
-						<Item>
-							<Name>Saut 1</Name>
-							<Items/>
-							<Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-							<Action>ActionStartOrEndAnnotation</Action>
-						</Item>
-						<Item>
-							<Name>Pirouette 2</Name>
-							<Items/>
-							<Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-							<Action>ActionStartOrEndAnnotation</Action>
-						</Item>
+  <Items>
+    <Item>
+      <Name>Annotation</Name>
+      <Items>
+        <Item>
+          <Name>Chorégraphique</Name>
+          <Items>
+            <Item>
+              <Name>1 DANSEUR</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>2 DANSEURS</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>3 DANSEURS</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
             <Item>
-              <Name>Grammaire Chorégraphique</Name>
-              <Items>
-                <Item>
-                  <Name>1 danseur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>2 danseur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>3 danseur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>4 danseur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Tous les danseurs</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Mouvement Rotatif</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Contact Table/Danseur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-              </Items>
-              <Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-              <Action>Grammaire Chorégraphique</Action>
+              <Name>TOUS LES DANSEURS</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>TRIGGER</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>AVEC PESANTEUR</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>CONTRE PESANTEUR</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>ALIGNEMENT</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>CONTACT VISUEL</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
             </Item>
             <Item>
-              <Name>Personnages</Name>
-              <Items>
-                <Item>
-                  <Name>Trigger</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Jeux de contre point</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Glissades</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Choutes contre la pesanteur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Choutes avec la pesanteur</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Alignements</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Contact visuel</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Mouvement contraintes</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>U-ing @ O-wing (détourage)</Name>
-               <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-             </Items>
-              <Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-              <Action>Personnage</Action>
+              <Name>MOUVEMENT CONTRAINTE</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>CONTACT TABLE-DANSEUR</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+          </Items>
+          <Ressource>FingersDanceAnnotationButtonNiveau2</Ressource>
+          <Action>Annotation</Action>
+        </Item>
+        <Item>
+          <Name>Cinématographique</Name>
+          <Items>
+            <Item>
+              <Name>MVT IMAGE AVANT</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>MVT IMAGE ARRIERE</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
             </Item>
             <Item>
-              <Name>Objets</Name>
-              <Items>
-                <Item>
-                  <Name>Une</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Deux</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Trois</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Toutes</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-              </Items>
-              <Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-              <Action>Objets</Action>
+              <Name>TRAVELLING HAUT</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>TRAVELLING BAS</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
             </Item>
             <Item>
-              <Name>Les alignements des tables</Name>
-              <Items>
-                <Item>
-                  <Name>Sous la table</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-                <Item>
-                  <Name>Sur la table</Name>
-                  <Items/>
-                  <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
-                  <Action>ActionStartOrEndAnnotation</Action>
-                </Item>
-              </Items>
-              <Ressource>FingersDanceAnnotationButtonNiveau3</Ressource>
-              <Action>Les alignements des tables</Action>
+              <Name>TRAVELLING GAUCHE</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
+            </Item>
+            <Item>
+              <Name>TRAVELLING DROITE</Name>
+              <Items/>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
+              <Action>ActionStartOrEndAnnotation</Action>
             </Item>
-					</Items>
-					<Ressource>FingersDanceAnnotationButtonNiveau2</Ressource>
-					<Action>Choregraphique</Action>
-				</Item>
-			</Items>
-			<Ressource>FingersDanceAnnotationButtonNiveau1</Ressource>
-			<Action>Annotation</Action>
-		</Item>
-		<Item>
-			<Name>ButtonRecherche</Name>
-			<Items/>
-			<Ressource>FingersDanceAnnotationButtonNiveau1</Ressource>
-			<Action>ButtonRecherche</Action>
-		</Item>
-	</Items>
+          </Items>
+          <Ressource>FingersDanceAnnotationButtonNiveau2</Ressource>
+          <Action>Annotation</Action>
+        </Item>
+      </Items>
+      <Ressource>FingersDanceAnnotationButtonNiveau1</Ressource>
+      <Action></Action>
+    </Item>
+  </Items>
 </Menu>
\ No newline at end of file
--- a/src/FingersDance/Resources/menu_search.xml	Thu Nov 19 18:05:52 2009 +0100
+++ b/src/FingersDance/Resources/menu_search.xml	Fri Nov 20 17:14:52 2009 +0100
@@ -22,7 +22,7 @@
             <Item>
               <Name>3 DANSEURS</Name>
               <Items/>
-              <Ressource>1 danceur</Ressource>
+              <Ressource>FingersDanceAnnotationButtonNiveau4</Ressource>
               <Action>ActionSearchAnnotation</Action>
             </Item>
             <Item>