[HowTo] Java swing – Scroller automatiquement dans un jTextArea

J’ai eu besoin de faire un petit logiciel de contrôle de flux récemment et j’y ai donc intégré une console affichant les évènements reçus du réseau, etc.
Pour que ma console soit sexy, j’ai voulu que celle-ci affiche toujours les derniers messages arrivés et donc qu’elle scroll toute seule vers le bas. Malheureusement, swing ne semble pas gérer cela de base **arf**, il va donc falloir un peu ruser.
Pour faire cela (j’utilise Netbeans au passage), lorsque l’on ajoute un jTextArea, un jScrollPane dans lequel il se trouve est automatiquement créé. C’est parfait. Si vous faite votre interface à la main, il faut donc mettre votre jTextArea que nous appellerons jta dans un jScollPane que nous appellerons jsp

On commence par récupérer la jScrollBar de notre jsp

[sourcecode language="java"]
JScrollBar scrollBar = jsp.getVerticalScrollBar();
[/sourcecode]

On ajoute ensuite le texte que l’on veut dans notre jTextArea

[sourcecode language="java"]
jta.append("Scroll and look at me !");
[/sourcecode]

Ensuite, on regarde si celle-ci est visible. Si c’est le cas, c’est que le jTextArea est déjà plein et on la place donc en bas

[sourcecode language="java"]
if(scrollBar.isVisible())
jta.setCaretPosition(jta.getDocument().getLength());
[/sourcecode]

Voilà, rien de plus simple et très pratique.

Maintenant, voyons le cas ou on aurait bougé dans notre jTextArea et que l’on ne veuille pas scroller à chaque fois qu’un nouveau message y est ajouté… **beaucoup d’applications ne gèrent pas ça et c’est vraiment agaçant!!!**
Pour cela, on rajoute une ligne afin de vérifier si la scrollbar est déjà en bas (dans le cas où on n’aurait donc pas bougé :

[sourcecode language="java"]
boolean isAtBottom = ((scrollBar.getValue() + scrollBar.getVisibleAmount()) == scrollBar.getMaximum());
[/sourcecode]

Puis, on remplace notre test par :

[sourcecode language="java"]
if(isAtBottom)
jta.setCaretPosition(jta.getDocument().getLength());
[/sourcecode]

Voilà, en espérant que ce petit tip aidera :)

Keres project – Manage and secure your people-lifting booms and platforms

During the 3rd year at EPITA, students are able to do a personal project (during 4 month) that can replace some school projects.

So, benjamin, simon and I decided to find and create a solution to manage and secure construction trucks after Access Industries company talked to us about their problem. Actualy, all kind of people-lifting booms and platforms have the same key, so, it’s easier to change it if it is lost. But, it is completly unsecure and it appears that access that their trucks are used during the night or the week end by other companies.

So, we proposed them one solution, not very expensive and easy to use.

Our solution consists of using RFID cards and GPRS connexion to secure the trucks.

Here is how it works :

  • When you want to use a truck, just the card come near the RFID device.Boitier Keres
  • our device contact our server and check if:
    • this card is allowed to switch on this truck
    • this truck can by switch on at this time and date (for example, a company can decide to make this truck only accessible from monday to wednesday between 8am to 4pm)
  • The server responds to our device which switch on or not the truck.

Technologies used

  • RFID receptor
  • Wifi to simulate GPRS for this first step of the project
  • C# webservices
  • asp.Net for the web interface (see video demo) and Ajax
  • C# stand-alone application to manage the RFID device


[hana-flv-player video="http://blog.zoubda.fr/wp-content/uploads/2010/07/projetLibreEpitaKeres.flv"
width="400"
height="330"
description="Mise en situation du produit Keres"
player="4"
autoload="true" autoplay="false"
loop="false" autorewind="true"
/]

Thanks

  • EPITV for the demonstration video
  • Pierre Cauchois (from Microsoft france) who lent us the device (Via Artigo3 with windows embedded standard)

Too see the news on EPITA website written by their journalist (in french): Click here

Descente dans les profondeur de l’arrière pays niçois

Ce we, nous sommes allé faire une petite via-souterrata dans l’arrière pays niçois.
Après 1h15 de route, nous arrivons au pied des pistes de ski de Gréolières dans le parc naturel de la moulière. Nous sommes pris en charge, on nous habille des pieds à la tête (combinaison, gants, casque et lampe frontale, baudrier et mousquetons), une petite formation de 10 minutes sur l’utilisation des mousquetons et l’assurance et nous sommes en route pour l’entrée de la grotte.
Dix bonnes minutes de marches en montagne sous les combinaisons et des litres d’eau de perdus plus tard, l’entrée de la grotte se dessine.
Un petit aperçu de la grotte, une descente de bien 20 mètres dans un petit trou, au fond, du noir et encore du noir, du silence, 10 degrés (mais on à quand même bien chaud avec les efforts fournis), et que du bonheur :)
Je vous laisse admirer les photos.

