Projet MVC-CD Analyse des outils JavaFX Créé par M. Jaouadi, le 23 mars 205 Modifié par M. Jaouadi, le 3 mars 205 Page sur 2
Table des matières Préambule... 3 2 Les outils associés à JavaFX... 3 3 Les avantages de cette solution... 5 4 Tests techniques effectués :... 8 4. er test... 8 4.2 2ème test... 8 4.3 Conclusion :... 9 5 Installation :... 2 5. Environnement Technique :... 2 5.2 Configuration d un projet:... 2 6 Bibliographe... 2 Page 2 sur 2
Préambule Ce document sert à étudier l utilisabilité du plugin e(fx)clipse dans la réalisation de nos interfaces utilisateurs. Ces interfaces seront écrites en JavaFX et permettent de gérer les préférences de transformation. 2 Les outils associés à JavaFX Scene-Builder C est l outil de création des interfaces JavaFX, initialement créé par Oracle, permet à travers la méthode drag and drop des composants graphiques, de faciliter la création des interfaces. Figure Interface de Scene Builder Page 3 sur 2
e(fx) clipse C est le seul plugin de l outillage JavaFX pour Eclipse IDE. Les travaux dans ce projet open source ont commencé depuis l été 20. Cette intégration en plus de la liaison entre Eclipse IDE et l outil Scene Builder résident dans la documentation officielle d Oracle [Oracle-0]. Figure 2 recommandation du plugin dans Oracle Par ailleurs, après avoir effectué des recherches, j ai pu dresser un premier constat : La communauté e(fx)clipse est active, elle a un grand nombre d interactions dans le forum «Eclipse Community Forums». Durant le mois de Mars 205, il y a eu une ouverture de 23 sujets dont seulement trois ont resté sans réponse tous les autres ont été bien traités par la communauté [Eclipse-0]. J ai également accéder aux fichiers du projet sur GitHub le nombre total des commits sur le site est 2,505 commits [GitHub-0]. Les releases sont livrés toutes les 6-8 semaines. GitHub est un service web d'hébergement et de gestion collaborative de développement de logiciels basé sur le logiciel de gestion de versions Git. Page 4 sur 2
Figure 3 Le répertoire sur GitHub 3 Les avantages de cette solution Ce que peut e(fx)clipse fournir pour nos interfaces : - Prise en charge facile du CSS : Permet de fournir un éditeur qui facilite l écriture du CSS. - Interfaces conviviales : Faciliter le développement des interfaces à travers Scene Builder. Le plugin e(fx)clipse fait le lien entre Scene Builder et Eclipse. Page 5 sur 2
- Après génération des fichiers FXML 2 dans Scene Builder, e(fx)clipse fournit une vision sur la documentation des éléments graphiques créés : - Il offre aussi un outillage de définition de graphe d objet intitulé : FXGraph qui rassemble à JavaScript Object Notation (JSON) qui permet de définir des objets JavaFX 2.x 2 FXML est un fichier pour définir les interfaces utilisateurs, ayant la syntaxe de XML mais qui n ont pas de DTD ou XSD (XML Schema) Page 6 sur 2
Schéma récapitulatif : Ecriture du code java : - Développer des contrôleurs - Développer le logique métier (models) Se sert Scene Builder Proposer une alternative à Netbeans :. Faire le lien entre Eclipse et Scene Builder. Générer : Se sert 2. Offrir des outils basés sur JavaFX o FXML o CSS o DSL o JDT Ce code FXML contient tous les nœuds (Composants graphiques) ajoutés. C est au niveau de ces composants qu il faut ajouter les Listerners. Conclusion En ce qui a trait à la valeur ajoutée à notre développement, le plugin garantit une meilleure prise en charge des CSS à travers des assistants spécialisés et des éditeurs XML. Pour obtenir une rétroaction immédiate il intègre un aperçu de l interface. De plus, il offre un prototypage rapide sur l outil SceneBuilder, qui permet de générer les fichiers FXML utilisé pour décrire les interfaces en mode déclaratif. Page 7 sur 2
4 Tests techniques effectués : Afin d étudier la manière avec laquelle nous allons intégrer le plugin e(fx)clipse et pour mesurer l éventuelle dépendance que va engendrer cette intégration dans notre développement, j ai décidé d effectuer des tests en éliminant à chaque étape un facteur de dépendance. 4. er test D abord il est pertinent de signaler que la dernière version du plugin e(fx)clipse est essentiellement destinée à la version Java 8. Donc notre environnement de développement Eclipse Juno (Java7) n est plus compatible. Pour ce faire, nous allons commencer le test d abord sur la dernière version d Eclipse Luna. Objectif : S assurer que le plugin destiné à la version JRE 8 peut fonctionner normalement en utilisant le JRE7. Manipulation à faire : - Créer un projet JavaFX nommé «TestAvecPlugin» en utilisant le JRE7. - Créer une interface avec Scene Builder. - Installer un autre Eclipse IDE Luna sans plugin. - Importer le projet «TestAvecPlugin» et le renommer «TestSansPlugin» (figure5) Résultat : L application tourne sans échecs. Figure 4 Structure du projet sur Eclipse Luna sans e(fx)clipse 4.2 2ème test Objectif : S assurer que le projet développé en intégrant le plugin e(fx)clipse peut tourner dans notre environnement de développement Eclipse Juno, sans plugin. Manipulation à faire : 2 - Importer le projet sur Eclipse Juno et le nommer «TestSansPlugin» - Changer l extension du fichier FXML par XML. Page 8 sur 2
Eclipse Luna Eclipse Juno 2 2 Résultat : L application tourne correctement sans avoir besoin d intégrer le plugin ou faire la liaison sur Scene Builder. 4.3 Conclusion : L utilisation du plugin e(fx)clipse ne rend pas le développement dépendant de son existence dans le projet. Nous pouvons s en passer de cet outil si la communauté décide d arrêter le projet. Du coup, pour réaliser les interfaces graphiques nous avons trois solutions à proposer : La première : C est de favoriser le développement classique en décrivant les interfaces en mode procédural (code Java). Page 9 sur 2
Figure 5 développement procédural La deuxième : C est de développer les interfaces en utilisant le plugin e(fx)clipse et exploiter toutes les options offertes par JavaFX, ceci exige de changer la version d Eclipse parce que le plugin ne supporte plus le Juno release. 2 3 Page 0 sur 2
La troisième : C est de développer les interfaces dans Scene Builder, générer le FXML puis les mettre dans un fichier XML et l injecter dans le projet MVC-CD. Figure 6 Développer dans Scene Builder 2 Figure 7 générer le FXML 3 Figure 8 mettre le fichier MyView dans sa nouvelle forme XML Page sur 2
5 Installation : 5. Environnement Technique : Dernière version JDK qui supporte le JavaFX http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads- 859576.html Eclipse 4.x http://www.eclipse.org/downloads/ JavaFX Scene Builder http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-429449.html e(fx)clipse plug-in d Eclipse 4.x 5.2 Configuration d un projet: Il faut apporter ces JARs dans le Classpath de notre projet : JRE.7 Bootclasspath rt.jar Javafxrt.jar 6 Bibliographe [Oracle-0] [Eclipse-0] [GitHub-0] Documentation Oracle sur JavaFX Scene Builder https://docs.oracle.com/javafx/scenebuilder//use_java_ides/sb-with-eclipse.htm Eclipse Community Forums https://eclipse.org/forums/index.php/f/259/ Répertoire du projet e(fx)clipse sur GitHub https://github.com/tomsontom/e-fx-clipse Page 2 sur 2