diff -r f4e52a4c34b3 -r d40f84d77db4 middleware/src/Debug/DebugParameters.xaml.cs --- /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 +{ + /// + /// Interaction logic for DebugParameters.xaml + /// + 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) + { + + } + } +}