[smooth=id:7]

Italy report

Dates : from august, 9 to august, 14, 2010.
Distance : 2344 km (1456 miles).
How : Car (Renault laguna)
Price : xx euro sleep.
xx euros gazol and road.
xx euros for souvenirs, restaurants, …
Sleep : Bead & Breakfast (3 nights)
Hotels (1 night in Florence, 1 night in Pompei)

Lire la suite

Consulter son répondeur Freebox

Le 13 juillet, c’est jour de fête, mon Android est tombé en panne alors, voila, retour sur windows mobile. Et, je dois dire, que bien qu’au niveau fonctionnalités rien ne manque, niveau applis, c’est quand même pas la même chose… On se retrouve obligé de lancer opera mobile pour aller chercher certaines infos qui étaient à porté de doigts sur une appli Android.

Anyway, lors de mon stage, j’avais expérimenté une petite appli que j’avais commencé à faire pour winmo afin de lire les message de votre répondeur freebox depuis votre téléphone. Bon, inutile de vous dire qu’elle s’est perdue quelque part mais l’idée me plait toujours bien, donc j’ai recommencé çà avant hier pour votre plus grand bonheur :)

Voici un petit schéma récapitulatif de comment marche l’application une fois lancée.

Workflow de lecture du répondeur Freebox

Workflow de lecture du répondeur Freebox

Alors, dans l’ordre :

  • on se connecte au site de Free afin de s’identifier et l’on récupère les variables qui vont ensuite nous permettre de nous reconnaitre lors de la récupération des messages;
  • Free ne mettant pas à disposition des développeurs des méthodes “jolies” d’accès à ses services, on récupère la bonne page où l’on récupère les infos comme l’on peut :
    • Le numéro de l’appelant;
    • La date du message;
    • La durée du message;
    • Le nom et le chemin du fichier audio;
    • Le chemin pour le supprimer (pour une version prochaine peut-être);
  • A chaque message que l’on récupère, on le rajoute dans la base de donnée du logiciel si il n’y est pas;
  • Pour chaque message également, on le télécharge (j’ai longtemps hésité pour savoir si je téléchargeais tout là ou juste à la lecture, mais j’espère que personne n’a 45 message sur son répondeur) si celui-ci n’existe pas;
  • On affiche la liste des message présents dans la base de données;
  • A chaque lecture d’un message, on set son champ dans la BDD afin de dire qu’il n’est pas nouveau.

Bon, bien de rien dur, la dedans. Le plus long, ne voulant pas vous laisser avec une interface graphique native faite avec les (magnifiques et très modernes) contrôles de base de winmo, fut de réaliser une interface avec la bibliothèque Fluid.
Je vous laisse donc découvrir la première version de l’application et j’attends vos retours (bon, comme mauvais), vos remontées de bug, etc.

Si le temps me le permet, je mettrais à jour l’application. Pour le moment, certaines actions sont déjà implémentées. Voici un récapitulatif de ce que fait l’application, ce qui est déjà implémenté mais pas visible dans l’interface (donc bientôt potentiellement), et ce qui ne marche pas:

  • La connexion au site de free
  • La récupération de la liste des messages
  • Le téléchargement et l’écoute des messages
  • La possibilité de supprimer un message (de la BDD et de votre répondeur bien sur);
  • Rappeler un correspondant;
  • Arrêter la lecture d’un message (vous l’aurez remarqué, cela est impossible pour le moment);
  • Remettre un message comme non lu;
  • Gérer les erreurs (identifiants incorrectes, pas de réseau);
  • Possibilité de rentrer ses identifiants depuis l’interface.

Mon problème pour inclure ces fonctionnalités est la prise en main de la bibliothèque graphique que j’utilise mais que je ne maitrise pas vraiment.

Alors, que faire pour l’installer? Il suffit de télécharger l’installeur dans la partie “Downloads” du site et d’aller éditer un petit fichier xml qui doit se trouver dans le répertoire “data” du répertoire d’installation du programme (normalement Program Files\\Repondeur Freebox\\data) sur votre téléphone afin d’y rentrer votre numéro de téléphone et votre mot de passe free dans les bon champs. Exemple
[sourcecode language="xml"]
<?xml version="1.0" ?>
<infos login="0102030405" password="azerty" />
[/sourcecode]

Je mettrais l’installeur en ligne dans la soirée :)

Mise à jour de mon CV

