lundi 19 novembre 2012

ImageChooser pour JavaFX

Bonjour,

Faisant majoritairement du développement d'IHM desktop en Java avec Swing, je me suis naturellement penché sur JavaFX 2.0.
Bien qu'elle manque encore de composants, j'aime beaucoup cette API et la trouve assez prometteuse.

J'ai donc fait un peu mumuse avec et voici mes premiers résultats : ImageChooser, un petit composant tout simple pour sélectionner une image.
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.

Un exemple sera plus parlant :
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"));

Donne le résultat suivant :

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).
imageChooser.setNoSelectionImage(new Image("nobody.png"));


Cliquez sur le bouton pour parcourir le disque et sélectionner une image dont une miniature sera affichée.



L'image sélectionnée est accessible via la propriété selectedImage.
Image image = imageChooser.getSelectedImage();

Un menu contextuel sur clic droit permet de vider la sélection.


Notez que vous pouvez très bien utiliser ce composant dans un FXML :
<?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>

En spécifiant l'image de non-sélection :
<?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>

Voilà, je me suis assez amusé à faire ça, n'hésitez pas à me faire des retours ;-)

Le jar et le code sont disponible ici. Si vous utilisez maven, vous pouvez ajouter la dépendance suivante :
<dependency>
    <groupId>com.mytdev</groupId>
    <artifactId>jfx-image-chooser</artifactId>
    <version>0.0.4</version>
</dependency>

@ ++

jeudi 15 novembre 2012

NBPlay: support du framework Play! pour Netbeans

Bonjour tout le monde,

J'ai récemment découvert le framework Play 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.
Or il se trouve que Geertjan Wielenga vient justement de créer le projet NBPlay.

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.

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.

Voici les fonctionnalités implémentées jusque là :
  • Reconnaissance et ouverture des projets Play. 
  • Actions clean, build (compile) et run des projets. 
  • Configuration du répertoire Play dans les options de NetBeans. 
  • Création de projets Play (java, scala, projet vide). 
  • Support du fichier des routes 
    • Coloration syntaxique 
    • Complétion de code pour les méthodes HTTP en début de ligne 


Jonas Fonseca a également rejoint le projet pour travailler sur la partie classpath qui est pour l'instant encore pas mal hardcodée.

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.

Je vais essayer de bloguer régulièrement sur mes développements relatifs à ce projet, sur les problèmes que je rencontrerai, etc.

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.
Si vous utilisez Play régulièrement quelles sont, selon vous, les fonctionnalités essentielles à intégrer en priorité ?
Toute les contributions sont les bienvenues.

Voici la liste des billets de Geertjan où il parle de NBPlay (en anglais) :

mercredi 14 novembre 2012

Présentations

Bonjour à tous, ou comme on dit chez nous, "Hello world!".

Voici le premier billet sur ce blog pour commencer par me présenter.

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.

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).


@ bientôt.

Yann