samedi, août 08, 2009

Eclipse 3.6 M1 est disponible

La version Eclipse 3.5 Galileo est sortie au mois de juin dernier, la nouvelle version Eclipse 3.6 est déjà en préparation et elle s'appellera Helios. Une page wiki a été créée (pour l'instant peu d'information).

A cet instant la version Eclipse 3.6 M1 est disponible. Vous trouverez ici la page de téléchargement et ici la page qui liste les nouveautés introduites.

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Le site Pushing Pixels présente une manière élégante pour fermer avec style des fenêtres Swing et SWT.
  • Toujours proposée par le site Pushing Pixels, une présentation du projet Granite project dont le but est de fournir de jolies animations pour SWT.
  • Un excellent tutoriel qui décrit la manière de faire des appels distants de services OSGi. Ceci est obtenu via la spécification OSGi 4.2 et l'implémentation de RFC 419 via l'implémentation Eclipse Communication Framework (ECF).
  • En fouillant un peu sur le site communautaire Eclipse.org, j'ai trouvé une vieille présentation autour d'Eclipse. Vous trouverez des éléments sur les origines d'Eclipse et de nombreuses définitions.
  • Un white paper qui présente en détail le nouveau Eclipse : e4.
Divers
  • JUnit 4.7 ajoute une nouvelle fonctionnalité les Rules.

dimanche, août 02, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Un article qui décrit une solution pour transmettre des informations entre plug-ins. L'auteur s'intéresse à montrer comment réaliser une communication synchrone et asynchrone.
  • Un article pour comprendre "Pourquoi redémarrer Eclipse alors qu'il est basé sur un système de chargement à chaud de nouveaux plug-ins".
  • Une astuce de Benjamin Cabé pour ajouter dans l'aide d'Eclipse le forum de la fondation Eclipse.

dimanche, juillet 19, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Eclipse e4 M5 est disponible (page de téléchargement)
  • Lars vogel propose un excellent billet sur le sujet des Activities. Pour information, les Activities permettent d'afficher ou masquer des éléments graphiques d'une application Eclipse. A noter que les Activities seront discuttées prochainement dans un nouveau support de cours lié à la customisation d'une application Eclipse.
  • Un billet qui présente comment créer un popup de notification semblable à ce qui est utilisé dans les clients de messagerie pour avertir qu'il y a de nouveaux messages.
  • Une page du Wiki du site d'Eclipse qui énumère les outils de tests pour la plateforme Eclipse.
Java
  • Les membres du JUG Poitou-Charentes ont mis à disposition les vidéos des différentes sessions passées, de nombreuses ressources très riches.
  • Le site lescastcodeurs regroupe des podcasts Java animés par des acteurs français.

mardi, juillet 14, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Un article qui décrit comment réussir son internationalisation pour son application Eclipse RCP.
  • Dix astuces pour installer et configurer Eclipse Galileo.
  • Lars Vogel est un contributeur d'articles autour des technologies Eclipse. Il propose de nombreux supports de cours, d'articles et de billets sur son blog. Notamment, une série de billets pour améliorer son quotidien avec Eclipse Galileo.
  • Tom Schindl est un contributeur de la fondation Eclipse. C'est actuellement un des acteurs pour la nouvelle version d'Eclipse : e4. Dans cette présentation, il présente les évolutions majeures d'e4 en faisant un parallèle avec l'actuelle version d'Eclipse. Cela est très bien présenté. Juste pour me rappeler également qu'il faut que je termine au plus vite la partie Workbench.
  • Un bon billet qui présente une introduction à EMF.
Java
  • Un article qui décrit les bonnes pratiques pour développer avec JNI. Cela faisait bien longtemps que je n'avais pas lu d'article sur le sujet.

vendredi, juillet 10, 2009

Introduction à la construction de perspectives avec la plateforme Eclipse

Un support de cours concernant la construction de perspectives est disponible sur le site de Developpez.com. Il fait partie de la série des supports de cours liée au Workbench. D'autres supports de cours devraient arriver prochainement.

