Comment ajouter d3 (javascript) à une application vaadin?

Bonsoir les gars,

Je tente actuellement d'ajouter la fonctionnalité de visualisation de d3 à mon application vaadin. Si vous ne savez pas ce qu'est le d3, voici un lien rapide: http://d3js.org/

Pourtant, je suis coincé avec quelques problèmes:

-> Existe-t-il d'autres façons d'intégrer le code javascript?

Quelqu'un pourrait-il m'aider avec une sorte d'explication "étape par étape", comment résoudre les deux moyens? L'aide serait vraiment appréciée ici, car je n'ai pas cette expérience avec cela.

——- METTRE À JOUR ———–

Comment puis-je ajouter le fichier / bibliothèque javascript "d3.v2.js", qui est nécessaire pour le développement avec d3? J'ai essayé de l'ajouter à un thème propre (WebContent / VAADIN / themes / myOwnTheme / ..), mais par rafraîchissement, je reçois le message: "Des erreurs ont eu lieu lors de la construction. Erreurs exécutant le générateur 'JavaScript Validator' sur le projet 'VaadinD3Testproject' . 14 ". Je suppose que c'est parce que le fichier js pourrait être trop grand avec environ 8 000 lignes? J'ai lu d'une manière ou d'une autre le fichier sur le web.xml? Y at-il un moyen?

J'ai corrigé cette erreur, il s'agissait d'un problème avec ma eclipse et le validateur javascript inbuild. J'ai maintenant pu charger le fichier js dans ma application en écrasant la classe ajax avec une servlet propre, comme cela a été décrit ici dans plusieurs publications.

J'ai maintenant essayé plusieurs façons:

  • GetMainWindow.executeJavaScript () ne fonctionne pas d'une manière que je pourrais utiliser d3 avec, d'une certaine manière dès que je veux ajouter un code d3, comme "d3.select (" body ") .append (" svg ");" , Il ne l'exécute pas (peu importe si je fais les étiquettes autour ou pas, mais j'ai remarqué en général que le code sur les étiquettes ne serait pas exécuté)

  • J'ai essayé d'utiliser un CustimLayout, car il a été montré dans certains exemples de ce forum, mais il est de nouveau comme décrit ci-dessus. Lorsque je vérifie le code source des sites Web, mon code manque simplement ou est analysé

  • Les étiquettes ne fonctionneront plus, peu importe le mode XHTML ou RAW, des occurrences d'exception

  • L'écrasement d'une autre méthode de servlet appelée lorsque les corps sont construits au démarrage du serveur, le résultat est que j'ai eu un message d'erreur selon lequel vaadin ne pouvait plus charger le widgets par défaut.

Alors, qu'est ce qui reste? Est-il vraiment impossible d'intégrer d3 avec vaadin? Est-ce que jamais personne n'a essayé cela? J'ai également beaucoup lu hier sur le prochain vaadin 7. Mais serait-il même une option d'utiliser une version alpha dont je n'ai aucune idée de sa stabilité (je pense que c'est pourquoi on l'appelle alpha)

Merci pour toutes les idées que vous partagez avec moi

Le moyen le plus complet d'intégrer une bibliothèque javascript existante est de développer votre propre composant personnalisé . C'est un peu plus impliqué que le développement «normal» de Vaadin, mais vous donnera un accès complet aux méthodes et objets javascript (via GWT) dans le navigateur.

Pour inclure simplement un fichier javascript externe dans la page, writeAjaxPageHtmlVaadinScripts la classe ApplicationServlet et remplacez la méthode writeAjaxPageHtmlVaadinScripts . Voici un extrait d'un projet actuel qui comprend des bibliothèques externes.

Vous pouvez ensuite utiliser ces bibliothèques en utilisant 'getMainWindow (). ExecuteJavaScript (blah)'

Pourtant, d'après ce que je peux voir de d3, il est plus logique de développer un composant Vaadin personnalisé. Vous pourriez trouver plus prudent de voir s'il existe un widget GWT d3 existant, puis essayer de l'utiliser dans un composant Vaadin.

 @Override protected void writeAjaxPageHtmlVaadinScripts(Window window, String themeName, Application application, BufferedWriter page, String appUrl, String themeUri, String appId, HttpServletRequest request) throws ServletException, IOException { page.write("<script type=\"text/javascript\">\n"); page.write("//<![CDATA[\n"); page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/jquery/jquery-1.4.4.min.js'><\\/script>\");\n"); page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/highcharts/highcharts.js'><\\/script>\");\n"); page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/highcharts/modules/exporting.js'><\\/script>\");\n"); page.write("//]]>\n</script>\n"); super.writeAjaxPageHtmlVaadinScripts(window, themeName, application, page, appUrl, themeUri, appId, request); } 

Je sais qu'il est trop tard mais j'ai commencé avec l'intégration de D3js et Vaadin. J'ai eu des ressources. Cela pourrait aider quelqu'un qui est sur cette voie Tout d'abord Le meilleur livre là-bas pour Vaadin est Book Of Vaadin Ce livre vous aidera à acquérir une connaissance approfondie de Vaadin. Il a également été recommandé pour la certification Vaadin

Cliquez ici pour télécharger Book Of Vaadin

1) Cartes Freecode et emballage D3

2) Intégration de D3 avec Vaadin

Si vous avez une erreur dans ce tutoriel, essayez de référencer ce lien -> Forum Vaadin

3) Utilisation directe du libraray d3