tag:blogger.com,1999:blog-10374701906411367152024-03-14T11:36:15.513+01:00Yann D'IsantoCe blog est là pour me permettre de partager mes tribulations de développeur Java.
Il porte donc principalement sur le langage Java et son écosystème.Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-1037470190641136715.post-65805745217381326462014-03-14T11:03:00.000+01:002014-04-22T15:14:22.216+02:00[NBMongo] Nouvelle version du plugin MongoDB pour NetBeans maintenant disponible en 1.4.0<div dir="ltr" style="text-align: left;" trbidi="on">
Bonjour à tous,<br />
<br />
<br />
J'ai le plaisir de vous annoncer et vous présenter la nouvelle version du plugin MongoDB pour NetBeans. <a href="http://plugins.netbeans.org/plugin/52638">NBMongo</a> est directement disponible via l'update-center (pour l'installation ou la mise à jour si vous aviez déjà installé sa version précédente). Le plugin est maintenant aussi disponible pour NetBeans 8.0.<br />
<br />
<br />
Parmi les nouveautés, la plus notable est sans aucun doute la refonte de l'affichage des résultats des requêtes.<br />
La vue a été réécrite et permet d'explorer l'arbre des documents sans limitation .<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-nT9aUBF-8FM/UyLSCERQtjI/AAAAAAAAAgY/7rZ9H5qkxus/s1600/screenshot-medium-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-nT9aUBF-8FM/UyLSCERQtjI/AAAAAAAAAgY/7rZ9H5qkxus/s1600/screenshot-medium-1.png" height="622" width="640" /></a></div>
<br />
<br />
<br />
Une nouvelle vue a été ajoutée et permet d'afficher les résultats "à plat" dans une table classique.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-IzhkwdMPheI/UyLSCNpdEXI/AAAAAAAAAgc/79FZ2IhSfc0/s1600/screenshot-medium-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-IzhkwdMPheI/UyLSCNpdEXI/AAAAAAAAAgc/79FZ2IhSfc0/s1600/screenshot-medium-2.png" height="508" width="640" /></a></div>
<br />
<br />
<br />
Vous trouverez l'ensemble des nouveautés et corrections de bugs dans les <a href="https://github.com/le-yams/netbeans-mongodb/wiki/ReleaseNotes#nbmongo-140">release notes</a>.<br />
<br />
N'hésitez pas à me faire par de vos remarques pour continuer à l'améliorer.<br />
<br />
@++<br />
Yann<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-31433546050587864872014-02-28T13:01:00.000+01:002014-04-22T14:54:34.238+02:00[NBMongo] Version 1.3.0 du plugin MongoDB pour NetBeans disponible<div dir="ltr" style="text-align: left;" trbidi="on">
Bonjour à tous,<br />
<br />
Une mise à jour du plugin NBMongo a été publiée et est maintenant disponible directement dans votre IDE préféré.<br />
<br />
Voici les nouveautés notables que vous y trouverez pour cette version 1.3.0 :<br />
<br />
<br />
<ul style="text-align: left;">
<li>Intégration du <a href="http://docs.mongodb.org/manual/reference/program/mongo/#bin.mongo">shell mongo</a> (nécessite d'avoir l'executable installé sur le système).</li>
</ul>
<div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-KpZiKq5X6Zk/UxB2LdCAWsI/AAAAAAAAAfc/9TOJk5ol9Ao/s1600/nbmongo-shell.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-KpZiKq5X6Zk/UxB2LdCAWsI/AAAAAAAAAfc/9TOJk5ol9Ao/s1600/nbmongo-shell.png" height="191" width="320" /></a></div>
<br /></div>
<ul style="text-align: left;">
<li>Amélioration de l'interface graphique des collections avec notamment le regroupement des boutons d'action et une coloration syntaxique des documents.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-XvP9aBVUbS0/UxB5D-e0RoI/AAAAAAAAAf4/hsrJvbhsTUI/s1600/nbmongo-1.3.0-query-result.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-XvP9aBVUbS0/UxB5D-e0RoI/AAAAAAAAAf4/hsrJvbhsTUI/s1600/nbmongo-1.3.0-query-result.png" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br />
Vous trouverez la liste complète des corrections et améliorations dans les <a href="https://github.com/le-yams/netbeans-mongodb/wiki/ReleaseNotes#wiki-nbmongo-130">release notes</a>.</div>
<br />
<br />
La version suivante apportera une nette amélioration de l'affichage des résultats des requêtes avec une refonte de la vue arborescente mais aussi la possibilité de les afficher dans une vue "à plat".<br />
<br />
@++<br />
Yann</div>
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-83535005902309812592014-02-13T12:42:00.000+01:002014-02-13T16:15:45.733+01:00[NBMongo] disponible depuis l'update center de Netbeans<div dir="ltr" style="text-align: left;" trbidi="on">
Bonjour,<br />
<br />
J'ai le plaisir de vous annoncer que <a href="http://plugins.netbeans.org/plugin/52638/nbmongo">le plugin NBMongo</a> est maintenant disponible directement depuis l'update center de NetBeans 7.4.<br />
<br />
Pour l'installer il vous suffit donc d'ouvrir le gestionnaire des plugins de NetBeans (menu "<b><i>Tools -> Plugins</i></b>") et de sélectionner NBMongo dans la liste des plugins disponibles (onglet "<b><i>Available Plugins</i></b>", vous pouvez vous aider du champ de recherche en haut à droite). Cliquez sur "<b><i>Install</i></b>" et le tour est joué :-).<br />
<br />
J'en profite pour vous présenter des améliorations on cours de développement pour la prochaine version :<br />
<ul style="text-align: left;">
<li>éditeur avancé pour les URI Mongo</li>
<li>amélioration du rendu des documents dans la liste résultat des requêtes</li>
<ul>
<li>ajout des guillemets autour des valeurs de type chaîne de caractères</li>
<li>coloration/décoration des clés/valeurs en fonction de leur type</li>
</ul>
<ul>
<li>panneau dans les options pour personnaliser la coloration/décoration</li>
</ul>
<li>ajout d'un menu contextuel sur les documents dans la liste résultat des requêtes</li>
<ul>
<li>copie du document (au format json) dans le presse papier</li>
<li>copie de la clé sélectionnée dans le presse papier</li>
<li>copie de la valeur sélectionnée dans le presse papier</li>
</ul>
<li>bugfix sur la gestion de l'état déconnecté </li>
</ul>
<div>
<br /></div>
<div>
Par exemple</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-O84WT90ethw/Uvs4LYQ2qpI/AAAAAAAAAe4/9tksBVQENd8/s1600/nbmongo-documents-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-O84WT90ethw/Uvs4LYQ2qpI/AAAAAAAAAe4/9tksBVQENd8/s1600/nbmongo-documents-1.png" height="193" width="400" /></a></div>
deviendra<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ZbVwNHlDibk/Uvs4LagNtKI/AAAAAAAAAe8/kj8DlrI-2Wc/s1600/nbmongo-documents-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-ZbVwNHlDibk/Uvs4LagNtKI/AAAAAAAAAe8/kj8DlrI-2Wc/s1600/nbmongo-documents-2.png" height="193" width="400" /></a></div>
<span id="goog_1127167781"></span><span id="goog_1127167782"></span><br />
<br />
<br />
<br />
@bientôt</div>
<div>
Yann</div>
</div>
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-78198026339291709282014-01-24T19:42:00.000+01:002014-02-17T13:34:56.702+01:00[NBMongo] Un plugin MonogDB pour NetBeans<div dir="ltr" style="text-align: left;" trbidi="on">
Bonjour tout le monde,<br />
<br />
Je voudrais vous présenter un nouveau plugin pour l'IDE <a href="https://netbeans.org/">NetBeans</a>. J'ai nommé <a href="https://github.com/le-yams/netbeans-mongodb">NBMongo</a>, qui est un client pour accéder à une base <a href="http://www.mongodb.org/">MongoDB</a> (base de type NoSQL).<br />
<br />
Originalement créé par Tim Boudreau, j'ai repris ce projet et viens d'en publier sa version 1.2.0.<br />
<br />
Voici une petite liste des fonctionnalités disponibles :<br />
<ul style="text-align: left;">
<li>Connexion à MongoDB (avec une uri mongo standard).</li>
<li>Parcours des collections.</li>
<li>Création/renommage/suppression des collections.</li>
<li>Parcours des documents d'une collection (possibilité de spécifier un critéria, une projection ainsi que l'ordre).</li>
<li>Ajout/édition/suppression des documents.</li>
<li>Import/Export json.</li>
</ul>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-0ux9yOTs-XM/UuELdtPQpvI/AAAAAAAAAc0/rT9QzdF62hg/s1600/screenshot-nbmongo-1.2.0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="screenshot nbmongo" border="0" src="http://2.bp.blogspot.com/-0ux9yOTs-XM/UuELdtPQpvI/AAAAAAAAAc0/rT9QzdF62hg/s1600/screenshot-nbmongo-1.2.0.png" height="499" title="screenshot nbmongo" width="640" /></a></div>
<a href="http://2.bp.blogspot.com/-0ux9yOTs-XM/UuELdtPQpvI/AAAAAAAAAc0/rT9QzdF62hg/s1600/screenshot-nbmongo-1.2.0.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="http://2.bp.blogspot.com/-0ux9yOTs-XM/UuELdtPQpvI/AAAAAAAAAc0/rT9QzdF62hg/s1600/screenshot-nbmongo-1.2.0.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><br />
<br />
<br />
<br />
<br />
Actuellement disponible pour NetBeans 7.4, vous pouvez <a href="http://plugins.netbeans.org/plugin/52638">le télécharger ici</a>. N'hésitez pas à me faire vos retours, j'ai déjà quelques idées en cours pour la prochaine version mais je serais ravi d'avoir vos commentaires pour l'améliorer.<br />
<br />
@bientôt :-)<br />
<br />
Yann</div>
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-66517501898238703772013-03-27T13:25:00.000+01:002013-03-27T13:25:01.104+01:00[Devoxx France] C'est parti !<br />
Je ne l'avais pas annoncé mais j'assiste à la <a href="http://www.devoxx.com/display/FR13/Accueil">deuxième édition de Devoxx France</a>. Petite soeur de Devoxx, elle se déroule à Paris sur trois jours (du 27 au 29 mars). C'est grâce à <a href="http://www.developpez.com/">developpez.com</a> que je me suis vu offrir une entrée gratuite afin de couvrir cet évènement. Je vais essayer de faire quelques billets pendant la conférence (en fonction du temps que j'aurai de disponible) mais ferai dans tout les cas un compte rendu sous forme d'article une fois la conférence terminée.<br />
<br />
Me voilà donc parachuté au centre de conférence du Marriott Hotel Paris rive gauche. Je me suis présenté assez tôt (vers 7h50) pour retirer mon badge et j'ai bien fait. Il n'y avait presque personne mais 20 minutes plus tard c'était la cohue. J'ai profité du temps que j'avais pour faire un peu le tour et repérer les diverses salles de la conférence. Avec la stratégie du premier arrivé premier assis, il vaut mieux ne pas arriver trop en retard, en particulier pour les hands-on-lab.<br />
<br />
Pour cette première journée j'ai prévu les sessions suivantes :<br />
<br />
<br />
<ul>
<li>6 Minute Apps! Build Your First Modern Web App</li>
<li>Stratégie de testing de code legacy</li>
<li>Spock, le testing nouvelle génération</li>
<li>NFC, l'interaction facilitée des mobiles avec leur environnement</li>
<li>Good Bad and Ugly Maven - a puzzler session</li>
</ul>
<br />
<br />
Les journée vont être denses et intenses, c'est parti !<br />
<br />
<br />
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-86245110769487923882013-01-03T23:25:00.001+01:002013-01-21T18:35:23.302+01:00[Java] Resources et internationalisation simple avec ResourceBundle<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Un moyen simple d'internationaliser son code Java est d'utiliser la class <a href="http://javasearch.developpez.com/j2se/1.6.0/docs/api/java/util/ResourceBundle.html" target="_blank"><span style="font-family: Courier New, Courier, monospace;">ResourceBundle</span></a> avec des fichiers properties.<br />
<br />
Voici une IHM simple suivi de son code :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Q7sf4xyEK7g/UOWkP-potBI/AAAAAAAAAP8/WQgI20BVtjY/s1600/simple-frame.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Q7sf4xyEK7g/UOWkP-potBI/AAAAAAAAAP8/WQgI20BVtjY/s1600/simple-frame.png" /></a></div>
<br />
<pre class="brush: java">public final class SimpleFrame extends JFrame {
private JLabel label;
private JButton closeButton;
public SimpleFrame() {
super("Simple Frame");
initComponents();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setPreferredSize(new Dimension(280, 70));
pack();
setLocationRelativeTo(null);
}
private void initComponents() {
label = new JLabel("Hello world!");
closeButton = new JButton("Close");
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
setLayout(new FlowLayout(FlowLayout.CENTER));
add(label);
add(closeButton);
}
}
</pre>
<br />
<br />
Vous noterez les trois chaînes de caractères écrites en dur dans le code.<br />
<br />
La classe <span style="font-family: Courier New, Courier, monospace;">ResourceBundle</span> permet d'externaliser ces ressources dans un fichier properties, le tout pouvant être internationalisé de surcroît.<br />
<br />
Voici le code d'une IHM similaire à la précédente :<br />
<pre class="brush: java">public final class I18nFrame extends JFrame {
private static final ResourceBundle RESOURCES =
ResourceBundle.getBundle(I18nFrame.class.getName());
private JLabel label;
private JButton closeButton;
public I18nFrame() {
super(RESOURCES.getString("title"));
initComponents();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setPreferredSize(new Dimension(280, 70));
pack();
setLocationRelativeTo(null);
}
private void initComponents() {
label = new JLabel(RESOURCES.getString("label.text"));
closeButton = new JButton(RESOURCES.getString("closeButton.text"));
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
setLayout(new FlowLayout(FlowLayout.CENTER));
add(label);
add(closeButton);
}
}
</pre>
<br />
Les chaînes de caractères sont stockées dans un fichier properties portant le même nom que la classe (ici <span style="font-family: Courier New, Courier, monospace;">I18nFrame.properties</span>) et situé dans le même package.
<br />
<pre class="brush: plain">label.text = Hello world!
closeButton.text = Close
title=Internationalized Frame
</pre>
<br />
On obtient le résultat suivant<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-23mF68VCBsM/UOWkOiQPONI/AAAAAAAAAP0/RZArlC_GhY8/s1600/i18n-frame-default.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-23mF68VCBsM/UOWkOiQPONI/AAAAAAAAAP0/RZArlC_GhY8/s1600/i18n-frame-default.png" /></a></div>
<br />
Pour ajouter une nouvelle langue il suffit de créer un fichier properties pareil au premier en y ajoutant un suffixe à son nom. Le suffixe indique la locale concernée, ainsi un fichier <span style="font-family: Courier New, Courier, monospace;">I18nFrame_fr.properties</span> spécifie les ressources pour la langue française (cf la javadoc de <a href="http://javasearch.developpez.com/j2se/1.6.0/docs/api/java/util/ResourceBundle.html" target="_blank"><span style="font-family: Courier New, Courier, monospace;">ResourceBundle</span></a> pour plus de détails).
<br />
<pre class="brush: plain">label.text = Bonjour tout le monde !
closeButton.text = Fermer
title=Fenêtre internationalisée
</pre>
<br />
Ce qui donne :<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-BwPnANgC_8w/UOWkPWwV2kI/AAAAAAAAAP4/VNGSdmqdEiw/s1600/i18n-frame-fr.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-BwPnANgC_8w/UOWkPWwV2kI/AAAAAAAAAP4/VNGSdmqdEiw/s1600/i18n-frame-fr.png" /></a></div>
<br />
<br />
<br />
Ce mécanisme est assez simple et très facile à mettre en oeuvre, très utile pour internationaliser son code. Un dernier exemple pour la représentation textuelle d'une enum.
<br />
<pre class="brush: java">public enum Country {
FRANCE,
GERMANY,
USA;
private static final ResourceBundle RESOURCES =
ResourceBundle.getBundle(Country.class.getName());
@Override
public String toString() {
return RESOURCES.getString(name());
}
}
</pre>
<br />
avec le fichier <span style="font-family: Courier New, Courier, monospace;">Country.properties</span><br />
<pre class="brush: plain">FRANCE = France
GERMANY = Germany
USA = United State of America
</pre>
et <span style="font-family: Courier New, Courier, monospace;">Country_fr.properties</span><br />
<pre class="brush: plain">FRANCE = France
GERMANY = Allemagne
USA = Etats Unis d'Amérique
</pre>
<div>
<br /></div>
<br />
Vous n'avez plus d'excuse pour hardcoder vos chaînes de caractère ;-)<br />
<br />
@++<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-76187140804786146542012-12-13T13:34:00.000+01:002012-12-13T13:34:00.574+01:00[NBPlay] Fonctionnalité de création de projet Play pour NetBeans<br />
Ma première contribution au projet NBPlay a été d'ajouter la fonctionnalité de création de projet Play.<br />
<br />
Instinctivement je pensais qu'il me fallait trouver comment exécuter la commande<br />
"play new projectName" via une action de NetBeans.<br />
<br />
Mais n'ayant jamais développé pour la plateforme NetBeans, j'ai tout naturellement cherché de la documentation et éventuellement un tutoriel pouvant m'aider.<br />
Bingo ! Je tombe sur le tutoriel <a href="http://platform.netbeans.org/tutorials/nbm-projecttype.html" target="_blank">NetBeans Project Type Module Tutorial </a>(en anglais).<br />
<br />
Les première parties sont dédiées à la définition du type de projet lui même (choses que Geertjan avait déjà reprises pour définir le type de projet Play).<br />
C'est la dernière partie qui m'intéressait tout particulièrement car elle répond exactement au besoin.<br />
Il y est expliqué comment ajouter des "projets exemple" qui serviront de base pour que l'utilisateur puisse créer de nouveaux projets.<br />
<br />
L'approche est donc assez différente de ce que j'imaginais mais finalement reflète assez bien les étapes suivies lors de la création de projet avec Play.<br />
<br />
<a name='more'></a><br />
Tout d'abord il faut créer le(s) projet(s) qui serviront de template. J'ai donc commencé par créer 3 projets Play (un java, un scala et un vide) en ligne de commande.<br />
<br />
Ensuite il est nécessaire que le plugin en développement puisse reconnaitre ces projets (cf les étapes précédentes du tutoriel). Pour NBPlay c'était déjà le cas.<br />
<br />
On exécute le projet du plugin, ce qui lance un NetBeans avec lequel on va pouvoir ouvrir le(s) projet(s) que l'on vient de créer. Il faut également ouvrir le projet du plugin.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-wzvGXgt99xw/UMj2FnzpdJI/AAAAAAAAAN8/1YvvSGSmkbk/s1600/nbplay-creation-projet-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-wzvGXgt99xw/UMj2FnzpdJI/AAAAAAAAAN8/1YvvSGSmkbk/s1600/nbplay-creation-projet-1.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
Pour créer un template de projet, on fait un clic droit sur le package dans lequel on veut le créer : <b style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><i>New</i></b><span style="background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"> -> </span><b style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><i>Other</i></b><span style="background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"> -> </span><b style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><i>Module Development</i></b><span style="background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"> et sélectionner </span><span style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><i style="font-weight: bold;">Project Template</i>. </span><br />
<span style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-7CpDcicmwCY/UMj57wEakaI/AAAAAAAAAOU/NGKnGGogoZU/s1600/nbplay-creation-projet-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-7CpDcicmwCY/UMj57wEakaI/AAAAAAAAAOU/NGKnGGogoZU/s1600/nbplay-creation-projet-2.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Sélectionner le projet voulu, puis indiquer les propriétés du template (nom, libellé, package, catégorie).<br />
<span style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-B4VycbO6Yrc/UMkLgW8oB2I/AAAAAAAAAPE/LK-vT9CVAGk/s1600/nbplay-creation-projet-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-B4VycbO6Yrc/UMkLgW8oB2I/AAAAAAAAAPE/LK-vT9CVAGk/s1600/nbplay-creation-projet-3.png" /></a></div>
<span style="color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-DW67GW0saho/UMj_mF3g4JI/AAAAAAAAAOs/xIiIuR6MVm8/s1600/nbplay-creation-projet-4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-DW67GW0saho/UMj_mF3g4JI/AAAAAAAAAOs/xIiIuR6MVm8/s1600/nbplay-creation-projet-4.png" height="423" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Le projet sélectionné est alors zippé et ajouté aux sources.</div>
<br />
Ces étapes sont à refaire pour chaque template.<br />
<br />
Vous pouvez maintenant fermer la deuxième instance de NetBeans.<br />
Si votre projet est un projet NetBeans il vous faudra également fermer puis ré-ouvrir le projet du plugin car le fichier <span style="font-family: inherit;"><i>n</i></span><i><span style="font-family: inherit;"><span style="font-family: inherit;">b</span>project/private/platform-private.properties</span></i> a été modifié par la seconde instance de NetBeans et il doit être rechargé par le projet. Cela n'est pas nécessaire si, comme NBPlay, votre projet est un projet maven.<br />
<br />
<br />
Vous pouvez maintenant ré-exécuter le module pour profiter de la nouvelle fonctionnalité de création de projet.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-kBJIwXJq4cI/UMkKSfxZmqI/AAAAAAAAAO8/gioxTwJQbc8/s1600/nbplay-creation-projet-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-kBJIwXJq4cI/UMkKSfxZmqI/AAAAAAAAAO8/gioxTwJQbc8/s1600/nbplay-creation-projet-5.png" /></a></div>
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-53020014608400132322012-11-19T13:44:00.001+01:002013-01-02T16:16:46.750+01:00ImageChooser pour JavaFXBonjour,<br />
<br />
Faisant majoritairement du développement d'IHM desktop en Java avec Swing, je me suis naturellement penché sur JavaFX 2.0.<br />
Bien qu'elle manque encore de composants, j'aime beaucoup cette API et la trouve assez prometteuse.<br />
<br />
J'ai donc fait un peu mumuse avec et voici mes premiers résultats : <a href="http://code.google.com/p/jfx-image-chooser/" target="_blank">ImageChooser</a>, un petit composant tout simple pour sélectionner une image.<br />
Il s'agit d'un bouton qui, lorsqu'on clique dessus, permet de sélectionner une image sur le disque. Une fois sélectionnée, une miniature de l'image est affichée sur le bouton.<br />
<br />
Un exemple sera plus parlant :<br />
<pre class="brush: jfx">
HBox hbox = new HBox(5);
hbox.setAlignment(Pos.CENTER);
hbox.setPadding(new Insets(10));
ImageChooser imageChooser = new ImageChooser();
imageChooser.setImagePadding(2);
hbox.getChildren().addAll(imageChooser, new Label("Choose your avatar"));
</pre>
<br />
Donne le résultat suivant :<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample1.png" /></a></div>
<br />
Il est possible de spécifier une image de "non sélection" (attention, ce n'est pas une image par défaut mais l'image dessinée quand la sélection est nulle).<br />
<pre class="brush: jfx">
imageChooser.setNoSelectionImage(new Image("nobody.png"));
</pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample2.png" /></a></div>
<br />
<br />
Cliquez sur le bouton pour parcourir le disque et sélectionner une image dont une miniature sera affichée.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample3.png" /></a></div>
<br />
<br />
L'image sélectionnée est accessible via la propriété <span style="font-family: Courier New, Courier, monospace;">selectedImage</span>.<br />
<pre class="brush: jfx">Image image = imageChooser.getSelectedImage();</pre>
<br />
Un menu contextuel sur clic droit permet de vider la sélection.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://jfx-image-chooser.googlecode.com/svn/wiki/images/jfx-image-chooser-sample4.png" /></a></div>
<br />
<br />
Notez que vous pouvez très bien utiliser ce composant dans un FXML :<br />
<pre class="brush: xml">
<?import com.mytdev.javafx.scene.control.ImageChooser?>
<HBox xmlns:fx="http://javafx.com/fxml" alignment="center" spacing="5">
<padding>
<Insets top="10" right="10" bottom="10" left="10" />
</padding>
<ImageChooser imagePadding="2" />
<Label text="Choose your avatar" />
</HBox>
</pre>
<br />
En spécifiant l'image de non-sélection :<br />
<pre class="brush: xml">
<?import com.mytdev.javafx.scene.control.ImageChooser?>
<HBox xmlns:fx="http://javafx.com/fxml" alignment="center" spacing="5">
<padding>
<Insets top="10" right="10" bottom="10" left="10" />
</padding>
<ImageChooser imagePadding="2">
<noSelectionImage>
<Image url="@nobody.png" />
</noSelectionImage>
</ImageChooser>
<Label text="Choose your avatar" />
</HBox>
</pre>
<br />
Voilà, je me suis assez amusé à faire ça, n'hésitez pas à me faire des retours ;-)<br />
<br />
Le jar et le code sont disponible <a href="http://code.google.com/p/jfx-image-chooser/" target="_blank">ici</a>. Si vous utilisez maven, vous pouvez ajouter la dépendance suivante :<br />
<pre class="brush: xml">
<dependency>
<groupId>com.mytdev</groupId>
<artifactId>jfx-image-chooser</artifactId>
<version>0.0.4</version>
</dependency>
</pre>
<br />
<div>
@ ++</div>Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-34772007558689573902012-11-15T11:43:00.000+01:002012-11-15T13:31:56.805+01:00NBPlay: support du framework Play! pour NetbeansBonjour tout le monde,<br /><br />J'ai récemment découvert le framework <a href="http://www.playframework.org/">Play</a> et je dois dire qu'il m'a tout de suite beaucoup plu. Comme j'utilise NetBeans pour mes développement j'ai tout naturellement cherché un plugin permettant d'utiliser Play dans NetBeans.<br />Or il se trouve que <a href="https://blogs.oracle.com/geertjan/entry/welcome_to_me">Geertjan Wielenga</a> vient justement de créer le projet <a href="http://java.net/projects/nbplay">NBPlay</a>.<br /><br />Le projet est tout neuf et ouvert à quiconque souhaite apporter sa contribution. Je me suis moi même proposé et Geertjan m'a tout simplement ajouté aux committers du projet. <br /><br />Il n'y a pas encore de build disponible mais vous pouvez à tout moment récupérer les sources via subversion et les builder avec maven.<br /><br />Voici les fonctionnalités implémentées jusque là : <br /><ul>
<li>Reconnaissance et ouverture des projets Play. </li>
<li>Actions clean, build (compile) et run des projets. </li>
<li>Configuration du répertoire Play dans les options de NetBeans. </li>
<li>Création de projets Play (java, scala, projet vide). </li>
<li>Support du fichier des routes </li>
<ul>
<li>Coloration syntaxique </li>
<li>Complétion de code pour les méthodes HTTP en début de ligne </li>
</ul>
</ul>
<br /><br />Jonas Fonseca a également rejoint le projet pour travailler sur la partie classpath qui est pour l'instant encore pas mal hardcodée. <br /><br />Je n'avais encore jamais développé pour la plateforme NetBeans et c'est là une occasion pour moi de la découvrir. J'avoue que ça me plait pas mal, la plateforme est assez facile à prendre en mains et les tutoriels sur netbeans.org sont plutôt bien fait.<br /><br />Je vais essayer de bloguer régulièrement sur mes développements relatifs à ce projet, sur les problèmes que je rencontrerai, etc. <br /><br />Voilà, n'hésitez pas à faire des commentaires sur le projet. En effet je ne me suis intéressé à ce framework que récemment et n'ai donc pas vraiment d'expérience quand à son utilisation.<br />Si vous utilisez Play régulièrement quelles sont, selon vous, les fonctionnalités essentielles à intégrer en priorité ?<br />Toute les contributions sont les bienvenues.<br /><br />Voici la liste des billets de Geertjan où il parle de NBPlay (en anglais) : <br /><ul>
<li><a href="https://blogs.oracle.com/geertjan/entry/play_framework_plugin_for_netbeans">Play Framework Plugin for NetBeans IDE (Part 1)</a> </li>
<li><a href="https://blogs.oracle.com/geertjan/entry/play_framework_plugin_for_netbeans1">Play Framework Plugin for NetBeans IDE (Part 2)</a></li>
</ul>
<ul style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px;">
</ul>
Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0tag:blogger.com,1999:blog-1037470190641136715.post-69015725388411092492012-11-14T15:08:00.000+01:002012-11-19T10:35:41.133+01:00PrésentationsBonjour à tous, ou comme on dit chez nous, "Hello world!".<br />
<br />
Voici le premier billet sur ce blog pour commencer par me présenter.<br />
<br />
Je m'appelle Yann D'Isanto et vis à Nice (France). Je suis ingénieur en développement logiciel ou pour faire moins pompeux, tout simplement un geek assez curieux.<br />
<br />
Je suis spécialisé dans le langage Java et aime bidouiller autour de cette techno de plus ou moins loin. Ce sera donc le sujet principal de ce blog, que ce soit des technos/techniques que je découvre ou qui me plaisent, des projets auxquels je participe ou bien des problèmes que je rencontre (et espérons le les solutions qui vont avec).<br />
<br />
<br />
@ bientôt.<br />
<br />
Yann<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/10790482419766348376noreply@blogger.com0