Au menu de ce nouveau support de cours :
  • Construction déclarative de perspectives;
  • Ajout de vues (view, fastview, standaloneview, placeholder, createfolder, placeholderfolder)
  • Paramétrage d'une perspective
  • Extension une perspective existante via Perspective Extensions
  • Registre des perspectives
  • Abonnement sur les changements d'une perspective
  • Principales opérations du Workbench liées aux perspectives
Le lien du support de cours et les exemples peuvent être trouvés ici.

mercredi, juillet 08, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • SWTLayeredGraph est une API pour SWT qui facilite la construction de graphe.
  • Les membres d'EclipseSource viennent de soumettre un nouveau projet concernant Eclipse RAP : RAP Incubator. L'idée est de proposer un ensemble de composants supplémentaires pour le projet Eclipse RAP (GCCanvas pour dessiner, de nouveaux thèmes graphiques et des supports pour les composants de visualisation de Google).
Java

vendredi, juin 26, 2009

J'ai besoin d'... installer le client SVN Subversive sous Eclipse Galileo

Dans la série des J'ai besoin de ... je m'intéresse aujourd'hui à l'installation du client SVN (Subversive) sous Eclipse Galileo. A la sortie d'Eclipse Ganymede, un billet sur Developpez.com détaillait la procédure d'installation de Subversive sous cette version. La procédure présentée ici reste assez similaire.

Pré-requis : installer une version Eclipse Galileo (page de téléchargement). Je suis parti d'une distribution pour le développement de plugins Eclipse. Il s'agit d'une version anglaise.
  • Démarrer Eclipse Galileo
  • Ouvrir l'outil de mise à jour. Help -> Install New Software ... Vous êtes dans l'outil de mise à jour (voir capture d'écran ci-dessous)
  • Choisir l'update site officiel Galileo (Galileo - http://download.eclipse.org/releases/galileo) comme indiqué ci-dessous.

  • Dans la zone de recherche, saisir le mot clé SVN, ceci a pour effet de filtrer les éléments proposés par l'update site. Les éléments SVN de la catégorie Collaboration sont disponibles. Sélectionner Subversive SVN Team Provider (Incubation) comme indiqué ci-dessous.

  • Il reste à installer le connecteur SVN fourni par la société Polarion. Ouvrir de nouveau l'outil de mise à jour (Help -> Install New Software ...) puis ajouter (via le bouton add) l'adresse suivante : Polarion - http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/. Ceci a pour effet de lister les éléments qui peuvent être installés.
  • Choisir les éléments suivants : Subversive SVN Connectors et SVNKit 1.2.2 Implementation (Optional) comme indiqué sur la figure ci-dessous.

  • A noter que la version du SVNKit vous permet de choisir la version de SVN. SVNKit 1.2.2 correspond à SVN 1.5.x et SVNKit 1.3.0 correspond à SVN 1.6.x.
  • Une fois les éléments installés, redémarrer votre Eclipse.
  • Après le redémarrage, ouvrir l'outil de préférence de SVN (Window -> Preferences -> Team -> SVN). Dans l'onglet SVN Connector, choisir dans la liste SVN Connector la valeur SVNKit 1.2.2 comme montré sur la figure ci-dessous.


Normalement le client SVN Subversive pour Eclipse doit être correctement installé. Récupérerz un ancien Workspace avec des projets connectés avec SVN et tout fonctionnera comme avant.

jeudi, juin 25, 2009

Support de cours Workbench : découpage en plusieurs fichiers

Depuis quelques temps je vous annonce que je suis en train de préparer un support de cours sur le thème du Workbench. Il y a tellement de choses à découvrir et vous faire partager que je suis dans l'obligation de créer autant de fichiers qu'il y a de thèmes abordés, et cela dans le but de rendre plus accessible ces futurs supports de cours. Par ailleurs, je reçois de nombreux emails me demandant de fournir des supports moins gros et plus souvent.

Par conséquent la date de sortie est avancée et c'est le thème des perspectives qui sortira en premier.

N'est-ce pas une bonne idée pour les vacances qui arrivent que d'apprendre à construire de belles perspectives Eclipse ;-)

JUG Poitou-Charentes : soirée Java EE 6

Le 1 juillet à Niort aura lieu une soirée Java EE 6 organisée par le JUG Poitou-Charentes. Les invités de cette soirée seront Antonio Goncalves et Alexis Moussine-Pouchkine. Antonio nous présentera les nouveautés Java EE 6 et Alexis nous fera une démonstration de GlassFish 3, à noter également la présence de certains membres du JUG Tours.

Une très bonne soirée s'annonce donc. Je prépare déjà ma liste de questions sur les aspects embarqués de Glashfish.

Encore merci à l'équipe du JUG Poitou-Charentes pour toutes ces soirées très riches en veille technologique.

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • SWTChart est une bibliothèque pour la boîte à outils SWT permettant de gérer des graphiques. Un peu à la manière de JFreeChart.
  • Eclipse 3.5 Galileo est sorti (page de téléchargement). Pour avoir un résumé des nouveautés, visitez cette page. Concernant les nouveautés pour les WebTools, visitez cette page. Pour habiller votre système d'exploitation et fêter comme il se doit la sortie de Galileo, des fonds d'écran sont disponibles sur cette page.
  • Sur l'excellent site EclipseSource, Ian Bull présente les 10 meilleurs avancées pour Galileo.


Interaction avec le Java et SWTBrowser

jeudi, juin 11, 2009

Extrait du support de cours Workbench (suite)

Le résultat du sondage a donné gagnante la partie Communication entre vues. Par conséquent vous trouverez sur le lien suivant, cette partie. Au menu de cet extrait de support de cours, vous trouverez différents exemples pour communiquer entre des vues. En détail voici les points abordés :
  • Communication directe entre des ViewParts
  • Communication à partir des écouteurs de vues
  • Service de sélection
  • Patron Adaptateur via IAdapatable
La version fournie ne sera pas la version finale. Il faut s'attendre à des modifications. Par ailleurs, je fournirai les exemples à la sortie du support de cours complet.

J'espère que cette partie vous aidera dans vos développements et n'hésitez pas à poster des commentaires pour améliorer ce document encore en travaux.

jeudi, juin 04, 2009

Extrait du support de cours Workbench

Comme vous le savez (billet Support de cours en préparation) , je suis en train de préparer un nouveau support de cours concernant le Workbench. Cette partie d'Eclipse est très riche et je prends un réel plaisir à découvrir des APIs qui sont faites pour aider le développement d'applications autour d'Eclipse.

Toutefois, comme je suis curieux et assez pointu, je prends mon temps. Conclusion, j'ai dépassé les délais ...

Je vous propose par le biais de ce billet un sondage qui vous permettra de choisir un extrait de ce support de cours que vous souhaitez avoir immédiatement. Ce sondage est valable jusqu'au 10 juin au soir (environ une semaine). Suite au résultat, je mettrai à disposition la partie qui aura obtenu le plus grand nombre de voix.

