Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2373 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Cloner un objet Document [résolu : pas possible]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cloner un objet Document [résolu : pas possible]

n°1173495
Luigi
Living's easy with eyes closed
Posté le 09-08-2005 à 17:54:07  profilanswer
 

Bonjour,
 
Après recherche, je n'ai pas trouvé de solution au problème suivant :
 
J'ai un JTextPane avec du contentType RTF. Je veux le "compiler" de telle sorte qu'avec un contenu comme celui ci :
 

bla function(arg) bla


 
il me sorte un fichier RTF en remplaçant "function(arg)" par la valeur de la fonction.
 
Jusque là pas de problème, je fais des remove et insert sur le document, et je le sors avec RTFEditorKit.write(). Le problème étant que je veux pas que ça modifie le document du JTextPane (j'ai besoin qu'il garde le contenu non compilé).
 
L'idée est donc tout simplement de créer un nouveau DefaultStyledDocument contenant la même chose que le document du TextPane avant la "compilation", de faire les modifs dessus et de le sortir lui.
 
Problème : je n'ai trouvé nulle part comment cloner un document, ou en remplir un nouveau avec le contenu de l'ancien (en gardant le style bien sûr, sinon suffirait de faire un insertString(getText()) ).
 
Donc pour le moment, infâme bricolage, pour cloner un doc1, je sors son contenu avec RTFEditorKit.write(), et je le charge dans le doc2 avec RTFEditorKit.read()... :whistle:  
 
Peut être que je ne prend pas le problème dans le bon sens, je découvre ces concepts de Document etc... Ce qui fait que la solution est ptet dans la doc que j'ai épluché des heures, y'a pas mal de concepts qui m'échappent dedans.
 
Voilà je sais pas si je me suis bien expliqué, en tout cas si quelqu'un sait comment faire ça m'aiderait bien pour améliorer le code ! Merci d'avance ! :hello:


Message édité par Luigi le 10-08-2005 à 12:30:21
mood
Publicité
Posté le 09-08-2005 à 17:54:07  profilanswer
 

n°1173662
Nicolas_75
Posté le 10-08-2005 à 03:44:07  profilanswer
 

Bonjour,
 
Je n'ai quasiment jamais manié de Document de ma vie, donc vais probablement dire une grosse bêtise. myDefaultStyledDocument.clone() ne répond pas à ton besoin ?
 
Nicolas

n°1173810
Luigi
Living's easy with eyes closed
Posté le 10-08-2005 à 12:04:19  profilanswer
 

Nicolas_75 a écrit :

Bonjour,
 
Je n'ai quasiment jamais manié de Document de ma vie, donc vais probablement dire une grosse bêtise. myDefaultStyledDocument.clone() ne répond pas à ton besoin ?
 
Nicolas


 
Tu veux dire dériver la classe DefaultStyledDocument et implementer cloneable ? Parce que malheureusmeent pas de méthode clone pour la classe DefaultStyledDocument... :/ Et j'aurais voulu éviter de me créer ma propre classe ou quoi, ça doit bien être possible de base... :fou:

n°1173816
Nicolas_75
Posté le 10-08-2005 à 12:10:02  profilanswer
 

Le "my" de "myDefaultStyledDocument" voulait indiquer une instance de la classe.
Je parle bien de la classe DefaultStyledDocument de l'API : elle a une méthode clone() comme toute classe héritant de Object, non ?


Message édité par Nicolas_75 le 10-08-2005 à 12:10:58
n°1173828
push
/dev/random
Posté le 10-08-2005 à 12:23:57  profilanswer
 

You cannot in general. Only some of the attributes of a StyledDocument
can be set from the outside (logicalStyle, paragraphAttributes, charac-
ter attributes), and you can also not really duplicate the element
structure (only assume that "\n" will create new paragraph elements
and this are split into character elements). Only the text can be
definitely copied.

 
http://groups-beta.google.com/grou [...] c7a26ecd95
 
You are talking about StyledDocument, but that is an interface only.
Which class are you really using? But anyhow, AFAIR
DefaultStyledDocument and HTMLDocument don't support any convenient way
of deep-cloning (copying) them. The simplest but slightly inefficient
way might be to serialize/deserialize them to get a clone.
 
A better idea might be to register a document listener in order to be
informed about chnges.

 
http://groups-beta.google.com/grou [...] fd8dd84123

n°1173830
Luigi
Living's easy with eyes closed
Posté le 10-08-2005 à 12:29:48  profilanswer
 

Nicolas_75 a écrit :

Le "my" de "myDefaultStyledDocument" voulait indiquer une instance de la classe.
Je parle bien de la classe DefaultStyledDocument de l'API : elle a une méthode clone() comme toute classe héritant de Object, non ?


 
J'avais jamais fait gaffe mais la méthode clone d'objet est déclarée protected...
 

push a écrit :

You cannot in general. Only some of the attributes of a StyledDocument
can be set from the outside (logicalStyle, paragraphAttributes, charac-
ter attributes), and you can also not really duplicate the element
structure (only assume that "\n" will create new paragraph elements
and this are split into character elements). Only the text can be
definitely copied.

 
http://groups-beta.google.com/grou [...] c7a26ecd95
 
You are talking about StyledDocument, but that is an interface only.
Which class are you really using? But anyhow, AFAIR
DefaultStyledDocument and HTMLDocument don't support any convenient way
of deep-cloning (copying) them. The simplest but slightly inefficient
way might be to serialize/deserialize them to get a clone.
 
A better idea might be to register a document listener in order to be
informed about chnges.

 
http://groups-beta.google.com/grou [...] fd8dd84123


 
Merci beaucoup... J'avais cherché sur google mais sans résultat... Bon ben je suis pas le seul à faire ma méthode pourrie alors, je vais m'en contenter ! :D  
 
Merci à tous les deux ! :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Cloner un objet Document [résolu : pas possible]

 

Sujets relatifs
[Résolu] Pb avec les égalités de chainesjavascript pour imprimer un document word
[résolu]fenetre dosPArametres optionnels [Resolu]
[resolu]resulat msgbox[html] [RESOLU] largeur liste déroulante
[resolu]datagrid multiligne ?fullscreen complet sous IE et firefox : possible ?
[resolu] fermer une fenetre a partir d'un bouton d'un onglet[résolu] [PHP] Problème d'espaces
Plus de sujets relatifs à : Cloner un objet Document [résolu : pas possible]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR