Projet Java : Jspell
 
Objet: widget texte permettant une correction orthographique,
basée sur les dictionnaires du programme Ispell

 


    Ce widget, nommé TextDico, dérive de la classe TextArea;
    Il possède 2 constructeurs,  permettant ou non de lui associer un dictionnaire.
    Dans le cas ou on ne choisit pas tout de suite de spécifier un dictionnaire, on pourra par la suite en désigner un, par la méthode  setDicoName.
    TextDico possède d'autres méthodes spécifiques:

initAnalyse : permet d' amorcer la vérification du texte. Il faut lui passer un paramètre de type entier, représentant la position à partir de laquelle doit débuter la vérification du texte.

motFauxSuivant : renvoie, à partir de la position courante, le prochain mot dont l'orthographe est fausse.

suggestions : retourne, pour un mot donné, la liste des suggestions proposées pour la correction.

corrigerMot : le mot passé en paramètre remplace l'actuel mot faux dans le widget. Que ce mot incorrect soit en minuscules ou en majuscules, le remplacement conserve sa forme. De même, la correction sera écrite avec son initiale en majuscule s'il en est de même pour le mot qu'il doit remplacer.


initAnalyse crée une variable de classe Dictionnaire
    Son constructeur commence par analyser le dictionnaire spécifié par la variable passée en paramètre. Il lit dans le fichier binaire le nombre de mots présents dans la table.
Il va ensuite placer chacun de ces mots dans une table de hashage.
    Sa méthode suggestion contient plusieurs algorithmes pour bâtir, à partir d'un mot, plusieurs variantes. Cette méthode est utile pour déterminer si l'utilisateur a omis de taper une ou plusieurs lettres d'un mot. Il s'agit ensuite de vérifier, pour chaque mot resultant de ces alorithmes, s'il se trouve dans la table des mots.
    La liste des mots corrects résultant de cette recherche est ensuite retournée.


Les suggestions de correction sont présentés à l'utilisateur par la classe FrameSuggestions,
qui définit une frame dotée d'une liste descendante et de 4 boutons.

La classe contient une méthode setMots, appelée par  TextDico avec comme paramètre la liste des suggestions de correction, et le mot incorrect à remplacer.
La méthode remplit la liste déroulante avec chacune de ces suggestions, et sélectionne par défaut le premier mot de la liste. Le mot ainsi sélectionné se retrouve dans un objet TextField, librement éditable.

Les 4 boutons sont:
ok : signifie à TextDico qu'il faut remplacer le mot faux par le mot sélectionné dans la liste. TextDico récupère ce mot par la méthode getMot.
Passer : signifie que l'utilisateur ne désire pas corriger le mot courant, et souhaite passer au prochain mot.
Ajouter : l'utilisateur souhaite que le mot faux courant soit à l'avenir considéré comme juste.
Ce mot doit donc être placé dans un fichier spécial.
(fonction non implémentée).
Annuler : l'utilisateur souhaite arrêter là la correction orthographique.
 
 


Nous avons conçu, pour exemple d'utilisation, la classe Jspell:
Elle présente dans une frame le widget TextDico, ainsi que 3 boutons.
Elle est définie comme écouteur de FrameSuggestions, et peut donc en fonction des choix de l'utilisateur dans FrameSuggestions enchainer sur l'action idoine: passer au mot suivant, en corrigeant le mot ou sans le changer, ajouter le mot dans un fichier spécial (non implémenté), stopper la phase de correction.

Ses boutons sont:
Vérifier : amorce la vérification (méthode initAnalyse) puis apelle FrameSuggestions avec les différentes suggestions pour le premier mot faux.
Toute la phase de correction se déroule alors sans appuyer sur un bouton de la frame Jspell, mais uniquement sur ceux de FrameSuggestions.
Dictionnaire : appuyer sur ce bouton provoque l'affichage d'une boite de dialogue, demandant à l'utilisateur d'entrer ou de chercher un fichier de mots (ex: français, anglais...).
Fermer : clos l' application.
 
 


ScreenShots:

le texte initial.
 
 
 
Pendant la correction:
(classe Jspell)
(classe FrameSuggestions)