-
JComponent to (X/HT)ML
Bonjour,
Question peut-être stupide, mais je l'assume. J'aimerais savoir s'il existe des outils permettant de convertir un composant Swing (un JPanel par exemple), contenant un certain nombre de sous-composants hiérarchisés (boutons, textes, labels, et compagnie) vers un format XML ou HTML, voire en texte brut, permettant de les représenter dans un fichier texte ou html ? Dans la mesure du possible, en tenant en compte les layouts pour que le résultat final rende quelque chose d'assez proche de ce qu'on voit graphiquement. Pour la gestion des images, cela ne m'intéresse pas de récupérer de données les concernant.
Mes recherches sur Google n'ont rien donné, je ne pense pas être le premier à me poser la question pourtant.
Merci !
-
Bah au pire un gros coup de sérialisation XML du composant, mais tu risques d'emporter pas mal de choses parasites.
Puis un petit filtre XSLT pour adapter ça à ta convenance.
Quel est le but de ce fichier au final?
-
L'idéal serait d'avoir du texte brut, pour l'intégrer dans un bean open office, du genre mis en forme avec des espaces.
En sérialisant soi-même, le problème c'est que les composants ne sont pas forcément enregistrés dans l'ordre de la lecture humaine, et qu'il n'est pas vraiment possible de tenir compte des layouts et leurs contraintes pour représenter les composants à la bonne place.
-
Une sérialisation via XStream te ressort l'intégralité du composant, y compris toutes les infos sur son layout. De fait tu pourras parfaitement utiliser ces infos pour produire un résultat via un script de transformation (que ce soit du java, de l'XSLT ou autre).
Par exemple un JPanel positionnant ses composants via un GridBagLayout sérialisé par XStream (attention c'est plutôt verbeux comme sortie, un composant Swing étant quelque chose de complexe par essence).
http://pastebin.com/eb9nYpFu
-
Intéressant !
C'est vrai que c'est très verbeux, mais il y a peut-être moyen de faire quelque chose avec ça, les balises <x>, <y>, <text> sont parmi les plus intéressantes que j'ai vues.
Je suis pour le coup encore plus étonné qu'il n'existe pas de librairie proposant ce genre de service.
Un grand merci pour ton aide Sinok.