Un petit article pour signaler que j’ai mis à jour mon CV et qu’il y aura prochainement une version anglaise de celui-ci.
J’y ai ajouté certaines compétences que j’ai appris lors de ma 1ère année de mon option SIGL (Système d’Information et Génie Logiciel) ainsi que mon expérience en tant que professeur de bioinformatique à Sup’Biotech (qui reprend en septembre).
Je suis aussi depuis mars consultant à la mise en place du laboratoire de bioinformatique de Sup’Biotech.

Turkey report

Dates : from april, 4 to april, 11, 2010.
How : Airplane from Paris to Antalya and return.
Price : xx euro for plane.
xx euros for hotel and food.
xx euros for souvenirs, …
Sleep : Hotels.

Lire la suite

Bonne année 2010 à tous

Hey,

A tous ceux qui suivent mon blog de temps en temps, je vous souhaite une très bonne année 2010, pleine de bonnes choses, de surprises et de geekeries ;)

A bientôt.

Gérer sa messagerie vocale Free depuis son téléphone Winmo

Ce qui est bien avec windows mobile, c’est qu’on a beau avoir des milliers d’applications qui trainent sur internet, la plupart ont été faites il y a plusieurs années de cela et sont soit très moche, soit inutiles, les développeurs préférant se tourner vers d’autres plateformes en ce moment.
Donc, ce qui est bien, c’est qu’il reste énormément de choses à faire !
L’autre jour, sur http://www.pointgphone.com, je suis tombé sur une news parlant d’un logiciel sous Android permettant d’avoir accès sur son téléphone à sa messagerie fixe. Ni une, ni deux, je regarde comment cela marche et je me suis dit : “hum, au final, la seule chose que je ne sais pas faire la dedans, c’est me connecter sur le site de free”. Je me suis donc renseigné sur l’authentification POST avec le compact framework. Bon, inutile de vous dire que c’est bien plus intuitif en java qu’en C# mais bon.
Bref, une matinée ou je n’avais rien à faire (genre ce matin), et que je ne pouvais pas bosser sur l’application Bouygues vu que les sources sont chez moi, je me suis lancé dans une nouvelle application.

Une heure plus tard, j’avais ma bibliothèque qui me permettait de télécharger les messages vocaux, gérait une petite base de donnée pour savoir si ils étaient nouveaux ou non et permettait de lui jouer. La suppression ne marche pas encore, allez savoir pourquoi elle part en timeout…

Liste des messages vocaux

Bref, ma bibliothèque faite (oui, ce coup-ci j’ai fais une bibliothèque comme ça je pourrai faire des appli en Form natives, Silvermoon ou autre sans avoir à m’embêter), je me suis dit que Silvermoon, c’était encore trop buggé vu les rapports que j’ai de l’application windows mobile, le winform, c’est toujours aussi moche, alors je me suis tourné vers Fluid, créée par la même personne qui à fait SIlvermoon.
Contrairement à cette dernière, nul Opengl, seulement des contrôles simples mais plus sexy que les winform. L’avantage? C’est presque aussi bien que Silvermoon, mais ça tourne sur toutes les configurations (et j’espère sur un maximum de téléphones…).

Alors, pour le moment, qu’est ce que ça fait?

  • Téléchargement automatique des nouveaux messages sur le téléphone.
  • Possibilité d’écouter ces messages.

Que nous réserve la suite?

  • Possibilité de rappeler le correspondant.
  • Effacement des messages sur le serveur.
  • D’autres choses sympa comme pourquoi pas envoyer le message par mail, y ajouter une note, etc.

Wanted : Je suis à la recherche de personnes ayant une freebox pour tester l’application sur d’autre téléphones que mon HTC Touch HD :) Je leur enverrai une version d’essai début janvier.

La version que j’ai marche en l’état mais l’authentification est gérée en dur pour le moment et je n’ai pas le temps avant le 2 janvier au plus tôt de m’en occuper donc soyez patient ;)

Aidez à débugger Le suivi Conso Bouygues Telecom

Note : L’application “Suivi Conso Bouygues telecom” n’est pas une application officielle et n’est pas supportée par Bouygues Telecom

Bonjour à tous.
Certains d’entre vous ont rencontré des problèmes avec les applis de suivi conso de Bouygues Telecom.
Pour ceux qui ont des problèmes de données manquantes dans l’application, il y a un moyen de m’aider à les résoudre ;)
Que faire? C’est tout simple, téléchargez ce petit exécutable ICI qui va générer un fichier « outbt.html » dans le répertoire « Temp » à la racine de votre téléphone.
Envoyez le moi :D

Petite info : Pour que cela marche, il faut ne faut pas que vous soyez connecté en wifi ou avec votre cable pc :)