Besoin d'idées pour finaliser une "JMappedBufferedTextArea"

Besoin d'idées pour finaliser une "JMappedBufferedTextArea" - Java - Programmation

Marsh Posté le 09-06-2007 à 14:18:23    

Bonjour à tous.
 
J'aurais besoin d'idée(s) de personnes ayant déjà bossé sur les composants texte avec swing.
 
Tout d'abord, voici mon idée de départ : créer un composant texte ( type JTextArea dans un premier temps ) qui serait "mappé" sur un fichier texte ( peu importe l'encodage, tous sont gérés mes classes décrites plus bas). C'est à dire que seule la partie visible du composant serait chargée en mémoire dans le composant. Les données visibles seraient extraites d'une part du fichier d'origine et des modifications successives - qui elles seraient bufferisée en mémoire.
A cela deux très gros avantages pour moi :
- Limiter l'occupation mémoire de la JVM dans le cas de gros fichier ( seules les parties visibles le seraient ).
- Limiter les I/O en stockant les modifs en mémoire ( toujours dans le cas de gros fichiers ). En effet, pas besoin de recopier l'intégralité d'un fichier de 2 GO à chaque insertion de caractère.
 
Bon j'abrège sur la technique :
J'ai créé deux classe TextFile et BinaryFile qui remplissent parfaitement le rôle décrit plus haut. Pour cela elles utilises les méthodes suivantes :
void insert(long offset,Datas datas); // insertion on l'aura compris
void delete(long offset,long length); // '' ''
void replace(long offset,long length,Datas datas); // ''
mais surtout :
Datas getFinal(long offset,long length);
qui me permet de récupérer à n'importe quel instant une partie du fichier final, c'est à dire une fois toutes les modifications effectuées ( ce de manière logique ).
 
Donc voilà ma question à présent : quel serait pour vous le meilleur moyen d'intégrer ma classe TextFile dans un composant graphique de type texte ?
- J'avais pensé dans un premier temps utiliser DocumentFilter pour mettre à jour le contenu du composant ( je l'ai déjà utilisé, c'est pour ça que j'ai pensé à lui ), mais j'ai un doute sur la propreté d'une telle méthode.
- Ne serait-il pas plus judicieux de faire comme pour les composants MVC ( JTable, JTree etc. ), gérer le contenu au niveau du modèle ? Dans ce cas, quoi faire : étendre Document, PlainDocument, ou autre ?
 
Toute proposition sera la bienvenue  
 
Faisant cela pour des besoins personnels, je peux fournir le code si des personnes sont intéressées, je suis l'auteur de la totalité.

Reply

Marsh Posté le 09-06-2007 à 14:18:23   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed