• Aucun résultat trouvé

Les interfaces cartographiques

13.2 Interface cartographique et modelisation

13.4.1 Cartes et entites

Acher une carte, une fois qu'on conna^t les composants et leur position, peut se faire de multiples manieres; la carte peut appara^tre horizontale, verticale, avoir un axe gradue, une orientation, les entites peuvent se regrouper par type, avoir une couleur, une forme particuliere, etc. La plupart des logiciels etudies ne proposent qu'une seule facon d'acher la carte, qu'un utilisateur ne peut pas modi er; SIGMA est une exception, car il est possible d'agir sur les couleurs des entites, de de nir des styles de carte qui restreignent les entites achees a un sous-ensemble des types constitutifs, de montrer le nom des entites ou pas si on veut eviter de surcharger la carte, etc.

En ce qui concerne l'apparence des entites, il sut de de nir un tableau de couleurs et de formes indexe par le type de l'entite et le point de vue. Ainsi, une entite a sa couleur et sa forme determinees par la valeur du tableau suivant son type et le point de vue dans lequel elle appara^t. Si pour des entites possedant une longueur, la forme est le plus souvent un rectangle, pour les entites ponctuelles, il est interessant de disposer de formes multiples permettant de distinguer les types des entites. De cette maniere, un site de restriction sur une carte physique et un gene sur une carte genetique peuvent avoir deux representations di erentes.

13.4.2 Comportements

L'interface cartographique doit permettre la de nition de comportements standards sur les cartes telles que le zoom, le scrolling ou la selection d'entites. De plus, les entites elles-m^emes doivent avoir des comportements lies aux actions de la souris. Par exemple,on peut souhaiter qu'un double-clic sur une entiteactive sa representation propre si c'est une entite composite ou la recuperation d'informations textuelles si ce n'en est pas une. La de nition de ces comportements est a la charge du developpeur de l'interface qui les speci e en fonction des actions d'un utilisateur nal. Ils ne sont limites que par les possibilites du langage de generation d'interfaces graphiques utilise.

Le generateur d'interfaces cartographiques n'a pas pour but de rede nir des compor-tements qui sont deja fournis par ce langage, mais de faciliter la construction des cartes en pourvoyant le developpeur de l'interface d'outils adaptes a cette t^ache. Cela correspond en l'occurrence a la visualisation des cartes a partir des informations necessaires (composants et positions).

Speci cations fonctionnelles du

generateur d'interfaces

Ce chapitre va presenter l'interface fonctionnelle du generateur d'interfaces cartogra-phiques, c'est-a-dire les fonctions a utiliser pour decrire une interface cartographique. Comme cela a ete vu au chapitre precedent, ces fonctions agissent sur divers aspects de l'interface, au niveau de sa speci cation propre (de nition du modele lie aux fonctions const, dim, etc.) d'une part, au niveau de sa personnalisation graphique d'autre part.

14.1 Initialisation des donnees

Les fonctions de cette section sont destinees a initialiser l'interface cartographique en cours de developpement, en creant un objet speci que, receptacle de la connaissance sur le modele des donnees et des liens vers la base de connaissances. Cet objet, vide au depart, est progressivement rempli par les appels fonctionnels suivants.

