<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matsiya — Matsiya</title>
	<atom:link href="http://www.matsiya.fr/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matsiya.fr/blog</link>
	<description>Développement Flex - Air - Java - RIA - Mashups Flex</description>
	<lastBuildDate>Thu, 19 Aug 2010 07:36:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Modifier le dataProvider d&#8217;une combobox</title>
		<link>http://www.matsiya.fr/blog/2010/08/19/modifier-le-dataprovider-dune-combobox/</link>
		<comments>http://www.matsiya.fr/blog/2010/08/19/modifier-le-dataprovider-dune-combobox/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 07:36:24 +0000</pubDate>
		<dc:creator>Alexis</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=373</guid>
		<description><![CDATA[Ce matin, je suis tombé sur un bug assez énervant qui faisait qu&#8217;après une réassignation du dataProvider d&#8217;une comboBox, celle ci ne se mettait pas à jour visuellement de suite. Par exemple, si ma comboBox contient 3 éléments, puis que je lui donne un nouveau tableau avec 5 éléments, la liste déroulante prend la place [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2009/01/15/combobox-flex/' rel='bookmark' title='Permanent Link: Combobox flex'>Combobox flex</a></li>
<li><a href='http://www.matsiya.fr/blog/2009/02/01/combobox-flex-rowcount/' rel='bookmark' title='Permanent Link: ComboBox flex : rowCount'>ComboBox flex : rowCount</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/08/05/bug-combobox-flex/' rel='bookmark' title='Permanent Link: Bug ComboBox Flex'>Bug ComboBox Flex</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-373'><p>Ce matin, je suis tombé sur un bug assez énervant qui faisait qu&#8217;après une réassignation du dataProvider d&#8217;une comboBox, celle ci ne se mettait pas à jour visuellement de suite. Par exemple, si ma comboBox contient 3 éléments, puis que je lui donne un nouveau tableau avec 5 éléments, la liste déroulante prend la place de 5 lignes, mais il n&#8217;y a que 3 éléments affichés. Pour corriger ce soucis (qui semble avoir été corrigé dans Flex 4, mais pas dans la version 3.5 que j&#8217;utilise sur mon projet courant), il faut réassigner aussi le dataProvider de la liste déroulante.</p>
<p>Voici le bout de code qui fait l&#8217;affaire :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> newArray : <span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">4</span> <span style="color: #66cc66;">&#93;</span>; <span style="color: #808080; font-style: italic;">// Nouveau tableau à assigner</span>
combo.<span style="color: #006600;">dataProvider</span> = newArray; <span style="color: #808080; font-style: italic;">// Assignation du dataProvider de la comboBox</span>
combo.<span style="color: #006600;">dropdown</span>.<span style="color: #006600;">dataProvider</span> = newArray; <span style="color: #808080; font-style: italic;">// Assignation de la liste déroulante</span></pre></td></tr></table></div>

</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2009/01/15/combobox-flex/' rel='bookmark' title='Permanent Link: Combobox flex'>Combobox flex</a></li>
<li><a href='http://www.matsiya.fr/blog/2009/02/01/combobox-flex-rowcount/' rel='bookmark' title='Permanent Link: ComboBox flex : rowCount'>ComboBox flex : rowCount</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/08/05/bug-combobox-flex/' rel='bookmark' title='Permanent Link: Bug ComboBox Flex'>Bug ComboBox Flex</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/08/19/modifier-le-dataprovider-dune-combobox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Génération de labyrinthes</title>
		<link>http://www.matsiya.fr/blog/2010/08/17/generation-de-labyrinthes/</link>
		<comments>http://www.matsiya.fr/blog/2010/08/17/generation-de-labyrinthes/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 06:40:45 +0000</pubDate>
		<dc:creator>Alexis</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=370</guid>
		<description><![CDATA[Vous avez toujours rêvé de savoir comment on pouvait générer un labyrinthe à l&#8217;aide d&#8217;un programme informatique ? Et bien, voici un article fort intéressant qui vous explique en détail cette création, allant de la théorie à la pratique. Tout un chapitre décrit la partie algorithmie, puis un exemple en flash est proposé avec le [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2007/04/26/flex-bientot-open-source/' rel='bookmark' title='Permanent Link: Flex bientôt open source !!!'>Flex bientôt open source !!!</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/11/07/filereferencebrowse-et-flash-player-10/' rel='bookmark' title='Permanent Link: FileReference.browse et Flash player 10'>FileReference.browse et Flash player 10</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/03/17/generation-des-gettersetter/' rel='bookmark' title='Permanent Link: Génération des getter/setter'>Génération des getter/setter</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-370'><p>Vous avez toujours rêvé de savoir comment on pouvait générer un labyrinthe à l&#8217;aide d&#8217;un programme informatique ? Et bien, voici un article fort intéressant qui vous explique en détail cette création, allant de la théorie à la pratique. Tout un chapitre décrit la partie algorithmie, puis un exemple en flash est proposé avec le code source pour s&#8217;en inspirer, le tout sous licence GNU GPL v3, donc il ne faut pas se priver.</p>
<p><a title="Algorithmique pratique et optimisation de code : La génération de labyrinthes " href="http://ilay.org/yann/articles/maze/" target="_blank">Algorithmique pratique et optimisation de code : La génération de labyrinthes</a>.</p>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2007/04/26/flex-bientot-open-source/' rel='bookmark' title='Permanent Link: Flex bientôt open source !!!'>Flex bientôt open source !!!</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/11/07/filereferencebrowse-et-flash-player-10/' rel='bookmark' title='Permanent Link: FileReference.browse et Flash player 10'>FileReference.browse et Flash player 10</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/03/17/generation-des-gettersetter/' rel='bookmark' title='Permanent Link: Génération des getter/setter'>Génération des getter/setter</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/08/17/generation-de-labyrinthes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Air 2.0 et Flash Player 10.1 Final !!</title>
		<link>http://www.matsiya.fr/blog/2010/06/11/air-2-0-et-flash-player-10-1-final/</link>
		<comments>http://www.matsiya.fr/blog/2010/06/11/air-2-0-et-flash-player-10-1-final/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 11:51:32 +0000</pubDate>
		<dc:creator>Alexis</dc:creator>
				<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=367</guid>
		<description><![CDATA[Adobe vient de publier les versions finales de Air 2 et du Flash Player 10.1.
Les nouveautés/améliorations de AIR 2 sont assez nombreuses :

Localisation de l&#8217;installeur (uniquement en anglais sur les versions précédentes)
Possibilité de simuler la taille réduite d&#8217;un périphérique mobile avec le débugger ADL
Nouvelle version de Webkit avec le support de HTML5 et CSS3
Gestion des [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2007/08/22/flash-player-9-moviestar-video-h264/' rel='bookmark' title='Permanent Link: Flash Player 9 Moviestar &#8211; vidéo H.264….'>Flash Player 9 Moviestar &#8211; vidéo H.264….</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/05/15/flash-player-10-beta/' rel='bookmark' title='Permanent Link: Flash player 10 beta'>Flash player 10 beta</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/10/15/flash-player-10go/' rel='bookmark' title='Permanent Link: Flash Player 10&#8230;&#8230;GO !!'>Flash Player 10&#8230;&#8230;GO !!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-367'><p>Adobe vient de publier les versions finales de Air 2 et du Flash Player 10.1.</p>
<p>Les nouveautés/améliorations de AIR 2 sont assez nombreuses :</p>
<ul>
<li>Localisation de l&#8217;installeur (uniquement en anglais sur les versions précédentes)</li>
<li>Possibilité de simuler la taille réduite d&#8217;un périphérique mobile avec le débugger ADL</li>
<li>Nouvelle version de Webkit avec le support de HTML5 et CSS3</li>
<li>Gestion des surfaces tactiles et des gestures</li>
<li>Amélioration du drag&amp;drop, des sockets et de la gestion des imprimantes</li>
<li>Résolution des DNS</li>
<li>Accès au microphone</li>
<li>Ouverture de fichiers directement dans l&#8217;application par défaut du système</li>
<li>Détection de branchement d&#8217;un périphérique externe (clé usb, disque dur externe, appareil photo, &#8230;)</li>
<li>Accès aux processus natifs du système (lancement d&#8217;un programme externe : mplayer, vlc ou word par exemple)</li>
<li>Création d&#8217;applications en .exe, .dmg ou .deb</li>
<li>Possibilité de créer un serveur (socket) et gestion du peer-to-peer</li>
<li>Support de TLS/SSL pour le socket</li>
<li>Support de l&#8217;UDP pour le réseau</li>
<li>Récupération globale des erreurs de l&#8217;application</li>
<li>Support de l&#8217;IPv6</li>
</ul>
<p>Pour plus d&#8217;informations, consulter la release note : <a title="Release note de AIR 2" href="http://www.adobe.com/support/documentation/en/air/2/releasenotes_developers.html" target="_blank">http://www.adobe.com/support/documentation/en/air/2/releasenotes_developers.html</a></p>
<p>Le player Flash n&#8217;est pas en reste, car la liste des ajouts/améliorations est assez importante aussi :</p>
<ul>
<li>Récupération globale des erreurs de l&#8217;application</li>
<li>Support du mode &laquo;&nbsp;Navigation privée&nbsp;&raquo; des navigateurs récents</li>
<li>Gestion du cas &laquo;&nbsp;pas assez de mémoire&nbsp;&raquo; pour éviter le crash du navigateur</li>
<li>Protection du contenu (utilise Adobe Flash Access 2)</li>
<li>Réseau &laquo;&nbsp;Peer-assisted&nbsp;&raquo;</li>
<li>Gestion du streaming dynamique (adaptation automatique du débit de la vidéo dans le cas où la connexion ne suit pas)</li>
<li>Uniquement avec Flash Media Server 3.5.3: gestion de la reconnexion automatique sur le serveur en cas de perte de connexion sans perte de contenu pour l&#8217;utilisateur, Amélioration de la recherche dans un média permettant la création de ralentis, de replay</li>
<li>Gestion de la synchronisation des vidéos en live avec l&#8217;heure courante</li>
<li>Accès au microphone</li>
<li>Frame rate dynamique : ajuste automatiquement le rendu des applications pour économiser de la ressource processeur lorsque l&#8217;application n&#8217;est pas l&#8217;application qui a le focus.</li>
</ul>
<p>Pour plus d&#8217;informations, se reporter à la release note : <a title="Release note du flash player 10.1" href="http://www.adobe.com/products/flashplayer/features/all_features/" target="_blank">http://www.adobe.com/products/flashplayer/features/all_features/</a></p>
<p>Nous reparlerons très certainement de ces améliorations que nous allons utiliser dans nos prochains développements.</p>
<p>Le téléchargement de AIR 2 se passe ici : <a title="http://get.adobe.com/fr/air/" href="http://get.adobe.com/fr/air/" target="_blank">http://get.adobe.com/fr/air/</a> et pour le flash player 10.1, c&#8217;est par ici : <a title="http://get.adobe.com/fr/flashplayer/" href="http://get.adobe.com/fr/flashplayer/" target="_blank">http://get.adobe.com/fr/flashplayer/</a></p>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2007/08/22/flash-player-9-moviestar-video-h264/' rel='bookmark' title='Permanent Link: Flash Player 9 Moviestar &#8211; vidéo H.264….'>Flash Player 9 Moviestar &#8211; vidéo H.264….</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/05/15/flash-player-10-beta/' rel='bookmark' title='Permanent Link: Flash player 10 beta'>Flash player 10 beta</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/10/15/flash-player-10go/' rel='bookmark' title='Permanent Link: Flash Player 10&#8230;&#8230;GO !!'>Flash Player 10&#8230;&#8230;GO !!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/06/11/air-2-0-et-flash-player-10-1-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les nouveaux composants et conteneurs Flex 4</title>
		<link>http://www.matsiya.fr/blog/2010/04/30/les-nouveaux-composants-et-conteneurs-flex-4/</link>
		<comments>http://www.matsiya.fr/blog/2010/04/30/les-nouveaux-composants-et-conteneurs-flex-4/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 14:31:56 +0000</pubDate>
		<dc:creator>marie</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[développement flex]]></category>
		<category><![CDATA[flex 3]]></category>
		<category><![CDATA[flex 4]]></category>
		<category><![CDATA[ria]]></category>
<category>ActionScript</category><category>développement flex</category><category>flex 3</category><category>flex 4</category>
		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=359</guid>
		<description><![CDATA[Le SDK Flex 4 a introduit un certain nombre de nouvelles classes et de nouveaux composants qui utilisent la nouvelle architecture, permettant de faire de nouveaux skins et autres personnalisations, beaucoup plus simplement. Voici un tableau montrant les composants Flex 3 MX et leurs homologues Flex 4 Spark:



Composant Flex 3 MX
Composant Flex 4   [...]


Aucun d'article en relation]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-359'><p>Le SDK Flex 4 a introduit un certain nombre de nouvelles classes et de nouveaux composants qui utilisent la nouvelle architecture, permettant de faire de nouveaux skins et autres personnalisations, beaucoup plus simplement. Voici un tableau montrant les composants Flex 3 MX et leurs homologues Flex 4 Spark:<span id="more-359"></span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="text-align: center;">
<td width="230" valign="top"><strong><span style="color: #000000;">Composant Flex 3 MX</span></strong></td>
<td width="230" valign="top"><strong><span style="color: #000000;">Composant Flex 4   Spark</span></strong></td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.Button</td>
<td width="230" valign="top">spark.components.Button</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.ButtonBar</td>
<td width="230" valign="top">spark.components.ButtonBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.CheckBox</td>
<td width="230" valign="top">spark.components.CheckBox</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.ComboBox   non éditable</td>
<td width="230" valign="top">spark.components.DropDownList</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.ComboBox   éditable</td>
<td width="230" valign="top">spark.components.   ComboBox</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.HorizontalList</td>
<td width="230" valign="top">spark.components.List   (avec un HorizontalLayout)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.HRule</td>
<td width="230" valign="top">spark.primitives.Line</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.HScrollBar</td>
<td width="230" valign="top">spark.components.HScrollBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.HSlider</td>
<td width="230" valign="top">spark.components.HSlider</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.Image</td>
<td width="230" valign="top">spark.primitives.BitmapImage   (sans support pour images externes)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.LinkBar</td>
<td width="230" valign="top">spark.components.ButtonBar   (avec un skin personalisé)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.LinkButton</td>
<td width="230" valign="top">spark.components.Button (avec un skin personalisé)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.List</td>
<td width="230" valign="top">spark.components.List</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.NumericStepper</td>
<td width="230" valign="top">spark.components.NumericStepper</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.RadioButton</td>
<td width="230" valign="top">spark.components.RadioButton</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.RadioButtonGroup</td>
<td width="230" valign="top">spark.components.RadioButtonGroup</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.TextArea</td>
<td width="230" valign="top">spark.components.TextArea</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.TabBar</td>
<td width="230" valign="top">spark.components.TabBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.TextInput</td>
<td width="230" valign="top">spark.components.TextInput</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.Label</td>
<td width="230" valign="top">spark.components.Label</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.TileList</td>
<td width="230" valign="top">spark.components.List   (avec un TileLayout)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.ToggleButtonBar</td>
<td width="230" valign="top">spark.components.ButtonBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.VideoDisplay</td>
<td width="230" valign="top">spark.components.VideoPlayer</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.VRule</td>
<td width="230" valign="top">spark.primitives.Line</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.VScrollBar</td>
<td width="230" valign="top">spark.components.VScrollBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.VSlider</td>
<td width="230" valign="top">spark.components.VSlider</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.core.Application</td>
<td width="230" valign="top">spark.components.Application</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.core.Window</td>
<td width="230" valign="top">spark.components.Window</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.core.WindowedApplication</td>
<td width="230" valign="top">spark.components.WindowedApplication</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.ApplicationControlBar</td>
<td width="230" valign="top">spark.components.Application   (avec un controlBarContent)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.Canvas</td>
<td width="230" valign="top">spark.components.Group</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.ControlBar</td>
<td width="230" valign="top">spark.components.Panel   (avec une propriété controlBarContent)</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.HBox</td>
<td width="230" valign="top">spark.components.HGroup</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.Panel</td>
<td width="230" valign="top">spark.components.Panel</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.Tile</td>
<td width="230" valign="top">spark.components.TileGroup</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.VBox</td>
<td width="230" valign="top">spark.components.VGroup</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.Box</td>
<td width="230" valign="top">spark.components.Group</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.ToggleButtonBar</td>
<td width="230" valign="top">spark.components.ButtonBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.HScrollBar</td>
<td width="230" valign="top">spark.components.HScrollBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.VScrollBar</td>
<td width="230" valign="top">spark.components.VScrollBar</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.HSlider</td>
<td width="230" valign="top">spark.components.HSlider</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.controls.VSlider</td>
<td width="230" valign="top">spark.components.VSlider</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.containers.TitleWindow</td>
<td width="230" valign="top">spark.components.TitleWindow</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.AddChildAction</td>
<td width="230" valign="top">spark.effects.AddAction</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Blur</td>
<td width="230" valign="top">spark.effects.AnimateFilter</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Glow</td>
<td width="230" valign="top">spark.effects.AnimateFilter</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Fade</td>
<td width="230" valign="top">spark.effects.Fade</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.collections.GroupingCollection</td>
<td width="230" valign="top">Obsolète remplacé par: mx.collections.GroupingCollection2</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Move</td>
<td width="230" valign="top">spark.effects.Move</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.RemoveChildAction</td>
<td width="230" valign="top">spark.effects.RemoveAction</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Resize</td>
<td width="230" valign="top">spark.effects.Resize</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Rotate</td>
<td width="230" valign="top">spark.effects.Rotate</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.Zoom</td>
<td width="230" valign="top">spark.effects.Scale</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.SetPropertyAction</td>
<td width="230" valign="top">spark.effects.SetAction</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.graphics.Stroke</td>
<td width="230" valign="top">Obsolète remplacé par : mx.graphics.solidColorStroke/ mx.graphics.RadialGradientStroke/ mx.graphics.LinearGradientStroke</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.collections.SummaryField</td>
<td width="230" valign="top">Obsolète remplacé par :   mx.collections.SummaryField2</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.WipeDown</td>
<td width="230" valign="top">spark.effects.Wipe</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.WipeLeft</td>
<td width="230" valign="top">spark.effects.Wipe</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.WipeRight</td>
<td width="230" valign="top">spark.effects.Wipe</td>
</tr>
<tr style="text-align: center;">
<td width="230" valign="top">mx.effects.WipeUP</td>
<td width="230" valign="top">spark.effects.Wipe</td>
</tr>
</tbody>
</table>
</DIV>

<p>Aucun d'article en relation</p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/04/30/les-nouveaux-composants-et-conteneurs-flex-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Génération d&#8217;objets et interfaces Flex avec Freemarker</title>
		<link>http://www.matsiya.fr/blog/2010/04/23/generation-dobjets-et-interfaces-flex-avec-freemarker/</link>
		<comments>http://www.matsiya.fr/blog/2010/04/23/generation-dobjets-et-interfaces-flex-avec-freemarker/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 16:15:14 +0000</pubDate>
		<dc:creator>arnaud</dc:creator>
				<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=348</guid>
		<description><![CDATA[Freemarker est un outil formidablement puissant qui permet de générer des fichiers à l’aide de templates (.ftl). Dans le cas d’une application s’appuyant sur des services en J2EE il devient alors aisé avec un peu de connaissance en intropsection JAVA de générer les classes Flex (interfaces CRUD et objets métier).
Comment procéder ?
Je préconise l’utilisation d’une [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2008/04/27/soap-railsflex-et-objets-types/' rel='bookmark' title='Permanent Link: SOAP Rails+Flex et objets typés'>SOAP Rails+Flex et objets typés</a></li>
<li><a href='http://www.matsiya.fr/blog/2009/03/21/exposer-ses-services-avec-blazeds-et-axis2-grace-a-spring-2/' rel='bookmark' title='Permanent Link: Exposer ses services avec BlazeDS et Axis2 grâce à Spring'>Exposer ses services avec BlazeDS et Axis2 grâce à Spring</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-348'><p>Freemarker est un outil formidablement puissant qui permet de générer des fichiers à l’aide de templates (.ftl). Dans le cas d’une application s’appuyant sur des services en J2EE il devient alors aisé avec un peu de connaissance en intropsection JAVA de générer les classes Flex (interfaces CRUD et objets métier).</p>
<p>Comment procéder ?</p>
<p><span id="more-348"></span>Je préconise l’utilisation d’une target Ant qui va parcourir un package (celui où se trouve les POJOs JAVA), récupérer les getter/setter de chaque class et générer les objets Flex. Les templates Flex peuvent être réalisées directement sous Flash Builder.</p>
<p>Quelques lignes de code utiles :</p>
<p>La class de génération de vo :</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> FlexGenerator <span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> Configuration cfg;
&nbsp;
    <span style="color: #000000; font-weight: bold;">static</span>
    <span style="color: #66cc66;">&#123;</span>
		cfg = <span style="color: #000000; font-weight: bold;">new</span> Configuration<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #000000; font-weight: bold;">try</span>
		<span style="color: #66cc66;">&#123;</span>
		    cfg.<span style="color: #006600;">setClassForTemplateLoading</span><span style="color: #66cc66;">&#40;</span>PdfGenerator.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #ff0000;">&quot;/templates/flex&quot;</span><span style="color: #66cc66;">&#41;</span>;
		    cfg.<span style="color: #006600;">setEncoding</span><span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Locale</span>.<span style="color: #006600;">FRENCH</span>, <span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Exception</span> e<span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
		    e.<span style="color: #006600;">printStackTrace</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		cfg.<span style="color: #006600;">setObjectWrapper</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DefaultObjectWrapper<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> FlexGenerator<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">// ...</span>
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> process<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">OutputStream</span> os, <span style="color: #aaaadd; font-weight: bold;">Map</span> params, <span style="color: #aaaadd; font-weight: bold;">String</span> path<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">try</span>
		<span style="color: #66cc66;">&#123;</span>
			Template temp = cfg.<span style="color: #006600;">getTemplate</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;vo.ftl&quot;</span><span style="color: #66cc66;">&#41;</span>;
	    		temp.<span style="color: #006600;">process</span><span style="color: #66cc66;">&#40;</span>params, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">FileWriter</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">File</span><span style="color: #66cc66;">&#40;</span>path<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Exception</span> e<span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
		    e.<span style="color: #006600;">printStackTrace</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>On peut récupérer l’ensemble des class d’un package grâce au class loader, on trouve des snippets sur le net.</p>
<p>Exemple de code pour récupérer les getters d’un POJO  :</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #aaaadd; font-weight: bold;">Method</span> getGetters<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Object</span> object<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">try</span>
		<span style="color: #66cc66;">&#123;</span>
		    <span style="color: #aaaadd; font-weight: bold;">Method</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> methods = object.<span style="color: #006600;">getClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">getMethods</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		    <span style="color: #aaaadd; font-weight: bold;">Object</span> result = object.<span style="color: #006600;">getClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">newInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		    <span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Method</span> method : methods<span style="color: #66cc66;">&#41;</span>
		    <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>isGetter<span style="color: #66cc66;">&#40;</span>method<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">//on ajoute cette variable à notre template</span>
				params.<span style="color: #006600;">put</span><span style="color: #66cc66;">&#40;</span>unCapitalize<span style="color: #66cc66;">&#40;</span>method.<span style="color: #006600;">getName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">substring</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>,
					method.<span style="color: #006600;">getReturnType</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		    <span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Exception</span> e<span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
		    e.<span style="color: #006600;">printStackTrace</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">null</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">boolean</span> isGetter<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Method</span> method<span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #66cc66;">&#40;</span>method.<span style="color: #006600;">getName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">startsWith</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;get&quot;</span><span style="color: #66cc66;">&#41;</span>
		&amp;amp;&amp;amp; !<span style="color: #66cc66;">&#40;</span>method.<span style="color: #006600;">getParameterTypes</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">length</span> != <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
		&amp;amp;&amp;amp; !<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">void</span>.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span>method.<span style="color: #006600;">getReturnType</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #aaaadd; font-weight: bold;">String</span> unCapitalize<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">String</span> s<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
	    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>s != <span style="color: #000000; font-weight: bold;">null</span> &amp;amp;&amp;amp; s.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> != <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
	        <span style="color: #000000; font-weight: bold;">return</span> s.<span style="color: #006600;">substring</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">toLowerCase</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + s.<span style="color: #006600;">substring</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
	    <span style="color: #b1b100;">else</span>
	        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>On trouve sur internet beaucoup d’exemples pour le langage de templetage de freemarker. S’inspirer des templates utilisées par hbm2java peut être un bon point de départ pour ceux qui ne connaissent pas. L’exemple n’est volontairement pas complet mais grâce à ces quelques bouts de code on peut monter son propre générateur de code en moins d’une heure.</p>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2008/04/27/soap-railsflex-et-objets-types/' rel='bookmark' title='Permanent Link: SOAP Rails+Flex et objets typés'>SOAP Rails+Flex et objets typés</a></li>
<li><a href='http://www.matsiya.fr/blog/2009/03/21/exposer-ses-services-avec-blazeds-et-axis2-grace-a-spring-2/' rel='bookmark' title='Permanent Link: Exposer ses services avec BlazeDS et Axis2 grâce à Spring'>Exposer ses services avec BlazeDS et Axis2 grâce à Spring</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/04/23/generation-dobjets-et-interfaces-flex-avec-freemarker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Astuce Flex</title>
		<link>http://www.matsiya.fr/blog/2010/04/19/astuce-flex/</link>
		<comments>http://www.matsiya.fr/blog/2010/04/19/astuce-flex/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 06:41:11 +0000</pubDate>
		<dc:creator>Alexis</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=340</guid>
		<description><![CDATA[Cette astuce n&#8217;est pas récente, mais j&#8217;en ai eu besoin très récemment lors d&#8217;un projet, donc je la publie chez nous aussi.
Lorsque vous avez un DataGrid éditable, et que vous souhaitez réaliser une action dès lors que vous avez fini l&#8217;édition (soit en ayant appuyé sur la touche entrée, soit avec la tabulation, ou bien [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2008/03/20/astuce-vbox-repeater/' rel='bookmark' title='Permanent Link: Astuce VBox &#8211; Repeater'>Astuce VBox &#8211; Repeater</a></li>
<li><a href='http://www.matsiya.fr/blog/2007/11/05/matsiya-coldfusion-flex-airretour-sur-la-rencontre/' rel='bookmark' title='Permanent Link: Matsiya, Coldfusion, Flex, Air&#8230;retour sur la rencontre'>Matsiya, Coldfusion, Flex, Air&#8230;retour sur la rencontre</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/02/20/empecher-la-mise-a-jour-dun-arraycollection/' rel='bookmark' title='Permanent Link: Empécher la mise à jour d&#8217;un ArrayCollection'>Empécher la mise à jour d&#8217;un ArrayCollection</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-340'><p>Cette astuce n&#8217;est pas récente, mais j&#8217;en ai eu besoin très récemment lors d&#8217;un projet, donc je la publie chez nous aussi.</p>
<p>Lorsque vous avez un DataGrid éditable, et que vous souhaitez réaliser une action dès lors que vous avez fini l&#8217;édition (soit en ayant appuyé sur la touche entrée, soit avec la tabulation, ou bien encore après avoir cliqué en dehors du DataGrid), il faut utiliser l&#8217;évènement <a title="Classe DataGridEvent" href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/events/DataGridEvent.html#ITEM_EDIT_END" target="_blank">DataGridEvent.ITEM_EDIT_END</a>. Mais si vous souhaitez faire des actions sur le DataProvider de ce DataGrid (sauvegarde des éléments, mise à jour d&#8217;autres champs, &#8230;), et bien vous allez vous rendre compte qu&#8217;il n&#8217;a pas encore été mis à jour.</p>
<p><span id="more-340"></span>En fait, tout ceci est dû au fait que la mise à jour du DataProvider utilise ce fameux évènement, donc logiquement en même temps que votre fonction d&#8217;écoute de l&#8217;évènement. C&#8217;est pas tout a fait vrai, car quand on regarde le constructeur de la classe <a title="Classe mx.controls.DataGrid" href="http://livedocs.adobe.com/flex/3/langref/mx/controls/DataGrid.html" target="_blank">mx.controls.DataGrid</a>, on voit l&#8217;élément suivant :</p>
<blockquote><p>addEventListener(DataGridEvent.ITEM_EDIT_END, itemEditorItemEditEndHandler, false, EventPriority.DEFAULT_HANDLER);</p></blockquote>
<p>Et c&#8217;est tout particulièrement le dernier paramètre qui nous intéresse ici. Il permet de définir la priorité de l&#8217;évènement, c&#8217;est à dire dans quel ordre sont appelées les fonctions définies pour cet évènement. Dans le cas de la déclaration du DataGrid, l&#8217;évènement est écouté avec la priorité <a title="Classe EventPriority" href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/EventPriority.html#DEFAULT_HANDLER" target="_blank">EventPriority.DEFAULT_HANDLER</a> (correspond à -50), alors que si l&#8217;on ne met rien pour ce paramètre, la valeur 0 est appliquée. Ceci explique pourquoi notre fonction est appelée avant la mise à jour du DataProvider.</p>
<p><strong>La solution au problème ?</strong> Tout simplement, mettre une valeur plus petite que -50. Cela oblige par contre à définir le listener dans le creationComplete du DataGrid, et non dans son attribut mxml.</p>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2008/03/20/astuce-vbox-repeater/' rel='bookmark' title='Permanent Link: Astuce VBox &#8211; Repeater'>Astuce VBox &#8211; Repeater</a></li>
<li><a href='http://www.matsiya.fr/blog/2007/11/05/matsiya-coldfusion-flex-airretour-sur-la-rencontre/' rel='bookmark' title='Permanent Link: Matsiya, Coldfusion, Flex, Air&#8230;retour sur la rencontre'>Matsiya, Coldfusion, Flex, Air&#8230;retour sur la rencontre</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/02/20/empecher-la-mise-a-jour-dun-arraycollection/' rel='bookmark' title='Permanent Link: Empécher la mise à jour d&#8217;un ArrayCollection'>Empécher la mise à jour d&#8217;un ArrayCollection</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/04/19/astuce-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache CXF et Hibernate hbm2java</title>
		<link>http://www.matsiya.fr/blog/2010/04/06/330/</link>
		<comments>http://www.matsiya.fr/blog/2010/04/06/330/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 09:51:07 +0000</pubDate>
		<dc:creator>arnaud</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=330</guid>
		<description><![CDATA[L’utilisation de Apache CXF/JAX-RS pour la création de services REST passe par l’ajout d’annotations dans vos POJOs ce qui peut être contraignant quand ceux-ci sont générés depuis vos fichiers hbm via hbm2java. Heureusement il existe une solution à ce problème via l’utilisation de freemarker. Freemarker est une librairie de génération de template utilisée par hbm2java [...]


Aucun d'article en relation]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-330'><p>L’utilisation de Apache CXF/JAX-RS pour la création de services REST passe par l’ajout d’annotations dans vos POJOs ce qui peut être contraignant quand ceux-ci sont générés depuis vos fichiers hbm via hbm2java. Heureusement il existe une solution à ce problème via l’utilisation de freemarker. Freemarker est une librairie de génération de template utilisée par hbm2java pour transformer les xml de mapping (.hbm) en POJOs java. Prenons par exemple l’annotation @XmlRootElement qui doit précéder tous les pojos que jax-rs va transformer en XML :</p>
<p>Dans votre target ANT hbm2java ajouter templatepath=“resources/META-INF/pojo_templates/“ avec pojo_templates le répertoire qui contiendra les templates freemarker modifiées.</p>
<p><span style="text-decoration: underline;">Dans  resources/META-INF/pojo_templates/ créer un fichier ‘PojoTypeDeclaration.ftl’ avec le contenu suivant :</span></p>
<p><span style="color: #3366ff;"><code>&lt;#if pojo.hasMetaAttribute("xmlrootelement")&gt;</code></span></p>
<p><span style="color: #3366ff;"><code>import javax.xml.bind.annotation.XmlRootElement;</code></span></p>
<p><span style="color: #3366ff;"><code>&lt;/#if&gt;</code></span></p>
<p><code>/**</code></p>
<p><code>${pojo.getClassJavaDoc(pojo.getDeclarationName() + " generated by hbm2java", 0)}</code></p>
<p><code>*/</code></p>
<p><code>&lt;#include "Ejb3TypeDeclaration.ftl"/&gt;</code></p>
<p><code><span style="color: #3366ff;">&lt;#if pojo.hasMetaAttribute("xmlrootelement")&gt;</span></code></p>
<p><code><span style="color: #3366ff;">@XmlRootElement(name="${pojo.getMetaAsString("xmlrootelement")}")</span></p>
<p><span style="color: #3366ff;">&lt;/#if&gt;</span></p>
<p></code></p>
<p><code>${pojo.getClassModifiers()} ${pojo.getDeclarationType()} ${pojo.getDeclarationName()} ${pojo.getExtendsDeclaration()} ${pojo.getImplementsDeclaration()}<br />
</code></p>
<p>Il suffit alors d’ajouter dans votre fichier .hbm un meta attribute indiquant le nom du POJO. <span style="text-decoration: underline;">Exemple :</span><br />
<code><br />
&lt;hibernate-mapping package=“com.pojos”&gt;</code></p>
<p><code>&lt;class name=“MaClass” table=“ma”_table&gt;</code></p>
<p><code><span style="color: #3366ff;">&lt;meta attribute="xmlrootelement"&gt;MaClass&lt;/meta&gt;</span></code></p>
<p><code> </code></p>
<p><code>...<br />
</code></p>
<p><span style="text-decoration: underline;">Le POJO généré sera alors de la forme :</span></p>
<p><code><span style="color: #3366ff;"> import javax.xml.bind.annotation.XmlRootElement;</span></code></p>
<p><code>/**</code></p>
<p><code>* MaClass generated by hbm2java</code></p>
<p><code>*/</code></p>
<p><code><span style="color: #3366ff;">@XmlRootElement(name=“MaClass”)</span></code></p>
<p><code>public class MaClass  implements java.io.Serializable { ... }</p>
<p></code><br />
On peut biensur appliquer ce principe à d’autres annotations (XmlSeeAlso &#8230;) et à d’autres frameworks.</p>
</DIV>

<p>Aucun d'article en relation</p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/04/06/330/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouveautés Adobe du matin</title>
		<link>http://www.matsiya.fr/blog/2010/03/22/nouveautes-adobe-du-matin/</link>
		<comments>http://www.matsiya.fr/blog/2010/03/22/nouveautes-adobe-du-matin/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 07:55:03 +0000</pubDate>
		<dc:creator>Alexis</dc:creator>
				<category><![CDATA[Adobe]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=326</guid>
		<description><![CDATA[On ne l&#8217;attendait pas avant la semaine prochaine, mais ça y est, il est là le beau Flash Builder 4 en version finale. Nous allons récupérer cette nouvelle version dans les heures qui viennent afin de voir si les points qui restaient buggés ont été corrigés (imports qui disparaissent, auto-complétion qui parfois ne fonctionne plus, [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2007/05/08/adobe-cs3-version-devaluation/' rel='bookmark' title='Permanent Link: Adobe CS3 &#8211; Version d&#8217;évaluation'>Adobe CS3 &#8211; Version d&#8217;évaluation</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/05/09/astuces-adobe-flex-adobe-coldfusion-papervision-3d/' rel='bookmark' title='Permanent Link: Astuces Adobe Flex, Adobe Coldfusion, Papervision 3D'>Astuces Adobe Flex, Adobe Coldfusion, Papervision 3D</a></li>
<li><a href='http://www.matsiya.fr/blog/2007/09/30/adobe-developper-connection/' rel='bookmark' title='Permanent Link: Adobe Developper Connection'>Adobe Developper Connection</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-326'><p>On ne l&#8217;attendait pas avant la semaine prochaine, mais ça y est, il est là le beau Flash Builder 4 en version finale. Nous allons récupérer cette nouvelle version dans les heures qui viennent afin de voir si les points qui restaient buggés ont été corrigés (imports qui disparaissent, auto-complétion qui parfois ne fonctionne plus, &#8230;).</p>
<p>Disponible à un tarif de près de 300 euros TTC en version de mise à jour et de près de 600 euros TTC en version complète, elle vous attend sur le <a title="Store adobe france" href="https://store5.adobe.com/cfusion/store/index.cfm?&amp;store=OLS-FR&amp;view=ols_prod&amp;category=/Applications/FlashBuilderPremium&amp;distributionMethod=FULL&amp;nr=0#" target="_blank">store d&#8217;Adobe</a>.</p>
<p>Avec cette bonne nouvelle en viennent trois autres :</p>
<ul>
<li>le SDK Flex 4 en version finale est disponible, lui, gratuitement (normal me direz vous) sur le site d&#8217;adobe (<a title="Flex 4 sdk" href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex4sdk" target="_blank">http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex4sdk</a>) ou sur le labs (<a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" target="_blank">http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK</a>).</li>
<li>Coldfusion builder 1.0 : permet de construire des applications Coldfusion rapidement avec un ensemble d&#8217;outils qui manquaient cruellement dans le développement sur cette techno (debugger, déploiement, management de serveurs, &#8230;). C&#8217;est disponible ici : <a title="Coldfusion Builder 1.0" href="http://www.adobe.com/products/coldfusion/cfbuilder/features/" target="_blank">http://www.adobe.com/products/coldfusion/cfbuilder/features/</a></li>
<li>Flash Platform Services for Social : il s&#8217;agit d&#8217;une API AS3 permettant de se connecter sur différents réseaux sociaux sans se soucier de coder individuellement pour chaque plateforme sociale. C&#8217;est disponible ici : <a title="Adobe Platform Services for Social" href="http://www.adobe.com/devnet/flashplatform/services/social/" target="_blank">http://www.adobe.com/devnet/flashplatform/services/social/</a></li>
</ul>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2007/05/08/adobe-cs3-version-devaluation/' rel='bookmark' title='Permanent Link: Adobe CS3 &#8211; Version d&#8217;évaluation'>Adobe CS3 &#8211; Version d&#8217;évaluation</a></li>
<li><a href='http://www.matsiya.fr/blog/2008/05/09/astuces-adobe-flex-adobe-coldfusion-papervision-3d/' rel='bookmark' title='Permanent Link: Astuces Adobe Flex, Adobe Coldfusion, Papervision 3D'>Astuces Adobe Flex, Adobe Coldfusion, Papervision 3D</a></li>
<li><a href='http://www.matsiya.fr/blog/2007/09/30/adobe-developper-connection/' rel='bookmark' title='Permanent Link: Adobe Developper Connection'>Adobe Developper Connection</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/03/22/nouveautes-adobe-du-matin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Génération des getter/setter</title>
		<link>http://www.matsiya.fr/blog/2010/03/17/generation-des-gettersetter/</link>
		<comments>http://www.matsiya.fr/blog/2010/03/17/generation-des-gettersetter/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:51:47 +0000</pubDate>
		<dc:creator>marie</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[développement flex]]></category>
<category>ActionScript</category><category>développement</category><category>développement air</category><category>développement flex</category><category>flash builder</category>
		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=300</guid>
		<description><![CDATA[Lors du développement d&#8217;un projet flex bien structuré, un des aspects qui peut devenir vite assommant est la création structurée des VO.
Il faut d&#8217;abord créer la classe puis la nommer, créer et typer les variables privés, les getters et les setters, puis enfin créer les autres fonctions du VO.
Mais maintenant avec Flash Builder 4, la [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2010/02/28/flex-unit-et-flash-builder/' rel='bookmark' title='Permanent Link: Flex Unit et Flash Builder'>Flex Unit et Flash Builder</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/02/19/gestion-des-marqueurs-dun-projet/' rel='bookmark' title='Permanent Link: Gestion des marqueurs d&#8217;un projet'>Gestion des marqueurs d&#8217;un projet</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/02/14/flash-builder-4-flex-4/' rel='bookmark' title='Permanent Link: Flash Builder 4 / Flex 4'>Flash Builder 4 / Flex 4</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-300'><p>Lors du développement d&#8217;un projet flex bien structuré, un des aspects qui peut devenir vite assommant est la création structurée des VO.<br />
Il faut d&#8217;abord créer la classe puis la nommer, créer et typer les variables privés, les getters et les setters, puis enfin créer les autres fonctions du VO.</p>
<p>Mais maintenant avec Flash Builder 4, la génération des getters et des setters est simplifiée à l&#8217;extrême. Il n&#8217;y a qu&#8217;à lui demander.<br />
<span id="more-300"></span> Pour cela il faut, après avoir sélectionner la variable voulue, aller dans &laquo;&nbsp;source&gt;Générer Getter/Setter&nbsp;&raquo;</p>
<p><a href="http://www.matsiya.fr/blog/wp-content/uploads/2010/03/getter-setter1.png" title="getter_setter1" rel="lightbox[300]" rel="lightbox[300]"><img class="size-medium wp-image-301 alignnone" title="getter_setter1" src="http://www.matsiya.fr/blog/wp-content/uploads/2010/03/getter-setter1-236x300.png" alt="génération des getter et setter d'une variable" width="236" height="300" /></a></p>
<p>Et là vous pouvez :</p>
<ul>
<li> rendre votre variable privée si vous ne l&#8217;avez pas encore fait;</li>
<li> la renommer d&#8217;une manière correcte;</li>
<li> nommer vos getter/setter;</li>
<li> générer soit un getter, soit un setter, soit les deux;</li>
<li> gérer l&#8217;espace de nom de vos getter/setter;</li>
<li> et enfin insérer le code généré soit avant les méthodes, soit après celles-ci, soit encore juste après la déclaration de la variable.</li>
</ul>
<p><a href="http://www.matsiya.fr/blog/wp-content/uploads/2010/03/getter-setter2.png" title="getter_setter2" rel="lightbox[300]" rel="lightbox[300]"><img class="size-medium wp-image-302 alignnone" title="getter_setter2" src="http://www.matsiya.fr/blog/wp-content/uploads/2010/03/getter-setter2-300x264.png" alt="apperçu de la génération des getter/setter" width="300" height="264" /></a></p>
<p>Grâce à l&#8217;aperçu, vous pouvez voir le code que Flash Builder va insérer  et vérifier qu&#8217;il n&#8217;a pas fait d&#8217;erreur.</p>
<p>Une fois que vous avez cliqué sur OK, vos getter/setter sont prêts.<br />
Il faut bien entendu, le faire pour chaque variable créée, mais là malheureusement Flash Builder n&#8217;a rien prévu.</p>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2010/02/28/flex-unit-et-flash-builder/' rel='bookmark' title='Permanent Link: Flex Unit et Flash Builder'>Flex Unit et Flash Builder</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/02/19/gestion-des-marqueurs-dun-projet/' rel='bookmark' title='Permanent Link: Gestion des marqueurs d&#8217;un projet'>Gestion des marqueurs d&#8217;un projet</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/02/14/flash-builder-4-flex-4/' rel='bookmark' title='Permanent Link: Flash Builder 4 / Flex 4'>Flash Builder 4 / Flex 4</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/03/17/generation-des-gettersetter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash Builder 4 : un debugger perfectionné</title>
		<link>http://www.matsiya.fr/blog/2010/03/14/flash-builder-4-un-debugger-perfectionne/</link>
		<comments>http://www.matsiya.fr/blog/2010/03/14/flash-builder-4-un-debugger-perfectionne/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 18:05:59 +0000</pubDate>
		<dc:creator>Alexis</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex builder]]></category>

		<guid isPermaLink="false">http://www.matsiya.fr/blog/?p=223</guid>
		<description><![CDATA[Tous ceux qui ont utilisé le débugger de Flex Builder 3 ne me contrediront pas sur le fait qu&#8217;il y avait des éléments manquants, mais aussi des comportements particulièrement énervants. Parmi ces éléments apportant une certaine frustration, on peut citer le fait que le navigateur se ferme intégralement quand on relance son application en mode [...]


Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2010/02/14/flash-builder-4-flex-4/' rel='bookmark' title='Permanent Link: Flash Builder 4 / Flex 4'>Flash Builder 4 / Flex 4</a></li>
<li><a href='http://www.matsiya.fr/blog/2009/06/01/flash-builder-4-flash-catalyst-sur-ladobe-labs/' rel='bookmark' title='Permanent Link: Flash Builder 4 &#038; Flash Catalyst sur l&#8217;Adobe Labs'>Flash Builder 4 &#038; Flash Catalyst sur l&#8217;Adobe Labs</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/02/28/flex-unit-et-flash-builder/' rel='bookmark' title='Permanent Link: Flex Unit et Flash Builder'>Flex Unit et Flash Builder</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<DIV ID='zaspPost-223'><p>Tous ceux qui ont utilisé le débugger de Flex Builder 3 ne me contrediront pas sur le fait qu&#8217;il y avait des éléments manquants, mais aussi des comportements particulièrement énervants. <span id="more-223"></span>Parmi ces éléments apportant une certaine frustration, on peut citer le fait que le navigateur se ferme intégralement quand on relance son application en mode debug, faisant généralement sauter l&#8217;ensemble des onglets ouverts (tout du moins sous mac); mais aussi le fait de ne pas toujours pouvoir accéder à la valeur d&#8217;une donnée du type valeur d&#8217;un ArrayCollection (ex: arrayCollection.getItemAt(i).value).</p>
<p>Sur la forme, la perspective du mode debug n&#8217;a pas changé, à l&#8217;exception de l&#8217;ajout d&#8217;une nouvelle icône dans la zone &laquo;&nbsp;Expression&nbsp;&raquo; <a href="http://www.matsiya.fr/blog/wp-content/uploads/2010/03/icon-control-expression.png" title="Adobe Flash builder 4 Expression control icon" rel="lightbox[223]" rel="lightbox[223]"><img class="size-full wp-image-282 alignnone" title="Adobe Flash builder 4 Expression control icon" src="http://www.matsiya.fr/blog/wp-content/uploads/2010/03/icon-control-expression.png" alt="Icône de gestion de l'expression de controle du nouveau Adobe Flash Builder 4" width="26" height="22" /></a>. Cette icône permet de définir une nouvelle expression dont on souhaite tester la valeur après calcul. Il est possible aussi d&#8217;ajouter à cette liste d&#8217;expression directement en surlignant un morceau de code, et avec le bouton droit, de faire &laquo;&nbsp;Créer une expression de contrôle&nbsp;&raquo;. L&#8217;expression est alors disponible dans l&#8217;onglet &laquo;&nbsp;Expression&nbsp;&raquo;. Je n&#8217;ai pas constaté de limitations dans les éléments que l&#8217;on peut mettre dans ces expressions, par exemple, tester les propriétés d&#8217;enfants d&#8217;enfants d&#8217;enfants fonctionne sans soucis. Il est aussi possible de voir les éléments d&#8217;un singleton (ex:  CommandsController.getInstance() qui retourne une instance de CommandsController).</p>
<p>Au final, peu de modifications dans le debugger, mais les points corrigés/améliorés (notamment expressions et plus de fermeture du navigateur) font que revenir sur le debugger de Flex builder 3 n&#8217;est plus envisageable.</p>
</DIV>

<p>Articles sur le même sujet :<ol><li><a href='http://www.matsiya.fr/blog/2010/02/14/flash-builder-4-flex-4/' rel='bookmark' title='Permanent Link: Flash Builder 4 / Flex 4'>Flash Builder 4 / Flex 4</a></li>
<li><a href='http://www.matsiya.fr/blog/2009/06/01/flash-builder-4-flash-catalyst-sur-ladobe-labs/' rel='bookmark' title='Permanent Link: Flash Builder 4 &#038; Flash Catalyst sur l&#8217;Adobe Labs'>Flash Builder 4 &#038; Flash Catalyst sur l&#8217;Adobe Labs</a></li>
<li><a href='http://www.matsiya.fr/blog/2010/02/28/flex-unit-et-flash-builder/' rel='bookmark' title='Permanent Link: Flex Unit et Flash Builder'>Flex Unit et Flash Builder</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.matsiya.fr/blog/2010/03/14/flash-builder-4-un-debugger-perfectionne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
