previous up next contents


Modification textuelle et cohérence

Un dernier problème a été rencontré quand le contenu d'une entité textuelle type est modifié, notamment lors de l'évolution d'une anagnose ou du texte spécial (dictionnaire ou encyclopédie personnelle, cf. 3.2.5) qui contient les informations supposées par le lecteur dans une anagnose. Si l'utilisateur ajoute un texte dans le contenu de l'anagnose, les positions textuelles de tous les textes positionnés plus bas que le texte inséré doivent être remises à jour.

Nous avons implémenté un patron d'observateur/observable entre les entités positionnées et l'entité type encadrant. Nous avons pour ceci utilisé le modèle d'écouteurs5.22 en Java 1.1 qui offre une implémentation objet claire. Chaque entité positionnée est enregistrée en tant qu'écouteur des événements de modification textuelle à l'entité type de son entité cadre. La réponse peut prendre deux formes différentes : du texte peut être inséré ou remplacé par un nouveau texte. Effectivement, dans la classe java.awt.TextArea il n'y a que trois types de modification textuelle : l'insertion, l'ajout à la fin et le remplacement, dont seuls le premier et le dernier produisent la modification des positions des entités déjà positionnées.

Une entité positionnée doit donc implémenter seulement deux méthodes qui, à l'aide de paramètres fournissant l'information nécessaire, gèrent la modification de sa position textuelle dans le cas :

Nous avons inclus le diagramme d'interaction (fig.5.8) décrivant la suite des opérations dans les trois cas de modification.


  
Figure 5.8: Le diagramme d'interaction qui décrit comment une entité positionnée observe son entité cadre en implémentant le modèle des écouteurs proposé par Java 1.1. Les trois cas de modification sont présentés, mais deux seulement produisent des actions chez l'entité positionnée observateur.
\begin{figure}
\begin{center}
\ifthenelse{\equal{0.8\linewidth}{}}
{\epsfig{c...
...8\linewidth,bbllx=75,bblly=320,bburx=565,bbury=790} }
\end{center} \end{figure}

Dans les paquetages de Java Foundation Classes (sur-couche fournie avec les dernières versions de Java) les classes relatives au modèle de document textuel fournissent des fonctionnalités de modification d'un document textuel et garantissent la cohérence des positions qui y sont déclarées. Ceci nous a permis une implantation rapide et efficace.


previous up next contents
Theodore Thlivitis, 1998