Sous-sections

8.2 Extension et utilisation d'ICON

MAGGLITE se positionne comme une sur-couche à ICON (voir figure 8.1), lui ajoutant une architecture graphique avancée (les graphes de scène) et surtout des dispositifs spécifiques pour interagir avec cette architecture graphique. Mais plus que cela, MAGGLITE a aussi permis de faire évoluer ICON vers un système de description complet des interactions, au delà du système de gestion d'entrées multiples qu'il était. Pierre DRAGICEVIC a étudié certaines possibilités d'utilisation d'ICON pour spécifier des interactions avancées dans [Dragicevic et Fekete2004] et montré des exemples des possibilités de son système dans cette optique [Dragicevic2004b]. Nos propositions, le modèle des graphes combinés et sa réalisation dans MAGGLITE, ont permis de conforter ces pistes, en particulier pour les interfaces post-WIMP.

Figure 8.1: Architecture concrète MAGGLITE/ICON. Entre MAGGLITE et ICON, nous avons introduit une extension nommée ICON+.
\includegraphics[width=.7\textwidth]{archi}

8.2.1 Extension d'ICON

Afin de permettre la composition de nombreux graphes d'interaction, la bibliothèque des dispositifs de MAGGLITE contient tous ceux disponibles dans ICON (dispositifs système pour les périphériques d'entrés et dispositifs de la bibliothèque pour adapter les entrées) ainsi que des dispositifs IAP, les dispositifs de plus haut niveau de MAGGLITE.

Dans un premier temps, nous avons étendu le modèle ICOM sous-jacent à ICON. Nous proposons une formalisation de la notion des Points d'accès à l'interaction dans ce modèle afin d'assurer la reproductibilité de notre approche.
Dans un second temps, nous avons introduit de nouveaux dispositifs dans la librairie afin de la rendre encore plus polyvalente pour la description d'interactions de haut-niveau (unification du support des périphériques d'entrée, dispositifs multimédia, reconnaissance de gestes, etc.).
Enfin, nous avons introduit le principe et les mécanismes de la génération de dispositifs à l'exécution afin de permettre la création dynamique des manipulateurs de MAGGLITE.

Ces ajouts, l'extension ICON+ (voir figure 8.1), sont détaillés dans l'annexe C.

8.2.2 ICON à travers MAGGLITE

Bien que nous ne considérions pas la programmation avec la boîte à outil ICON comme particulièrement difficile, celle-ci demande tout de même une certaine expertise. Il était donc nécessaire, afin de ne pas avoir à assimiler les techniques de programmation de deux boîtes à outils, d'abstraire l'utilisation d'ICON dans MAGGLITE au plus haut niveau possible. Ainsi, il est tout à fait possible de développer des applications, de nouveaux composants graphiques et même de nouveaux dispositifs sans pour autant avoir une connaissance pointue d'ICON. Il suffit d'avoir une vision globale de ses principes de fonctionnement.

8.2.2.1 Encapsulation d'ICON

Nous avons tout d'abord «encapsulé» les environnements d'exécution d'ICON et de MAGGLITE, ainsi que leur initialisation dans une abstraction d'application de haut niveau. Ainsi, créer une application revient seulement à implémenter deux méthodes 8.1: créer les objets graphiques et instancier des dispositifs si besoin.

Nous avons suivi le même principe pour la programmation de nouveaux points d'accès à l'interaction. Excepté pour les manipulateurs, qui sont générés automatiquement, nous avons inclus dans MAGGLITE trois abstractions permettant de développer rapidement de nouveaux dispositifs: pour les dispositifs d'interaction, les comportements et les outils internes. Il suffit alors de réaliser quelques méthodes de haut niveau (comme par exemple la méthode toolAction(double x, double y), pour les outils internes qui représente l'action à effectuer par l'outil si il est actif). Nous ne détaillerons pas plus avant ces abstractions dans ce chapitre, des exemples complets étant fournis dans l'annexe D.

8.2.2.2 Le configurateur d'entrées dans MAGGLITE

Enfin nous proposons une organisation de la librairie des dispositifs dans le configurateur graphique identique pour chaque application. Input Configurator, comme nous l'avons déjà rappelé avec la figure 6.3, propose une organisation arborescente des prototypes de dispositifs disponibles. Nous n'avons pas modifié cette organisation, mais simplement uniformisé la partie de l'arborescence qui concerne les applications MAGGLITE, comme le montre la figure 8.2.

Figure 8.2: Organisation des dispositifs de la librairie. Le configurateur d'entrée organise les dispositifs dans des dossiers (voir la figure 6.3, dans la section 6.4). Nous les avons étendus de la manière suivante dans MAGGLITE: en bleu, les dispositifs génériques de la librairie (dispositifs d'interaction, comportements); en rouge, les dossiers donnent une vue hiérarchique du graphe de scène de l'application, avec un dossier par objet graphique (manipulateurs et outils internes).
\includegraphics[width=1.1\textwidth]{folders}

Les dispositifs spécifiques de notre boîte à outils se trouvent dans la partie application de l'arborescence. Ce dossier, qui porte le nom donné à l'application, est alors composé de deux parties principales:

  1. Les dispositifs génériques de la boîte à outils (en bleu sur la figure 8.2), regroupés dans les sous dossiers MaggLite interactions et MaggLite behaviors.
  2. Les dispositifs liés aux objets de l'application (en rouge sur la figure). Ceux-ci sont regroupé selon l'arborescence du graphe de scène, chaque dossier prenant le nom du composant qu'il représente. Cela donne un aperçu de la structure du graphe de scène, et permet de retrouver rapidement les dispositifs. Chaque dossier correspondant à un composant graphique contient son manipulateur (si celui-ci est rendu visible) et un éventuel sous-dossier InnerTools si l'objet s'est vu affecter un ou plusieurs outils internes.

stuf
2005-09-06