Les parties proposées sont les suivantes :
  • Perspectives Part 1 (construction d'une extension Perspective, addView, addFastView, addStandaloneView, addPlaceHolder, createFolder, createPlaceholderFolder)
  • Perspectives Part 2 (raccourcis, paramétrages, Perspective Extensions, registre des perspectives, écouteurs)
  • Vues (construction d'une extension View, ViewPart, IViewSite, StickyView, Category, vues multiples, registres des vues, cycle de vie)
  • Communication entre vues (communication directe entre des ViewParts, communication à partir des écouteurs de vues, service de sélection, patron Adaptateur via IAdaptable)
  • Eclipse Forms (FormToolkit, Form et ScrolledForm, agents de placement, ExpandableComposite, Section, PageBook, FormText, MasterDetailsBlock, Multi-page FormEditor)

dimanche, mai 31, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Mise à jour : Angelo Zerr propose de nouveaux billets concernant sa série Conception d'un Editeur Eclipse de Workflow XML (billet 1, billet 2, billet 3, billet 4 et billet 5).
  • Les sources du projet Ribbon avaient été donnés à la fondation Eclipse, mais pas sur que cela soit intégré au projet Nebula à cause de clauses Microsoft.
  • Une discussion en cours pour changer le nom d'Eclipse RCP pour les prochaines versions d'Eclipse.

lundi, mai 25, 2009

J'ai besoin de ... connecter plusieurs Viewers d'une même vue au service de sélection

Dans la série des J'ai besoin de ... je m'intéresse dans ce billet à la manière de connecter plusieurs SelectionProvider d'une même vue au service de sélection. Les SelectionProvider désignent tous les objets de type Viewer (TableViewer, TreeViewer, ListViewer, ...).

La connexion au service du sélection est obtenue par l'intermédiaire du site de la vue (le site peut être vue comme un pont entre la vue et le Workbench). Le code suivant se trouve généralement dans la méthode createPartControl de la ViewPart de la vue :
getSite().setSelectionProvider(tableViewer)
Comme vous pouvez le constater, la méthode qui consiste à "connecter" le composant TableViewer ne permet pas d'ajouter plusieurs composants de type SelectionProvider. Par ailleurs, la plateforme Eclipse n'autorise pas la modification dynamique du SelectionProvider d'une vue au service de sélection. Je me suis trouvé dans le cas où j'avais plusieurs composants TableViewer dans une même vue : cette vue contient deux composants de type TableViewer.

Une solution est proposée dans cet article qui décrit l'utilisation du service de sélection. L'auteur propose notamment d'utiliser la classe SelectionProviderIntermediate pour gérer plusieurs composants de type SelectionProvider dans une même vue. Cet objet est connecté au service de sélection puisqu'il est de type SelectionProvider. En fait, cette classe joue le rôle de classe de délégation. Associé à un viewer, l'objet SelectionProviderIntermediate délègue les modifications de sélection du viewer au service de sélection. L'intérêt est de fixer l'objet de type SelectionProviderIntermediate et de lui associer dynamiquement les composants SelectionProvider (ici des composants de type TableViewer).

Dans la suite, je vous montre comment utiliser cette classe à partir de deux composants TableViewer. Tout ce qui va être présenté se trouve dans la méthode createPartControl.

Ci-dessous, le code utilisé pour ajouter les deux composants TableViewer à la vue :
public void createPartControl(Composite parent) {
viewer1 = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
viewer1.setContentProvider(new ViewContentProvider());
viewer1.setLabelProvider(new ViewLabelProvider());
viewer1.setInput(getViewSite());
viewer2 = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
viewer2.setContentProvider(new ViewContentProvider());
viewer2.setLabelProvider(new ViewLabelProvider());
viewer2.setInput(getViewSite());
Ci-dessous, le code utilisé pour instancier le SelectionProvider qui délègue les modifications de sélection d'un viewer au service de sélection.
 final SelectionProviderIntermediate selectionProviderIntermediate = new SelectionProviderIntermediate();
this.getSite().setSelectionProvider(selectionProviderIntermediate);
Enfin, la notification du changement de la sélection locale de chaque composant TableViewer est utilisée pour modifier le SelectionProvider actif dans l'objet SelectionProviderIntermediate.
 viewer1.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
selectionProviderIntermediate.setSelectionProviderDelegate(viewer1);
}
});
viewer1.addPostSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
selectionProviderIntermediate.setSelectionProviderDelegate(viewer1);
}
});

viewer2.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
selectionProviderIntermediate.setSelectionProviderDelegate(viewer2);
}
});
viewer2.addPostSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
selectionProviderIntermediate.setSelectionProviderDelegate(viewer2);
}
});
}
Vous pouvez télécharger le code source de cet exemple ici. Cet exemple fait parti du cours sur le Workbench Eclipse que je suis en train de préparer.

dimanche, mai 24, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Un billet qui présente comment customiser les fenêtres sous Vista avec des composants SWT.
  • Eclipse 3.5 RC1 est sortie, page de téléchargement.
Java
  • Un App Store pour les applications Java est en train de se préparer (billet de Jonathan Schwartz). En attendant l'annonce officielle lors de Java One 2009.
Divers
  • Du côté Flex, il y aurait du changement pour la prochaine version. L'outil de développement s'appelerait Flash Builder au lien de Flex Builder.

samedi, mai 16, 2009

Bilan soirée RIA / RDA du JUG Poitou Charentes

Comme indiqué sur ce billet, j'étais présent à la soirée RIA / RDA (Rich Internet Application et Rich Desktop Application) organisée pour le JUG Poitou-Charentes. Pour cette session, le JUG s'était déplacé dans la ville de Niort.

