Accueil > Projets > ScientificPad / MathMLPad [fr] > ScientificPad Alpha20070213

ScientificPad Alpha20070213

Mise en ligne d’une nouvelle version de développement branche alpha.

vendredi 16 février 2007, par ScientificWare

Peu après la mise en ligne de la version ScientificPad Alpha20070122, la nouvelle méthode de déplacement n’a pas résisté aux tests de déplacement à l’intérieur de vues comportant plusieurs imbrications de vues. Le déplacement attendu dans certains cas très précis n’était pas satisfaisant.

Le code Java de base n’est pas satisfaisant, c’est un problème évoqué par un des programmeurs de SUN en charge de ce code : "NOTE : This will not properly work if ParagraphView contains other ParagraphViews. It won’t raise, but this does not message the children views with getNextVisualPositionFrom".

Il faut donc modifier cette méthode. Depuis le début du projet, c’est l’étape qui a mobilisé le plus de temps. La dernière mise au point avait nécessité une grosse correction du code de getClosestPositionTo et le remplacement à regret de l’ancienne méthode.

Cette quatrième correction du déplacement vertical du curseur. Fonctionne très bien : Elle a pour l’instant résisté aux imbrications les plus folles. Le résultat est excellent.

Analyse de problème : La troisième version provoquait un mauvais placement du curseur dans certains cas. La nouvelle version est un mélange d’une ancienne version et de la version 3. Principale modification apportée à l’ancienne version : Elle avait été abandonnée parce que le calcul des coordonnées extrêmes de la vue se faisait à partir des méthodes view.getX et ne donnait pas une abscisse absolue, mais une abscisse relative par rapport à la vue parente. Les calculs des coordonnées utilisent désormais la méthode JTextComponent.modelToView. Deux méthodes nouvelles de rowView fournissent grâce à cette fonction les abscisses extrêmes d’une vue.
Cette nouvelle version règle enfin les déplacements verticaux à l’intérieur des vues.