Utilisation de SVG dans GWT
Je me demandais si il est possible d'inclure du contenu SVG à l'intérieur d'un panneau (ou tout ce qui pourrait fonctionner dans GWT), être en mesure d'ajouter d'autres à la SVG (comme ajouter un cercle ou une courbe) de la programmation , et de gérer les événements de la souris (serait-ce en SVG ou GWT?). J'ai essayé de créer un objet HTML à ajouter quelque chose le long des lignes de:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="50" cy="50" r="30" />
</svg>
Qui ne fonctionne pas (rien de visible en sortie), mais je ne suis pas sûr si c'était parce que je l'ai fait de mal ou il n'est pas permis.
J'ai été capable de faire un simple exemple dans GWT avec Google Visualisation du graphique en courbes, mais j'aimerais déplacer loin de Google de Visualisation et d'être en mesure de générer du SVG moi-même et de le personnaliser davantage. J'ai regardé autour et beaucoup de ressources de points à l'aide de la Toile, mais je ne sais pas si c'est le meilleur parcours encore.
Je suis aussi un peu perplexe sur l'exemple ici. J'ai essayé de faire un simple copier-coller de ce à essayer en local et ça ne semble pas fonctionner à tous. J'ai été cependant en mesure d'obtenir un autre exemple de travail avec juste HTM (embed src pointant vers fichier SVG) L + distincte fichier SVG, mais je n'ai pas été en mesure d'y accéder en utilisant GWT à l'aide de RootPanel.obtenir(...).
EDIT:
J'ai lu sur le SVG ne fonctionne pas avec les Hébergés du Navigateur et de la compilation il ne fonctionne pas mais je suis pas sûr de savoir comment reportez-vous à la SVG (que j'ai placé dans le code HTML via ). Si je peux y accéder alors sans doute que je puisse l'ajouter à son innerHTML. J'ai essayé en RootPanel.get("salut").getElement().setInnerHTML ("..."), mais qui semble ne pas fonctionner, ou ai-je loupé? Je suppose que le but est d'être capable de manipuler un fichier SVG qui je me suis lié d'une certaine manière (que ce soit dans GWT ou en HTML) et être en mesure de le modifier, basée sur la saisie de l'utilisateur.
2ème EDITION
Jusqu'à présent, j'ai été à la programmation de fonctionnalités à l'intérieur de la réelle fichier SVG. Dans notre configuration, notre SVG est un objet incorporé et nous avons passé au "document" vers les systèmes embarqués SVG. La transmission de l'information à partir d'incorporation de l'objet et de l'HTML est tout à fait faisable puisque le HTML a accès à nos SVG fonctions et le SVG a accès au "document".
Il y a de plus transparent moyens de le faire (Raphael) où FireBug pourrait voir le SVG directement, ce qui est agréable, mais maintenant, pas tout à fait nécessaire. Jusqu'à présent, je ne pense pas qu'aucune des solutions que j'ai regardé étaient les IFrames, mais je peux me tromper. Un petit avertissement, SVG peut être assez lent parfois.
Je dirais que mon problème est résolu (un peu?) mais je ne suis pas à l'aide de Raphaël, jQuery, ni GWT pour le moment, mais la méthode que j'ai décrit dans ma réponse doit encore fonctionner si je veux utiliser GWT.
source d'informationauteur nevets1219
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas entièrement compris pourquoi, mais la createElementNS méthode JavaScript permet de créer et formater correctement xhtml dans le html.
Car il n'y a pas d'équivalent dans l'explorateur, GWT ne pas mettre en œuvre createElementNS, mais vous pouvez le faire avec un rapide méthode native :
Il est logique de mettre cela en un SVGPanel classe.
Cela devrait produire une simple SVG lorsqu'il est ajouté à votre programme. Félicitations! Vous êtes maintenant en le collant à l'xhtml homme.
Whoa. Cette question a été laissé seul pendant un certain temps. - Une fantastique (définitive?) GWT SVG bibliothèque a été libéré! voir lib-gwt-svg. Il n'y a pas de quoi que ce soit il y a près aussi bon. L'auteur (Lukas Laag) a été très réactif et a travaillé dur pour garder la bibliothèque mis à jour et en pleine forme. Le lien ci-dessus vous mènera à quelques démonstrations impressionnantes et vous pouvez toujours participer à la lib-gwt-svg forum.
Nous venons de open-source une GWT widget qui vous permet d'intégrer GWT avec Raphael:
http://code.google.com/p/raphaelgwt/
Ce gadget a été initialement créé pour Hydro4GE et a été mentionné dans un article sur le site officiel de GWT Blog.
Vous pourriez stuble sur le code html vs xhtml problème: inline SVG doit être interprété comme XML/XHTML, mais au moins pour moi, je ne peux pas convaincre GWT à vivre avec application/xhtml+xml comme un type de contenu.
Pour le test local, vous vous interrogez sur: essayez d'enregistrer le fichier en tant que .xhtml et le charger dans Firefox il fonctionne, parce que FF dans ce cas, l'interprète comme XHTML.
Voir http://wiki.svg.org/Inline_SVG pour des informations de fond.
Si vous trouvez une solution à ce problème, merci de poster.
En ce qui concerne,
Axel
Après avoir joué un peu, j'ai connu le plus de succès avec l'aide de Raphaël (qui gère la compatibilité inter-navigateur) bien que je soupçonne tout le long de ces lignes serait très bien fonctionner. Fondamentalement, je ne le suit dans JavaScript:
Alors je voudrais effectuer les opérations suivantes dans GWT:
J'ai aussi été autour de la lecture et il semble que le portage de Raphaël dans GWT (ce l'article est une bonne lecture) ne sera pas seulement augmenter les performances (comme par certains post que j'ai lu sur Google Groupes, mais ne peuvent pas trouver à l'instant -, ils ont mentionné le compilateur ne fait un peu de travail), mais également de faciliter le codage & débogage.
J'ai donc atteint mon objectif d'être en mesure de manipuler le SVG directement (un peu jusqu'à ce que j'port Raphaël en Java ou, au moins, créer des wrappers). Je n'ai pas encore de se pencher sérieusement sur le Google Visualisation de l'API, mais je soupçonne qu'il pourrait tout aussi bien mais je ne suis pas sûr si elle est suffisamment robuste pour mes besoins.
Une chose importante je crois que j'ai été absent comme indiqué sur Raphaël, le site a été le suivant:
Si vous ne voyez pas votre SVG, il se peut que votre navigateur voir votre document en tant que fichier HTML mais PAS comme un fichier XHTML. Essayer de changer l'extension de votre fichier (.xhtml), vérifiez votre code html est bien formé, ajouter un html 'meta tags, etc..
Pour info , Il y a aussi une SVG module GWT: http://gwt-widget.sourceforge.net/
Pierre
Être averti que le SVG ne fonctionnera pas en courant GWT Shell (mode Hébergé) jusqu'à 1,6 inclusive, parce que:
1) sur windows, il utilise IE composante
2) sur Linux, il utilise Firefox 1.0 ou égale mozilla moment de l'exécution, qui n'a pas de support pour le format SVG.
Code compilé fonctionne bien dans les non-IE navigateurs.
En outre, il fonctionne indépendamment de HTML/XHTML dans les navigateurs, parce que dans GWT vous utilisez createElementNS (vous pouvez le code de la méthode que vous utilisez JSNI). Aussi, votre balise SVG peut-être besoin de la largeur/hauteur des attributs (voir SVG spec).
Intéressant!
J'ai essayé d'utiliser Raphaël par GWT/code Java mais je n'arrive pas à être en mesure d'utiliser votre truc.
J'ai le bloc suivant dans ma page HTML :
Quand je compile/parcourir la page dans Firefox, j'obtiens mon cercle dans ma page, pas de problème.
Puis-je ajouter le suivant natif de java pour mon module point d'entrée de la méthode et de l'appeler :
De débogage montre que l'objet retourné est toujours
null
...Plus, je ne comprends pas pourquoi je ne pouvais tout simplement faire ce qui suit dans mon code Java:
GWT continue à me dire que Raphael n'existe pas, même si, comme je le vois à travers firebug, la bibliothèque est parfaitement compris.
Cela ne fonctionne pas non plus :
Surprinsingly, j'ai réussi à accéder à draw2d (openJacob draw2d) des classes et des fonctions avec qui
$wnd
mais pas mon Raphaël objets... Il doit y avoir quelque chose que je n'ai pas...