Trois présentations d'une durée moyenne de quarante minutes ont été données autour de trois technologies : GWT (Google Web Toolkit), Flex et Eclipse RCP. Les orateurs (Antony Quinault, Jérome Creignou et Alexandre Borgoltz) sont du métier : du chef de projet à l'architecte technique. Ils travaillent principalement pour de grandes mutuelles niortaises. Le contexte est clair, ces présentations sont dispensées par des personnes ayant de forts retours d'expériences et surtout ce sont des technologies employées et déjà utilisées en production. Au niveau de la structure de ces présentations, elles ont pratiquement suivi la même trame : le contexte de l'entreprise, la justification du choix de cette technologie par rapport à d'autres (des comparatifs précis ont été donnés), une présentation rapide de la technologie et un retour d'expérience.

Suite à ces présentations et aux questions que j'ai pu être amené à poser, je constate que, du moins pour GWT et Flex, ces technologies sont très puissantes mais malheureusement je regrette qu'il n'y ait pas assez d'outillage pour le développement de la couche graphique. Où sont ces environnements de construction d'IHMs (ces fameux GUI-Builders) qui facilitent grandement les développements des interfaces? C'est un fait dans le monde Java, l'habitude est de construire les interfaces graphiques de manière programmatique et ce besoin d'outils n'est pas une priorité. Pour nuancer, il y a tout de même des outils comme Netbeans avec le GUI-Builder Matisse, FlexBuilder pour le développement d'IHMs autour de Flex ou WindowBuilder pour le développement d'IHMs autour de GWT ou des technologies de la plateforme Eclipse (SWT, JFace, Eclipse Form, ...). Toutefois, soit ce sont des outils incomplets soit ils sont payants. Mais bon, face à un Microsoft Visual Studio .NET qui décrit les interfaces en XAML permettant ainsi de couvrir toutes sortes de technologies différentes, les outils cités précédemment ne font pas le poids. Certes ces outils ne sont pas indispensables mais si on souhaite que ces technologies dédiées aux interfaces homme-machine puissent s'imposer (facilité d'utilisation et gain de productivité) il faut pouvoir fournir aux développeurs qui le souhaitent ce type d'outils.

L'avenir est peut être à la modélisation de haut niveau des interfaces, comme l'a précisé Antony Quinault lors de la session GWT. Dans ce sens, je peux citer le framework eFace de la société Soyatec. eFace permet aux développeurs de décrire ces interfaces homme-machine en XAML. Le framework s'occupe alors de générer en SWT, Swing ou autre. Un des avantages pourrait être alors d'utiliser le GUI Builder de Visual Studio pour décrire les IHMs. A noter également que des membres de Soyatec sont contributeurs de la nouvelle version d'Eclipse e4 en cours de développement. Je vous laisse donc imaginer la suite ...

Pour revenir à la soirée du JUG Poitou Charentes, la société SERLI sponsor de l'événement et SUN France ont généreusement offert des présents et tout s'est terminé autour du buffet où de nombreux échanges d'expériences ont pu être réalisés.

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse

samedi, mai 09, 2009

Liens pratiques de la semaine

Vous trouverez ici une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • Angelo Zerr propose la suite de sa série de billets sur la conception d'un Editeur Eclipse de Workflow XML (billet 1 et billet 2).
  • Eclipse 3.5 M7 est sortie (page de téléchargement, liste des nouveautés).
Divers
  • Sur le blog de Xebia, un billet intéressant sur Maven qui présente quelques règles de bonne conduite.

JUG Poitou-Charentes : technologies RIA / RDA

Le JUG Poitou-Charentes pour sa deuxième session organise un événement IHM autour des technologies RIA (Rich Internet Applications) et RDA (Rich Development Applications). Les technologies présentées seront GWT, Flex et Eclipse RCP.

L'événement a lieu le jeudi 14 main à Niort (Salle de la place du port). Donc, si vous êtes dans le coin, n'hésitez pas (lien pour les détails et l'inscription).

J'y serai bien entendu et je vous ferai un compte rendu de la soirée.