middleware/src/Debug/DebugParameters.xaml.cs
changeset 5 d40f84d77db4
child 6 93dfb08dcc97
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Debug/DebugParameters.xaml.cs	Mon Mar 19 10:21:56 2012 +0100
@@ -0,0 +1,118 @@
+/*
+ * Projet : TraKERS
+ * Module : MIDDLEWARE
+ * Sous-Module : Debug
+ * Classe : DebugParameters
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Code source attaché à la fenêtre de paramétrage du Middleware.
+ * Celui-ci permet de charger/sauvegarder les paramètres stockés dans KinectMain.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using Trakers.Tracking;
+using System.Reflection;
+using System.Resources;
+
+namespace Trakers.Debug
+{
+    /// <summary>
+    /// Interaction logic for DebugParameters.xaml
+    /// </summary>
+    public partial class DebugParameters : Window
+    {
+        //Membre d'accès à KinectMain.
+        private KinectMain kinectMain;
+        private ResourceManager rm;
+
+        /*
+         * Constructeur : On ouvre la fenêtre et on charge les paramètres.
+         */
+        public DebugParameters(KinectMain _kinectMain)
+        {
+            rm = new ResourceManager("Trakers.Properties.resources", Assembly.GetExecutingAssembly());
+            kinectMain = _kinectMain;
+            InitializeComponent();
+            getParameters();
+        }
+
+        /*
+         * Permet de charger les paramètres depuis KinectMain et les affiche dans la fenêtre de paramétrage.
+         */
+        public void getParameters()
+        {
+            searchMinDistanceTB.Text = kinectMain.getMinDistHands().ToString();
+            searchMaxDistanceTB.Text = kinectMain.getMaxDistHands().ToString();
+            connexionHostTB.Text = kinectMain.getConnexionHost();
+            connexionPortTB.Text = kinectMain.getConnexionPort().ToString();
+            timerElapsingTB.Text = kinectMain.getTimerElapsing().ToString();
+        }
+
+        /*
+         * Permet de sauvegarder les paramètres de la fenêtre de paramétrage vers KinectMain.
+         */
+        public void setParameters()
+        {
+            try
+            {
+                ExceptionInParametersLbl.Content = "";
+
+                float minDistHands = float.Parse(searchMinDistanceTB.Text);
+                float maxDistHands = float.Parse(searchMaxDistanceTB.Text);
+                int connexionPort = int.Parse(connexionPortTB.Text);
+                int timerElapsing = int.Parse(timerElapsingTB.Text);
+
+                if (maxDistHands <= 0 || minDistHands <= 0 || maxDistHands > 4 || minDistHands > 4 || minDistHands >= maxDistHands || connexionPort < 0 || timerElapsing < 0)
+                {
+                    ExceptionInParametersLbl.Content = rm.GetString("loadParametersIncorrect");
+                }
+                else
+                {
+                    kinectMain.setMinDistHands(minDistHands);
+                    kinectMain.setMaxDistHands(maxDistHands);
+                    kinectMain.setConnexionHost(connexionHostTB.Text);
+                    kinectMain.setConnexionPort(connexionPort);
+                    kinectMain.setTimerElapsing(timerElapsing);
+
+                    kinectMain.updateParameters();
+                }
+            }
+            catch (Exception)
+            {
+                //S'il y a eu un problème de parsing (i.e si l'utilisateur a entré une mauvaise valeur),
+                //Alors on affiche l'erreur, puis on recharge les paramètres précédents.
+                ExceptionInParametersLbl.Content = rm.GetString("loadParametersFail");
+                getParameters();
+            }
+        }
+
+        /*
+         * Méthode attachée à l'événement click sur le bouton de validation de la fenêtre de paramétrage.
+         * Les données sont sauvegardées vers KinectMain, puis rechargées dans la fenêtre.
+         */
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            setParameters();
+        }
+
+        /*
+         * Méthode appelée à la fermeture de la fenêtre de paramétrage.
+         */
+        private void Window_Closed(object sender, EventArgs e)
+        {
+            
+        }
+    }
+}