Les fonctions sont ecrites dans une syntaxe issue de Lisp, mais ne sont bien s^ur pas dependantes de ce langage. La seule restriction faite est la disponibilite supposee d'un langage de programmation par objets; elle n'est pas restrictive car la plupart des lan-gages permettant de de nir des interfaces sont bases sur la programmation par objets (jusqu'a la bibliotheque de fonctions X). Chacune des fonctions est adjointe d'un exemple correspondant au modele du chapitre 3.

 (creer interface carto<nom-interface>chaine): cette fonction cree un objet vide

con-tenant un certain nombre d'attributs dont la valeur sera donnee par la suite; cet objet est le receptacle de toute l'interface cartographique et sera le seul moyen d'acces aux entites de cette interface. La fonction cree egalement la classe racine des classes graphiques et les attributs bdc etl-constituants.

(créer_interface_carto "GIC") gic-entités bdc -> l-const -> unités -> types -> classes-graphiques -> cartes -> comportements -> GIC const -> dim -> points-de-vue ->  (maj pdvs<nom-interface>

inter face (<points-de-vue>

chaine)+): cette fonction, et les suivantes mettent a jour les attributs de l'objet depositaire de l'interface, avec les valeurs fournies. ("cytogénétique" "physique")) "génétique" ("cM" "kb" ())) GIC génétique physique) (cytogénétique types -> unités -> (cM kb ( ))

(maj_pdvs "GIC" (maj_unités "GIC"

points-de-vue ->

 (maj unites <nom-interface>

inter face (<unites>

chaine)+).

 (maj types <nom-interface>

inter face (<types>

chaine . <bdc>

bdc ty pe)+): cette fonc-tion met a jour l'attribut types de l'objet cartographique, tout en faisant le lien avec la representation dans la base de connaissances; a tout type est associe un pointeur vers l'objet de la base de connaissances (classe de maniere generale, ou concept dans le cas de Tropes) qui modelise ce type. Cette fonction cree aussi les classes graphiques correspondantes, et lie l'attributclasses-graphiques a ces classes.

14.1 Initialisationdes donnees 159

(cM kb ())

unités -> gic-carte gic-gène

bdc -> l-const -> bdc -> l-const -> GIC (cytogénétique génétique physique)

types -> ((carte . bdc-carte) (gène . bdc-gène) ...) bdc-carte bdc-gène gic-entités bdc -> l-const -> classes-graphiques -> ( ...)

(maj_types "GIC" (("carte" . bdc-carte) ("gène" . bdc-gène) ...))

points-de-vue ->

 (maj dim <nom-inter>inter<nom-type>type (<nom-pdv>pdv . <dimension>dim)+): maj dim speci e la pertinence des types dans les points de vue en donnant de plus leur dimension dans les points de vue ou ils apparaissent, et agit sur les classes graphiques en creant des sous-classes des classes initiales a chaque fois qu'un type appara^t dans un point de vue.

(maj_dim "GIC" "carte" ("cytogénétique" . "intervalle") ("génétique" . "intervalle") ("physique" . "intervalle"))) (maj_dim "GIC" "gène" ("cytogénétique" . "point")

("génétique" . "point") ("physique" . "intervalle")))

génétique

gic-gène

gic-gène gic-gène gic-gène gic-carte gic-carte gic-carte

génétique

gic-carte GIC

types -> ((carte . bdc-carte) (gène . bdc-gène) ...) dim -> génétique carte intervalle gène point cyto cyto physique physique intervalle physique intervalle cytogénétique intervalle point

 (maj const<nom-inter>inter<nom-type>type (<nom-pdv>pdv . (<nom-type>type)+)+): comme la precedente, cette fonction complete l'objet cartographique en son attribut

const, associant a chaque type ses types constitutifs dans chacun des points de vue.

informations, et de remplir l'attribut l-const des classes graphiques avec les types constitutifs.

("génétique" . ("carte" "gène"))

("physique" . ("intron" "exon"))) (maj_const "GIC" "carte"

(maj_const "GIC" "gène"

GIC types -> const -> ((carte . bdc-carte) (gène . bdc-gène) ...) cytogénétique génétique

carte carte carte

carte gène site gène intron gène exon bande

("physique" . ("carte" "gène" "site"))) ("cytogénétique" . ("carte" "bande"))

l-const ->

gic-gène gic-carte-cyto

l-const -> l-const -> l-const ->

gic-carte gic-carte-phys l-const -> l-const -> l-const -> l-const -> gic-site physique gic-bande gic-intron gic-exon gic-gène-géné gic-gène-phys gic-gène-cyto gic-carte-géné

Les classes graphiques qui ont ete de nies vont, en s'instanciant, creer des objets qui contiendront toutes les informations necessaires pour s'acher. Pour cela, il leur manque encore de nombreux elements tant concernant la recuperation des entites de la base de connaissances que de leur apparence a l'ecran (section suivante 14.2). Retrouver les entites de la base de connaissances se fera gr^ace a un ensemble d'accesseurs associes aux attributs des classes graphiques. Pour ^etre le plus generique possible, ces accesseurs sont de nis dynamiquement par le developpeur de l'interface cartographique, et utilisent des lambda-fonctions qui accedent aux entites de la base de connaissances; de cette maniere, cette recuperation n'est pas soumise au choix qui a ete fait pour la representation des donnees, mais est con gurable. Ces accesseurs sont precises maintenant.

 def-accesseur-inst: cette fonction doit permettre de trouver une instance de la base de connaissances a partir de la donnee de sa classe (ou de son concept) d'apparte-nance et d'arguments (qui ne se limitenta priori pas au seul nom).

 def-accesseur-const: cette fonction a pour but de recuperer les constituants d'une instance de la base de connaissances. Elle prend comme unique argument une telle instance et renvoie une liste d'instances de la base de connaissances.

 def-accesseur-positions: cet accesseur recupere l'ensemble des positions des consti-tuants d'une entite composite a partir d'une instance composite de la base de connaissances.