23sept. 2009
Nettoyage et améliorations du cpeGui
01:53 - Par Fabien Poulard - Sciences & Recherche - aucun commentaire
Depuis le temps que je peste après le manque d'ergonomie du cpeGui (org.apache.uima.tools.cpm.CpmFrame pour les intimes), j'ai voulu profiter d'un peu de temps durant une surveillance de TP pour jeter un coup d'œil au code et essayer d'obtenir quelque chose de plus intuitif. J'ai pu profiter des premiers pointeurs posés par mon collègue Matthieu pour m'introduire dans les méandre de la bête !
Au final j'ai à peu près tout cassé pour obtenir quelque chose d'assez proche de l'original en terme d'ergonomie... mais qui ne fonctionne plus !
Pour être un peu plus optimiste sur le travail accompli, j'ai éclaté le code du cpeGui en plusieurs composants ayant chacun un rôle particulier :
- CpmPanel qui a pour unique objectif de charger les différents composer et créer une chaîne de traitement
- RunnerPanel qui se charge de générer un ''CPE'' (''Collection Processing Engine'') et de contrôler son exécution. J'espère notamment pouvoir récupérer le contenu du Logger et obtenir une barre de progression plus précise.
- ViewerPanel qui permet de visualiser la sortie de la chaîne de traitement. L'idée est de forcer l'exécution d'un XmiWriterCasConsumer dans un répertoire configurable et générer une fusion des Type System à partir des composants du CPE. En gros, pouvoir tout visualiser sans s'encombrer d'un paramétrage redondant.
L'explosion du code s'accompagne d'une migration du code vers un modèle MVC afin de pouvoir à la longue proposer des implémentation du GUI dans des bibliothèques un peu plus intéressantes que Swing :/ Ce serait notamment sympa d'avoir quelque chose qui s'intègre bien à un bureau Linux moderne (du GTK ou du Qt), surtout en ce qui concerne les boîtes de sélection des fichiers !
Les choix d'orientation sont les miens, mais je suis ouvert aux propositions ;)
En attendant voici un peu à quoi ça ressemble pour l'instant (attention les yeux !) :
Pour l'instant il n'y a rien dans l'onglet Viewer et le Runner est très sommaire, mais ça devrait se compléter par la suite, le gros du code est présent, il ne reste plus qu'à tout interfacer :) En ce qui concerne la partie création de la chaîne, j'ai fait disparaître les CAS Consumers qui n'auront plus d'existence dans la prochaine release.



aucun commentaire