Dégradation harmonieuse d'interfaces utilisateur - UsiXML
Dégradation harmonieuse d'interfaces utilisateur - UsiXML
Dégradation harmonieuse d'interfaces utilisateur - UsiXML
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
sémantiques soient déclenchées lorsque l’<strong>utilisateur</strong> bouge le curseur de sélection mais<br />
lorsque ce dernier valide son choix.<br />
5.7.4 La Couche Structuration d’unités de présentation et de fonctions sémantiques<br />
Cette couche se compose tout d’abord du module PU Organizer. Son but a déjà été<br />
brièvement décrit. Nous nous contenterons donc de donner une idée des données produites en<br />
sortie. Chaque unité de présentation source est du type de celle décrite dans le point 5.7.2. la<br />
version organisée de l’unité de présentation se présente comme suit :<br />
liste de paires (#OIA) ou de sous-unités de présentations organisées #<br />
tâche mère du type (sans l’attribut childs)<br />
Le second module vise, d’une part, à générer de manière correcte les fonctions sémantiques<br />
liées aux opérateurs temporels et d’autres parts, à isoler les tâches inactives à l’ouverture de<br />
l’application. La première fonctionnalité a un déroulement en plusieurs étapes.<br />
La première étape consiste à nettoyer une unité de présentation organisée en remontant d’un<br />
niveau les sous-unités de présentation pour lesquelles la mère a un opérateur temporel binaire<br />
identique à celui de ses tâches filles.<br />
La deuxième étape consiste à isoler chaque opération en générant une liste de triplets :<br />
tâche(s) Source#tâche(s) Destination#Opérateur<br />
Le fait que plusieurs tâches (des listes en réalité) puissent jouer le rôle de source ou<br />
destination implique qu’il faudra également effectuer, le cas échéant, un sous-traitement sur<br />
ces tâches.<br />
Une fois cette étape réalisée, nous effectuons alors une troisième étape, consistant à simplifier<br />
certains des triplets obtenus et à modifier l’unité de présentation source. Voici les différentes<br />
modifications à réaliser.<br />
Soit X#Y#Op, un triplet où : - X est une (liste de) tâche(s) Source<br />
- Y est une (liste de) tâche(s) Destination<br />
- Op est un opérateur temporel parmi <br />
Si X se réduit à une seule tâche et si Y est une liste de tâches :<br />
- Si Op est un opérateur concurentiel et OpY, l’opérateur temporel commun aux tâches<br />
de Y (rappelons que notre modèle utilise un arbre prioritaire), est un opérateur de<br />
séquence, alors X n’est en réalité concurrent qu’avec la première tâche de Y<br />
Si X est une liste de tâches (peu importe la nature de Y) :<br />
- Si Op est un opérateur de séquence et OpX est un opérateur de concurrence, nous<br />
devrons modifier l’unité de présentation principale en ajoutant un bouton de validation<br />
permettant d’indiquer quand ces tâches concurrentes seront terminées afin de<br />
continuer la séquence.<br />
- Si Op est un opérateur de séquence et si OpX est un opérateur de choix, nous devrons<br />
modifier ce triplet en une liste de triplet pour que chaque tâche contenue dans X puisse<br />
déclencher les tâches de Y<br />
88