Analyse des outils JavaFX

Transcription

Analyse des outils JavaFX
Projet MVC-CD
Analyse des outils JavaFX
Créé par M. Jaouadi, le 23 mars 2015
Modifié par M. Jaouadi, le 31 mars 2015
Page 1 sur 12
Table des matières
1
Préambule ....................................................................................................................................... 3
2
Les outils associés à JavaFX ............................................................................................................. 3
3
Les avantages de cette solution ...................................................................................................... 5
4
Tests techniques effectués : ........................................................................................................... 8
5
6
4.1
1er test...................................................................................................................................... 8
4.2
2ème test................................................................................................................................. 8
4.3
Conclusion : ............................................................................................................................. 9
Installation : ................................................................................................................................... 12
5.1
Environnement Technique : .................................................................................................. 12
5.2
Configuration d’un projet: ..................................................................................................... 12
Bibliographe .................................................................................................................................. 12
Page 2 sur 12
1 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 1 Interface de Scene Builder
Page 3 sur 12
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é 2011. 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-01].
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 2015, 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-01]. J’ai également accéder aux fichiers du projet sur GitHub1 le nombre total des commits
sur le site est 2,505 commits [GitHub-01]. 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.
1
Page 4 sur 12
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 12
-
Après génération des fichiers FXML2 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 12
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 :
1. 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 12
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.1 1er 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 :
1
2
-
Importer le projet sur Eclipse Juno et le nommer « TestSansPlugin »
Changer l’extension du fichier FXML par XML.
Page 8 sur 12
Eclipse Luna
Eclipse Juno
1
1
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 12
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.
1
3
Page 10 sur 12
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.
1
Figure 6 Développer dans Scene Builder
2
1
Figure 7 générer le FXML
3
1
Figure 8 mettre le fichier MyView dans sa nouvelle forme XML
Page 11 sur 12
5 Installation :
5.1 Environnement Technique :




Dernière version JDK qui supporte le JavaFX
http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads1859576.html
Eclipse 4.x
http://www.eclipse.org/downloads/
JavaFX Scene Builder
http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.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 1.7
Bootclasspath
rt.jar
Javafxrt.jar
6 Bibliographe
[Oracle-01]
Documentation Oracle sur JavaFX Scene Builder
https://docs.oracle.com/javafx/scenebuilder/1/use_java_ides/sb-with-eclipse.htm
[Eclipse-01]
Eclipse Community Forums
https://eclipse.org/forums/index.php/f/259/
[GitHub-01]
Répertoire du projet e(fx)clipse sur GitHub
https://github.com/tomsontom/e-fx-clipse
Page 12 sur 12