<?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>Steve On Java &#187; jfxtras</title>
	<atom:link href="http://steveonjava.com/tag/jfxtras/feed/" rel="self" type="application/rss+xml" />
	<link>http://steveonjava.com</link>
	<description>Hacking JavaFX and Java with Agility</description>
	<lastBuildDate>Fri, 16 Jul 2010 16:52:14 +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>Building Data Rich Interfaces with JavaFX</title>
		<link>http://steveonjava.com/building-data-rich-interfaces-with-javafx/</link>
		<comments>http://steveonjava.com/building-data-rich-interfaces-with-javafx/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:19:54 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[controls]]></category>
		<category><![CDATA[jazoon]]></category>
		<category><![CDATA[layouts]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=1214</guid>
		<description><![CDATA[


		
		
		
		I had my Jazoon talk this morning on building data rich user interfaces with JavaFX.  In an informal poll before the start, it seemed like many of the attendees had not yet tried JavaFX, so hopefully this has encouraged them to give it a spin.
I posted the slides from the talk on Slideshare for [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fbuilding-data-rich-interfaces-with-javafx%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F98pCPE%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Building%20Data%20Rich%20Interfaces%20with%20JavaFX%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/building-data-rich-interfaces-with-javafx/";
		var dzone_title = "Building Data Rich Interfaces with JavaFX";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>I had my Jazoon talk this morning on building data rich user interfaces with JavaFX.  In an informal poll before the start, it seemed like many of the attendees had not yet tried JavaFX, so hopefully this has encouraged them to give it a spin.</p>
<p>I posted the slides from the talk on Slideshare for the benefit of folks who couldn&#8217;t make it out to Zurich this week.  The agenda for the talk was as follows:</p>
<ul>
<li>JavaFX Technology Stack</li>
<li>Data Binding</li>
<li>JavaFX 1.3 Controls</li>
<li>Control Styling</li>
<li>JavaFX 1.3 Layouts</li>
<li>Web Service Integration</li>
<li>JFXtras Data-driven ControlsApropos Demo</li>
</ul>
<p>There is a lot of new information here on CSS styling and layouts in JavaFX 1.3 as well as some pre-announcements on some new bind functionality we are working on in the JFXtras project.  If you are interested in more details, please let me know in the comments section and I can follow up with subsequent blog posts.</p>
<p>Without further ado, here are the slides from today&#8217;s talk:<br />
<object id="__sse4391311" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jazoon-buildingdatarichinterfaceswithjavafx-100602100305-phpapp02&amp;stripped_title=building-data-rich-interfaces-with-javafx" /><param name="name" value="__sse4391311" /><param name="allowfullscreen" value="true" /><embed id="__sse4391311" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jazoon-buildingdatarichinterfaceswithjavafx-100602100305-phpapp02&amp;stripped_title=building-data-rich-interfaces-with-javafx" name="__sse4391311" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>You can also download the <a href="http://jfxtras.org/presentations/Jazoon%20-%20Building%20Data%20Rich%20Interfaces%20with%20JavaFX.pdf">slides as a PDF</a>.</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/building-data-rich-interfaces-with-javafx/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Announcing the Apropos Project</title>
		<link>http://steveonjava.com/announcing-the-apropos-project/</link>
		<comments>http://steveonjava.com/announcing-the-apropos-project/#comments</comments>
		<pubDate>Tue, 04 May 2010 01:06:52 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[apropos]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=1177</guid>
		<description><![CDATA[


		
		
		
		At the Lean Software and Systems Conference a week ago, Israel Gat, Erik Huddleston, and I did a presentation on Reformulating the Product Delivery Process.  At the end of this talk, we unveiled an open-source, JavaFX tool called Apropos that we use for Product Portfolio Planning at Inovis.

Note: The data has been blurred to hide [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fannouncing-the-apropos-project%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FdoIKuw%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Announcing%20the%20Apropos%20Project%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/announcing-the-apropos-project/";
		var dzone_title = "Announcing the Apropos Project";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>At the <a href="http://atlanta2010.leanssc.org/">Lean Software and Systems Conference</a> a week ago, Israel Gat, Erik Huddleston, and I did a presentation on <a href="http://theagileexecutive.com/2010/04/26/apropos-the-inovis-end-to-end-kanban-system/">Reformulating the Product Delivery Process</a>.  At the end of this talk, we unveiled an open-source, JavaFX tool called <a href="http://code.google.com/p/apropos/">Apropos</a> that we use for Product Portfolio Planning at <a href="http://inovis.com/">Inovis</a>.</p>
<p><a href="http://code.google.com/p/apropos/"><img class="alignnone size-large wp-image-1178" title="apropos-portfolio" src="http://steveonjava.com/wp-content/uploads/2010/05/apropos-portfolio-650x430.png" alt="" width="650" height="430" /></a></p>
<p class="note">Note: The data has been blurred to hide corporate information.  The final release will include a test bed of public data, which can be used for display and testing.</p>
<p>What you are seeing in the above screenshot is the Portfolio Kanban View that we use for tracking features through their full lifecycle from proposal through validation.  It is backed by the Rally Agile Lifecycle Management tool, which exposes Web Services for accessing all of our planning data.  The entire UI was written in JavaFX, and makes heavy use of <a href="http://jfxtras.org/">JFXtras</a> features, such as the XTableView.</p>
<p>The plan for this tool is to do the initial launch of a BSD-licensed open-source version on May 22nd.  This will include support for the <a href="http://www.rallydev.com/agile_products/editions/community/signup/">Rally Community Edition</a>, which is free for up to 10 users.  In future releases we plan to support other Agile Lifecycle Management tools, both commercial and open-source, but will need assistance from the community to do this.</p>
<p>If you are interested in helping out with this project, please <a href="http://steveonjava.com/contact/">contact me</a>.  I will have limited bandwidth until after the initial launch, but after that would love to scale up this project with interested parties.</p>
<p>Here is the full presentation, which includes additional screenshots of <a href="http://code.google.com/p/apropos/">Apropos</a> at the end (slides 15-19):</p>
<div id="__ss_3853287" style="width: 425px;"><object id="__sse3853287" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lssc10v5-100425212336-phpapp02&amp;stripped_title=reformulating-the-product-delivery-process-3853287" /><param name="name" value="__sse3853287" /><param name="allowfullscreen" value="true" /><embed id="__sse3853287" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lssc10v5-100425212336-phpapp02&amp;stripped_title=reformulating-the-product-delivery-process-3853287" name="__sse3853287" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/announcing-the-apropos-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JFXtras 0.6 Final Released</title>
		<link>http://steveonjava.com/jfxtras-0-6-final-released/</link>
		<comments>http://steveonjava.com/jfxtras-0-6-final-released/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 06:18:37 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=1011</guid>
		<description><![CDATA[


		
		
		
		I am pleased to announce the 0.6 release of the open-source JFXtras project, the largest 3rd party library of JavaFX add-ons.  This release is a very large undertaking that represents the work of several dozen contributors over the past 6 months.
JFXtras 0.6 will work with any JavaFX release in the 1.2 family.  We recommend using [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fjfxtras-0-6-final-released%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9yUS14%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22JFXtras%200.6%20Final%20Released%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/jfxtras-0-6-final-released/";
		var dzone_title = "JFXtras 0.6 Final Released";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p><a href="http://code.google.com/p/jfxtras/downloads/list"><img class="alignright size-full wp-image-1041" title="Download JFXtras 0.6" src="http://steveonjava.com/wp-content/uploads/2010/04/download-button1.png" alt="" width="175" height="174" /></a>I am pleased to announce the 0.6 release of the open-source JFXtras project, the largest 3rd party library of JavaFX add-ons.  This release is a very large undertaking that represents the work of several dozen contributors over the past 6 months.</p>
<p>JFXtras 0.6 will work with any JavaFX release in the 1.2 family.  We recommend using the very latest release (currently JavaFX 1.2.3), which can be downloaded from <a href="http://javafx.com/">JavaFX.com</a>.</p>
<p>Starting immediately, we will be focusing on developing a JavaFX 1.3 compatible JFXtras release.  Our plan is to release a 1.3 compatible version of JFXtras within 1 week of the official release announcement from Oracle.  To hear about future JFXtras release announcements, make sure to <a href="http://twitter.com/steveonjava">follow my blog</a>.</p>
<h3>JFXtras Functionality</h3>
<p>To make it easier to see some of the JFXtras capabilities in action, I have included Web Start demos from our component test library.  It may take a minute or two to load the first demo, but after that the rest should launch instantaneously.</p>
<h4>Data-Driven Controls</h4>
<p>The JFXtras controls include a Table, Tree, Shelf, Calendar, PasswordBox, Picker, Spinner, MultiLineTextBox, ScoreBoard, and Menu.  Many of these controls can be driven off a dynamic data provider that gives back incremental results from an asynchronous operation, such as a Web Service call.</p>
<p>XTableView (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/controls/test/org/jfxtras/scene/control/XTableViewDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XTableViewDemo.jnlp"><img class="alignnone size-full wp-image-1062" title="JFXtras XTableView Demo" src="http://steveonjava.com/wp-content/uploads/2010/04/table.png" alt="" width="649" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XTableViewDemo.jnlp"><img class="alignnone size-full wp-image-642" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<p><span id="more-1011"></span>XShelfView (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/controls/test/org/jfxtras/scene/control/XShelfViewDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XShelfViewDemo.jnlp"><img class="alignnone size-full wp-image-1082" title="JFXtras Shelf Demo" src="http://steveonjava.com/wp-content/uploads/2010/04/shelf1.png" alt="" width="574" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XShelfViewDemo.jnlp"><img class="alignnone size-full wp-image-642" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<p>XPicker (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/controls/test/org/jfxtras/scene/control/XPickerDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XPickerDemo.jnlp"><img class="alignnone size-full wp-image-1083" title="JFXtras XPicker Demo" src="http://steveonjava.com/wp-content/uploads/2010/04/xpicker.png" alt="" width="640" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XPickerDemo.jnlp"><img class="alignnone size-full wp-image-642" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<h4>Advanced Layouts</h4>
<p>The JFXtras layouts include the XGrid, XMigLayout, and Resizable versions of Stack, HBox, and VBox.  All of these layouts support dynamic animation and a powerful defaults system.  The JFXtras XGrid has been contributed back to Oracle and will be included in the JavaFX 1.3 release.</p>
<p>XGrid (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/common/test/org/jfxtras/scene/layout/XGridEricDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XGridEricDemo.jnlp"><img class="alignnone size-full wp-image-1088" title="JFXtras Grid Demo" src="http://steveonjava.com/wp-content/uploads/2010/04/grid.png" alt="" width="626" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XGridEricDemo.jnlp"><img class="alignnone size-full wp-image-642" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<h3>Wipe Library</h3>
<p>Wipe transitions including: blind, fade-out, fade-reveal, fade, fade-zoom, flip-180, reveal, shape, slide-over, slide, and swing-in as featured in Simon Morris&#8217; <a href="http://www.manning.com/morris/">JavaFX in Action</a> book.</p>
<p>Wide Demo (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/common/test/org/jfxtras/animation/wipe/WipeDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/WipeDemo.jnlp"><img class="alignnone size-full wp-image-1089" title="JFXtras Wipe Library" src="http://steveonjava.com/wp-content/uploads/2010/04/wipe.png" alt="" width="528" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/WipeDemo.jnlp"><img class="alignnone size-full wp-image-642" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<h4>Shapes</h4>
<p>JFXtras includes a wide selection of skinnable shapes including: Almond, Arrow, Asterisk, Astroid, Balloon, Cross, Donut, ETriangle, Gear, ITriangle, Lauburu, RTriangle, Rays, RegularPolygon, ResizableEllipse, ResizableRectangle, ReuleauxTriangle, RoundPin, Sphere, and Star.</p>
<p>Shapes Demo (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/common/test/org/jfxtras/scene/shape/ShapesDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/ShapesDemo.jnlp"></a><a href="http://jfxtras.org/jfxtras-0.6/ShapesDemo.jnlp"><img class="size-full wp-image-1056 alignnone" title="JFXtras Shapes Demo" src="http://steveonjava.com/wp-content/uploads/2010/04/shape-demo2.png" alt="" width="367" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/ShapesDemo.jnlp"><img class="size-full wp-image-642  alignnone" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<h4>Borders</h4>
<p>We also have a large set of skinnable borders including: bevel, ellipse, empty, etched, frame, image, line, metallic, pipe, raised, rounded, shape, soft, and titled.</p>
<p>Borders Demo (<a href="http://code.google.com/p/jfxtras/source/browse/jfxtras.core/tags/release-0.6/common/test/org/jfxtras/scene/border/XGridBordersDemo.fx">browse demo source</a>)</p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XGridBordersDemo.jnlp"></a><a href="http://jfxtras.org/jfxtras-0.6/XGridBordersDemo.jnlp"><img class="alignnone size-full wp-image-1057" title="JFXtas Borders Demo" src="http://steveonjava.com/wp-content/uploads/2010/04/borders-demo1.png" alt="" width="636" height="120" /></a></p>
<p><a href="http://jfxtras.org/jfxtras-0.6/XGridBordersDemo.jnlp"><img class="size-full wp-image-642 alignnone" title="webstartsmall2" src="http://steveonjava.com/wp-content/uploads/2009/10/webstartsmall2.gif" alt="" width="88" height="34" /></a></p>
<h4>And a Whole Lot More</h4>
<p>Here are some of the other features JFXtras has to offer:</p>
<ul>
<li>XStore Data Storage &#8211; Simple persistence of JavaFX primitives and sequences with defaults,  auto-save, and save-on-exit.</li>
<li>Asynchronous JavaFX Support (for experts only) &#8211; Allows invocation  of JavaFX code off the EDT either via a SwingWorker-style callback or a  set of closure-driven primitives.</li>
<li>Swing Integration &#8211; Via the original SceneToJComponent wrapper or  the new, easier to use, JXScene class.</li>
<li>Custom Cursors and Paints &#8211; Allows you to use <a href="http://today.java.net/pub/a/today/2009/07/14/custom-cursors-javafx.html">custom cursors</a> and <a href="http://today.java.net/article/2009/07/27/introducing-custom-paints-javafx"> custom paints</a> within your JavaFX application via a special Toolkit as featured in Jeff Friesen&#8217;s articles.</li>
<li>Interpolatable and HSB Gradients &#8211; Ever wanted to animate a color?   This is the perfect solution, complete with support for an HSB color  palette.</li>
<li>Bindable XMap &#8211; A simplified map syntax for use with JavaFX that  includes bind support on gets.</li>
<li>Image Caching &#8211; An image caching library that supports high  performance, asynchronous loading and sizing of images from URLs.</li>
</ul>
<h3>Documentation</h3>
<p>The full API is documented online here:</p>
<p><a href="http://jfxtras.googlecode.com/svn/site/javadoc/release-0.6/index.html">http://jfxtras.googlecode.com/svn/site/javadoc/release-0.6/index.html</a></p>
<p>We also have a new documentation wiki on the JFXtras website.  Please  browse it for ideas on how to use the JFXtras components and feel free  to comment or contribute back to the docs to make them better:</p>
<p><a href="http://jfxtras.org/portal/core"><img class="alignnone size-full wp-image-1095" title="JFXtras Documentation Wiki" src="http://steveonjava.com/wp-content/uploads/2010/04/wiki1.png" alt="" width="500" height="136" /></a></p>
<p><a href="http://jfxtras.org/portal/core">http://jfxtras.org/portal/core</a></p>
<h3>Migrating from Previous Releases</h3>
<p>In order to avoid name collisions with the built-in JavaFX classes, we have undergone a fairly aggressive renaming strategy on all scene graph classes.  If you have been using an earlier version of JFXtras, you will have to rename your usages by pre-pending an X before the class name.  Going forward this will reduce the likelihood of collisions with JavaFX built-in classes and make it easier to visually inspect code that uses a mix of JavaFX and JFXtras classes.</p>
<p>Some other migration changes that you need to take into account include:</p>
<ul>
<li>The fill layout constraint has been changed from an enumeration to two booleans (hfill, vfill).</li>
<li>The Grid border feature has been replaced with a general purpose margin on XLayoutInfo</li>
<li>The Deck class has been renamed to XStack</li>
<li>All the layout classes starting with Resizable* have changed to X* (when in doubt try the JavaFX class name prepended with an X)</li>
</ul>
<h3>JFXtras Test</h3>
<p>There is also a matching release of JFXtras Test so you can do behavior-driven development with a declarative JavaFX syntax.  We use this for all the unit tests in JFXtras and encourage you to do the same on your projects.  Some of the new JFXtras Test features include:</p>
<ul>
<li>Asynchronous Testing Support &#8211; Test background processes such as HttpRequests</li>
<li>JUnit Integration &#8211; Integrate JFXtras Test in your Ant or Maven build using a standard JUnit runner</li>
</ul>
<p><a href="http://code.google.com/p/jfxtras/downloads/list">Download</a> it and give it at try!</p>
<h3>Credits</h3>
<p>Some of the folks I would like to thank for making this release possible include:</p>
<ul>
<li>Jim Weaver for inspiring me to start this project and being a great mentor.</li>
<li>Keith Combs for assisting me on various bits and putting up with my perfectionism on everything.</li>
<li>Jim Clarke for being the most productive JavaFX coder at Oracle who is not on the core team.</li>
<li>Dean Iverson for bringing MigLayout to JFXtras and being the clean code guru (see his article on <a href="http://jfxtras.org/portal/core/-/wiki/JFXtras/Style_guidelines">code conventions</a>).</li>
<li>David Armitage for contributing some great controls and making sure our documentation was top notch.</li>
<li>Tom Eugelink for being our voice of sanity on the mailing list and being polite about my past mistakes in misattributing his work.</li>
<li>Pedro Duque Vieira for making the world a safer place for Swing developers with JXScene.</li>
<li>John Freeman for contributing a very high quality JTable wrapper that I always underpromote.</li>
<li>And also: Peter Pilgrim, Christophe DUFOUR, Joshua Marinacci, Simon Morris, Andres Almiray, Jeff Friesen, Andrew Hughes, and Liu Huasong.</li>
</ul>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/jfxtras-0-6-final-released/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Launching Hyperlinks from JavaFX (including Mobile)</title>
		<link>http://steveonjava.com/launching-hyperlinks-from-javafx-including-mobile/</link>
		<comments>http://steveonjava.com/launching-hyperlinks-from-javafx-including-mobile/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 19:52:27 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaFX Mobile]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[hyperlinks]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=814</guid>
		<description><![CDATA[


		
		
		
		Creating hyperlinks in JavaFX should be in the category of things that are trivially easy, but is complicated by various factors, such as deployment mode and Java version.  First I will go into detail on all the different permutations of how you can launch links in a browser and under what circumstances each will [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Flaunching-hyperlinks-from-javafx-including-mobile%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fbc4SAe%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Launching%20Hyperlinks%20from%20JavaFX%20%28including%20Mobile%29%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/launching-hyperlinks-from-javafx-including-mobile/";
		var dzone_title = "Launching Hyperlinks from JavaFX (including Mobile)";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p><a href="http://steveonjava.com/wp-content/uploads/2010/02/image_gallery.jpg"><img class="size-full wp-image-831 alignright" title="link" src="http://steveonjava.com/wp-content/uploads/2010/02/image_gallery.jpg" alt="" width="260" height="215" /></a>Creating hyperlinks in JavaFX should be in the category of things that are trivially easy, but is complicated by various factors, such as deployment mode and Java version.  First I will go into detail on all the different permutations of how you can launch links in a browser and under what circumstances each will work. Next I will give you a nice packaged solution that you can use as a library (if you are impatient, just skip to <a href="#out">The Easy Way Out</a> now).  Finally, I will show how you can do the same thing for <a href="#mobile">JavaFX Mobile applications</a>.</p>
<h2>A Tale of 3 APIs</h2>
<p>There are 3 different ways that you can launch hyperlinks in Java/JavaFX. It helps to have an internet connection such as <a href="http://www.o2.co.uk/">broadband</a> to be able to launch this. Unfortunately, none of them work in all circumstances, so you need to know when to call each.  Here is a quick reference table:</p>

<table id="wp-table-reloaded-id-3-no-1" class="wp-table-reloaded wp-table-reloaded-id-3">
<thead>
	<tr class="row-1 odd">
		<th class="column-1"></th><th class="column-2">AppletStageExtension</th><th class="column-3">Web Start BasicService</th><th class="column-4">Desktop.browse</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">Works in Applet</td><td class="column-2">Yes</td><td class="column-3">Yes</td><td class="column-4">Yes</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">Works in Web Start</td><td class="column-2">No</td><td class="column-3">Yes</td><td class="column-4">Yes</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">Works in Application</td><td class="column-2">No</td><td class="column-3">No</td><td class="column-4">Yes</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">Works on Java 1.5</td><td class="column-2">Yes</td><td class="column-3">Yes</td><td class="column-4">No</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">Can Set Target</td><td class="column-2">Yes</td><td class="column-3">No</td><td class="column-4">No</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1">Default Target</td><td class="column-2">_self</td><td class="column-3">_blank</td><td class="column-4">_self</td>
	</tr>
</tbody>
</table>

<h3>AppletStageExtension</h3>
<p>The first option is to use the JavaFX AppletStageExtension.  This is only available if you are running as an Applet, but also gives you the most control over how the hyperlink is launched.  In addition to a URL you can also specify a target, which can be any of the standard HTML targets including the following (excerpted from the <a href="http://java.sun.com/javafx/1.2/docs/api/javafx.stage/javafx.stage.AppletStageExtension.html">AppletStageExtension javadocs</a>):</p>

<table id="wp-table-reloaded-id-1-no-1" class="wp-table-reloaded wp-table-reloaded-id-1">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Target Argument</th><th class="column-2">Description</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1">"_self"</td><td class="column-2">Show in the window and frame that contain the applet.</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1">"_parent"</td><td class="column-2">Show in the applet’s parent frame. If the applet’s frame has no parent frame, acts the same as “_self”.</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1">"_top"</td><td class="column-2">Show in the top-level frame of the applet’s window. If the applet’s frame is the top-level frame, acts the same as “_self”.</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1">"_blank"</td><td class="column-2">Show in a new, unnamed top-level window.</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1">name</td><td class="column-2">Show in the frame or window named name. If a target named name  does not already exist, a new top-level window with the specified name is created, and the document is shown there.</td>
	</tr>
</tbody>
</table>

<h3>Web Start BasicService</h3>
<p>The second option is to use the Web Start BasicService.  This works from both JavaFX Applets and Web Start applications, but does not let you specify the HTML target.  It is effectively the same as using the AppletStageExtension with a target of &#8220;_blank&#8221;.</p>
<p>Here is a small code excerpt showing how you would call the Web Start BasicService from your JavaFX code:</p>
<pre class="brush: javafx;">
def basicService = ServiceManager.lookup(&quot;javax.jnlp.BasicService&quot;) as BasicService;
basicService.showDocument(new URL(url));
</pre>
<h3>Desktop.browse</h3>
<p>The third option is to use the new Desktop class introduced in Java 1.6.  This works from Applet, Web Start applications, and Standard Execution (within a desktop Frame).  Unfortunately, it did not exist in Java 1.5, so it won&#8217;t work from JavaFX without a little hacking.</p>
<p>The quick and dirty hack is to modify your JavaFX distribution to include the rt.jar from Java 1.6 as explained in this <a href="http://steveonjava.com/2009/01/02/hacking-javafx-10-to-use-java-16-features/">earlier post</a>.  The only problem with this is you also have to get all the other developers on your project to do the same (and redo this on every upgrade).</p>
<p>The friendlier approach is to use reflection to check and see if the Desktop class is available, and then invoke the methods dynamically.  There is quite a bit more boilerplate code, but it will allow you to compile with a plain vanilla JavaFX installation, and also handle the odd case where someone is trying to run JavaFX under 1.5.  (Which is unsupported on Windows/Unix, and is now even supported on 32-bit Mac systems with the release of Snow Leopard!).</p>
<p>Since the code is easier to follow without reflection, I will show that first:</p>
<pre class="brush: javafx;">
Desktop.getDesktop().browse(new URI(url));
</pre>
<p>And here is the munged version with reflection:</p>
<pre class="brush: javafx;">
try {
    def desktopClazz = Class.forName(&quot;java.awt.Desktop&quot;);
    def desktop = desktopClazz.getMethod(&quot;getDesktop&quot;).invoke(null);
    def browseMethod = desktopClazz.getMethod(&quot;browse&quot;, [URI.class] as java.lang.Class[]);
    browseMethod.invoke(desktop, new URI(url));
} catch (e) {
    println(&quot;Upgrade to Java 6 or later to launch hyperlinks: {url}&quot;);
}
</pre>
<h2><a name="out">The Easy Way Out</a></h2>
<p>When things are easy to do, they will get done right.  To make sure that JavaFX applications do not fall prey to broken and inconsistent linking, I put together a library for <a href="http://jfxtras.org/">JFXtras</a> that takes care of all the plumbing for you.</p>
<p>There is a new JFXtras class called BrowserUtil that has a very simple API:</p>
<pre class="brush: javafx;">
BrowserUtil.browse(url);
</pre>
<p>or</p>
<pre class="brush: javafx;">
BrowserUtil.browse(url, target);
</pre>
<p>It is that simple&#8230;  Conversion of string URLs to URL or URI objects, selection of the correct API based on your deployment mode, and failover modes based on the Java version are all included.</p>
<p>In addition, I created an extended Hyperlink called the XHyperlink.  This behaves identically to the built-in control, with the addition of simple configuration of URL navigation (this is what hyperlinks are designed for, right?)  The usage of the XHyperlink class is as follows:</p>
<pre class="brush: javafx;">
XHyperlink {
    text: &quot;Oracle's Homepage&quot;, url: &quot;http://oracle.com/&quot;}
}
</pre>
<p>All of this functionality will be included in the JFXtras 0.6 release.  If you need it now, you can build off the head of our <a href="http://code.google.com/p/jfxtras/source/browse/">repo</a>.  Otherwise we are working on a release, which I will announce on this blog shortly which you can <a href="http://twitter.com/steveonjava">follow</a>.</p>
<h2><a name="mobile">What about JavaFX mobile?</a></h2>
<p>None of these desktop techniques actually work on a mobile device, so this is not a 100% solution yet.</p>
<p>Fortunately, there is also a solution for JavaFX Mobile if you are willing to delve in to the Java ME APIs.  To do this you first need to get a handle to the MIDlet like this:</p>
<pre class="brush: javafx;">
def midlet = com.sun.javafx.runtime.adapter.MIDletAdapter.getMidlet();
</pre>
<p>And then you can call platformRequest to launch a browser on the mobile device:</p>
<pre class="brush: javafx;">
midlet.platformRequest(url);
</pre>
<p class="note">Note: This requires use of private APIs, so this may not work in future JavaFX releases.</p>
<p>It is not possible to merge this in with the desktop solution, because the JavaFX Mobile libraries do not exist on the desktop platform (and vice versa), but it is relatively easy to use this technique yourself by copying and pasting the above code sample into a helper function in your application.</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/launching-hyperlinks-from-javafx-including-mobile/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>JFXtras 0.6 Preview Available!</title>
		<link>http://steveonjava.com/jfxtras-0-6-preview-available/</link>
		<comments>http://steveonjava.com/jfxtras-0-6-preview-available/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 09:16:48 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[controls]]></category>
		<category><![CDATA[layouts]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=714</guid>
		<description><![CDATA[


		
		
		
		Happy Thanksgiving from the JFXtras team!  While everyone else is celebrating the holiday with friends and family, we are going to be busy finishing up the 0.6 release.
In case you have some spare time between meals and celebration, you can join in the fun too by trying out the JFXtras 0.6 preview release, which can [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fjfxtras-0-6-preview-available%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22JFXtras%200.6%20Preview%20Available%21%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/jfxtras-0-6-preview-available/";
		var dzone_title = "JFXtras 0.6 Preview Available!";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>Happy Thanksgiving from the JFXtras team!  While everyone else is celebrating the holiday with friends and family, we are going to be busy finishing up the 0.6 release.</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://www.flickr.com/photos/voght/2441818832/"><img class=" " title="Happy Thanksgiving!" src="http://farm4.static.flickr.com/3141/2441818832_aa89a2ffa2.jpg" alt="" width="500" height="334" /></a><p class="wp-caption-text">Wild turkey in LaConner, WA taken by stevevoght</p></div>
<p>In case you have some spare time between meals and celebration, you can join in the fun too by trying out the JFXtras 0.6 preview release, which can be downloaded here:</p>
<p><a href="http://code.google.com/p/jfxtras/downloads/list">http://code.google.com/p/jfxtras/downloads/list</a></p>
<p>There is a whole slew of new functionality including the following under Common:</p>
<ul>
<li>Layouts &#8211; Changes to the Grid API in preparation for inclusion in the JavaFX Soma release, and also added animation support to all the layouts.</li>
<li>Sphere &#8211; Pseudo 3D sphere created for the <a href="http://jfxstudio.wordpress.com/2009/07/14/fun-with-spheres/">Groovy showdown</a> with Andrey Almiray.</li>
<li>Gear &#8211; New shape from Steve Bixby.</li>
<li>ManualResizableRectangle &#8211; Very useful shape from <a href="http://jfxstudio.wordpress.com/2009/08/15/844/">Yannick&#8217;s post</a>.</li>
<li>JXScene &#8211; Pedro&#8217;s improved API for Swing integration.</li>
<li>PaintUtil, HSBColor, new gradients &#8211; Liu&#8217;s magic paint classes</li>
<li>Custom Paints &#8211; From Jeff Friesen&#8217;s excellent article on <a href="http://today.java.net/pub/a/today/2009/07/30/javafx-custom-paints.html">Custom Paints</a>.</li>
<li>Custom Cursors &#8211; From Jeff Friesen&#8217;s excellent article on <a href="http://today.java.net/pub/a/today/2009/07/14/custom-cursors-javafx.html">Custom Cursors</a>.</li>
<li>Wipe Library &#8211; A transition library from Simon Morris&#8217; <a href="http://www.manning.com/morris/">JavaFX in Action</a> book.</li>
<li>XMap &#8211; A bindable Map implementation for JavaFX.</li>
<li>XStore &#8211; David Armitage&#8217;s simple persistence for JavaFX variables using dependency injection.</li>
<li>ImageCache &#8211; Caching of JavaFX images for building high performance applications contributed by <a href="http://www.joshondesign.com/">Joshua Marinacci</a>.</li>
<li>XEDT &#8211; Simplified event thread mangement for JavaFX infrastructure classes (Warning: Use the JavaFX Task API instead unless you know exactly what you are doing)</li>
</ul>
<p>And the rest under a new Controls jar:</p>
<ul>
<li>XTableView &#8211; I am still working on this, but it is very useful already as demonstrated by Jim Weaver&#8217;s <a href="http://learnjavafx.typepad.com/weblog/2009/09/introducing-speedreaderfx-powered-by-javafx-and-jfxtras.html">SpeedReaderFX </a>application.</li>
<li>XTreeView &#8211; Jim Clarke&#8217;s Tree Control.</li>
<li>XCalendarPicker &#8211; Tom&#8217;s excellent <a href="http://jfxtras.org/portal/core/-/wiki/JFXtras/XCalendarPicker">calendar control</a>.</li>
<li>XPane &#8211; A titled region with rounded corners developed by Dean Iverson.</li>
<li>XPicker &#8211; David Armitage did some great work on this&#8230;  Check out his demo on the <a href="http://jfxtras.org/portal/core/-/wiki/JFXtras/XPicker">JFXtras website</a>.</li>
<li>XShelfView &#8211; A high performance Display Shelf control implementation with support for reflection, titles, and a scrollbar as showcased on <a href="http://jfxstudio.wordpress.com/2009/07/05/jfxtras-shelf-control/">JFXStudio</a>.</li>
<li>XSpinnerWheel &#8211; A prize spinner wheel that makes use of pseudo 3D effects as showcased in the <a href="http://jfxtras.org/portal/samples/-/journal_content/56/10128/32110">JUG Prize Spinner </a>application.</li>
<li>XMenu &#8211; Pure JavaFX Menu developed by <a href="http://jonathangiles.net/blog/?p=566">Jonathan Giles </a>(this version will be replaced by the official Sun Menu control when it becomes available).</li>
<li>XPasswordBox &#8211; Control from Liu to create a password field.</li>
<li>XMultiLineTextBox &#8211; Till&#8217;s control for editing multiple lines of text.</li>
<li>XSwingTable &#8211; From John Freeman, this gives you all the power of a JTable directly from JavaFX code.</li>
</ul>
<p>For this release we decided to go with a new naming convention to differentiate our classes from the built-in JavaFX layouts and controls.  Most of the classes are now prefixed with an &#8220;X&#8221; for jfXtras.  This will make migration slightly more painful now, but prevent future collisions and name changes down the road.</p>
<p>There is also a new version of JFXtras Test.  This is the final version that will be released under this name (it is being <a href="http://steveonjava.com/2009/08/02/jfxtras-test-and-fest-unite/">merged with FEST-JavaFX</a>), but it required an update to work with the new naming convention and to add some much-needed JUnit Runner support (see my <a href="http://steveonjava.com/2009/11/24/devoxx-conference-session-slides/">Devoxx Conference Presentation</a> for more details).</p>
<p>I probably missed a few things along the way here.  You can find the definitive list in the online JavaFXDoc:</p>
<p><a href="http://jfxtras.googlecode.com/svn/site/javadoc/release-0.6/index.html">http://jfxtras.googlecode.com/svn/site/javadoc/release-0.6/index.html</a></p>
<p>Please feel free to download the jars and give the preview release a try.  We are putting the finishing touches on several of the layouts and controls, so expect a final release in a week or so.</p>
<p>Happy Thanksgiving!</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/jfxtras-0-6-preview-available/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Devoxx Conference Session Slides</title>
		<link>http://steveonjava.com/devoxx-conference-session-slides/</link>
		<comments>http://steveonjava.com/devoxx-conference-session-slides/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 05:38:40 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[devoxx]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=707</guid>
		<description><![CDATA[


		
		
		
		Overall I was very impressed with Devoxx.  Everything including the movie theater venue, quality of the speakers, and professionalism of the attendees was top-notch.  Stephan Janssen definitely puts on quite an amazing show!
As a follow-up to my second Devoxx session, here is the full slide deck I presented:

Both this and the university session will be [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fdevoxx-conference-session-slides%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fdl04Hr%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Devoxx%20Conference%20Session%20Slides%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/devoxx-conference-session-slides/";
		var dzone_title = "Devoxx Conference Session Slides";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>Overall I was very impressed with Devoxx.  Everything including the movie theater venue, quality of the speakers, and professionalism of the attendees was top-notch.  Stephan Janssen definitely puts on quite an amazing show!</p>
<p>As a follow-up to my second Devoxx session, here is the full slide deck I presented:</p>
<div style="width:425px;text-align:left" id="__ss_2529597"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=thejavafxplatformajavadevelopersguide-091118113703-phpapp01&#038;stripped_title=the-java-fx-platform-a-java-developers-guide" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse2579012" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=projavafxdevelopingenterpriseapplications-091124204819-phpapp01&#038;stripped_title=pro-java-fx-developing-enterprise-applications" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p>Both this and the university session will be available on the <a href="http://beta.parleys.com/#st=4&amp;id=74957">Parleys.com beta site</a> shortly, so you will be able to watch both sessions from the comfort of your home.</p>
<p>Now back to coding on the JFXtras 0.6 release with an announcement to be posted here very shortly&#8230;</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/devoxx-conference-session-slides/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Watch WidgetFX and JFXtras at the SDForum</title>
		<link>http://steveonjava.com/watch-widgetfx-and-jfxtras-at-the-sdforum/</link>
		<comments>http://steveonjava.com/watch-widgetfx-and-jfxtras-at-the-sdforum/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 20:37:22 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[widgetfx]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[sdforum]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=549</guid>
		<description><![CDATA[


		
		
		
		Last night I presented at the SDForum Java SIG to a very engaged and enthusiastic crowd.  This was the longest presentation to date, but the audience was great, and even stayed afterwards to ask questions.  Also, Rich Rein was an outstanding host, inviting us out to drink beers until midnight after the event (I hope his [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fwatch-widgetfx-and-jfxtras-at-the-sdforum%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Watch%20WidgetFX%20and%20JFXtras%20at%20the%20SDForum%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/watch-widgetfx-and-jfxtras-at-the-sdforum/";
		var dzone_title = "Watch WidgetFX and JFXtras at the SDForum";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>Last night I presented at the SDForum Java SIG to a very engaged and enthusiastic crowd.  This was the longest presentation to date, but the audience was great, and even stayed afterwards to ask questions.  Also, Rich Rein was an outstanding host, inviting us out to drink beers until midnight after the event (I hope his wife wasn&#8217;t upset!)</p>
<p>This is my last presentation gig until <a href="http://www.devoxx.com/display/DV09/Speakers">Devoxx</a> at the end of the year, but I was able to get a great screencast recording of the session, which you can watch in <a href="http://blip.tv/file/2442518">full resolution</a> on blip.tv:</p>
<p><a href="http://steveonjava.com/watch-widgetfx-and-jfxtras-at-the-sdforum/"><em>Click here to view the embedded video.</em></a></p>
<p>Note: The end of the presentation got cut off due to a technical glitch in Camtasia, but to their credit it recovered the bulk of the recording on restart.</p>
<p>You can also browse the slide decks at your own pace in PDF format:</p>
<p>Part A (JFXtras): <a href="http://steveonjava.files.wordpress.com/2009/08/superchargingwithjfxtras-sdforum.pdf">SuperchargingWithJFXtras-SDForum</a></p>
<p>Part B (WidgetFX): <a href="http://steveonjava.files.wordpress.com/2009/08/superchargingwithwidgetfx-sdforum.pdf">SuperchargingWithWidgetFX-SDForum</a></p>
<p><strong>I hope you enjoy the video and slides!</strong></p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/watch-widgetfx-and-jfxtras-at-the-sdforum/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JFXtras Community Site Launched!</title>
		<link>http://steveonjava.com/jfxtras-community-site-launched/</link>
		<comments>http://steveonjava.com/jfxtras-community-site-launched/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 11:44:42 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[community]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=448</guid>
		<description><![CDATA[


		
		
		
		
I am proud to announce the official launch of the JFXtras Community Site.  This site is a resource for the entire JavaFX community, and open for participation by all.
Just like the JFXtras open-source library has been helping improve the JavaFX Platform, this site is focused on helping to expand and grow the JavaFX Community.  Some [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fjfxtras-community-site-launched%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22JFXtras%20Community%20Site%20Launched%21%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/jfxtras-community-site-launched/";
		var dzone_title = "JFXtras Community Site Launched!";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p><a href="http://jfxtras.org/"><img class="alignnone size-full wp-image-478" title="jfxtras_portal_mockup_community_version_03" src="http://steveonjava.files.wordpress.com/2009/07/jfxtras_portal_mockup_community_version_031.png" alt="jfxtras_portal_mockup_community_version_03" width="409" height="66" /></a></p>
<p>I am proud to announce the official launch of the JFXtras Community Site.  This site is a resource for the entire JavaFX community, and open for participation by all.</p>
<p>Just like the JFXtras open-source library has been helping improve the JavaFX Platform, this site is focused on helping to expand and grow the JavaFX Community.  Some things you can do on the site today include:</p>
<h2>Explore -</h2>
<p><a href="http://steveonjava.files.wordpress.com/2009/07/boundisizer-screenshot-300.png"><img class="alignnone size-full wp-image-468" title="Boundisizer-screenshot-300" src="http://steveonjava.files.wordpress.com/2009/07/boundisizer-screenshot-300.png" alt="Boundisizer-screenshot-300" width="300" height="154" /></a></p>
<p>The <a href="http://jfxtras.org/portal/samples">JFXtras Samples</a> section is the largest JavaFX example repository outside of Sun, and is specifically focused on teaching JavaFX concepts from beginner to advanced.  Some of the featured samples include:</p>
<ul>
<li>Amy Fowler&#8217;s Boundisizer &#8211; Learn how to transform and manipulate nodes like a champ from Amy Fowler, the acclaimed layout expert on the JavaFX team.</li>
<li>Music Explorer FX &#8211; You may not have won the 25 thousand dollar prize, but you can learn from the expert.  Sten Anderson has posted his winning entry, and promised to share the full source code shortly (no pressure, Sten!)</li>
<li>Particle-O-Rama &#8211; Josh Marinacci, JavaFX evangelist and Rockstar<strong><sup>1</sup></strong>, creates another visual extravaganza with his super-customizable particle demo.</li>
<li>Generating Graphs from Hudson &#8211; Mark Macumber posted a great mash-up of the JavaFX 1.2 Charting support to display Hudson build status.</li>
</ul>
<p>The site is completely self-service, and provides free hosting of open-source JavaFX samples, so create an account and <a href="http://jfxtras.org/portal/samples/upload">start contributing</a> your own samples to grow the community!</p>
<hr /><strong>1.</strong> Yes, it is official, Joshua Marinacci and I are JavaOne Rockstars!  Josh and I received the JavaOne Rockstar award for having a top ranked JavaOne session this year (thanks to everyone who attended our <a href="http://steveonjava.com/2009/06/13/the-widgetfx-j1-recap/">WidgetFX Session</a>!)</p>
<h2>Learn -</h2>
<p>Through a collaborative effort from all the JavaFX book authors, we will be able to bring you the full set of samples from all 5 of the JavaFX books.  All the source code will be made available under a commercial-friendly open-source license, and the samples will be easily browseable online categorized by topic.</p>
<p><a href="http://jfxtras.org/portal/pro-javafx-platform"><img class="alignnone size-full wp-image-406" title="cover-100" src="http://steveonjava.files.wordpress.com/2009/06/cover-100.jpg" alt="cover-100" width="100" height="132" /></a> <a href="http://jfxtras.org/portal/javafx-developing-rich-internet-applications"><img class="alignnone size-full wp-image-451" title="JavaFXRIA-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/javafxria-cover-100.jpg" alt="JavaFXRIA-cover-100" width="100" height="132" /></a><a href="http://steveonjava.files.wordpress.com/2009/07/essentialjavafx-cover-100.jpg"><img class="alignnone size-full wp-image-452" title="EssentialJavafx-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/essentialjavafx-cover-100.jpg" alt="EssentialJavafx-cover-100" width="100" height="131" /></a> <a href="http://jfxtras.org/portal/javafx-in-action"><img class="alignnone size-full wp-image-454" title="JavaFXInAction-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/javafxinaction-cover-100.jpg" alt="JavaFXInAction-cover-100" width="100" height="125" /></a><a href="http://jfxtras.org/portal/javafx-developers-guide"><img class="alignnone size-full wp-image-453" title="JavaFXDevGuide-cover-100" src="http://steveonjava.files.wordpress.com/2009/07/javafxdevguide-cover-100.jpg" alt="JavaFXDevGuide-cover-100" width="100" height="129" /></a></p>
<address>What is on your bookshelf?<br />
</address>
<p>This includes all of the samples from <em><a href="http://projavafx.com/">Pro JavaFX Platform</a></em>, which is finally out in print! &#8212; The full realization that I was an author didn&#8217;t come until this morning when my copies arrived&#8230; for a brief moment the gaping hole in my life for the past six months seemed (almost) worth it.</p>
<p>The Sun <a href="http://jfxbook.com/"><em>JavaFX</em></a> and <a href="http://www.asgteach.com/books/javafxbook.html"><em>Essential JavaFX</em></a> books have been out since JavaOne and are great references to get started coding in JavaFX.  These samples should be available within the next couple weeks.</p>
<p>Finally, the <a href="http://www.manning.com/morris/"><em>JavaFX in Action</em></a> and <a href="http://my.safaribooksonline.com/9780321648983"><em>JavaFX Developer&#8217;s Guide</em></a> books are both due out later this year, and will post samples as soon as it makes sense to.</p>
<h2>Research -</h2>
<p><a href="http://steveonjava.files.wordpress.com/2009/07/jfxtras_portal_mockup_community_version_22.jpg"><img class="alignnone size-full wp-image-469" title="jfxtras_portal_mockup_community_version_22" src="http://steveonjava.files.wordpress.com/2009/07/jfxtras_portal_mockup_community_version_22.jpg" alt="jfxtras_portal_mockup_community_version_22" width="260" height="215" /></a></p>
<p>There is also a new section called <a href="http://jfxtras.org/portal/links">JFXtras Links</a> brought to you by <a href="http://jonathangiles.net/blog/">Jonathan Giles</a>, famous for his weekly desktop links of the week feature on his blog.  The plan is to aggregate and categorize all the best JavaFX links and resources in a single place.</p>
<p>This section is still in its infancy, so please give us feedback and contribute links that you find valuable.</p>
<h2>About the Site -</h2>
<p>The JFXtras Community Site is built on the principles of collaboration and agility, and is backed by technologies that make this possible.  Everything is 100% Java from the application server (Tomcat) to the portal engine (Liferay).  Also, wherever possible customization and design was done via the online portal user interface so that future changes to the site (both minor and major) can be done by the community.</p>
<p>Most importantly, the JFXtras Community Site will be what you make of it.  Just like everything else we do on the JFXtras project, we are open to new ideas and ways of doing things.  If you have a great idea for how to improve one of the existing sections, or something else we should add to the site, let us know, or better yet, help us make it happen!</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/jfxtras-community-site-launched/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Speaking at the Oakland Java SIG</title>
		<link>http://steveonjava.com/speaking-at-the-oakland-java-sig/</link>
		<comments>http://steveonjava.com/speaking-at-the-oakland-java-sig/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 13:07:55 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[widgetfx]]></category>
		<category><![CDATA[oakland java sig]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=425</guid>
		<description><![CDATA[


		
		
		
		I will be presenting at the Oakland Java SIG on July 15th.  The topic is &#8220;Supercharging Your JavaFX Programs with WidgetFX and JFXtras,&#8221; and will include some brand new content based on the WidgetFX 1.2 and JFXtras 0.5 releases.
As usual, I will incur some significant demo risk for the sake of showing some jaw-dropping demo awesomeness!  [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fspeaking-at-the-oakland-java-sig%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Speaking%20at%20the%20Oakland%20Java%20SIG%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/speaking-at-the-oakland-java-sig/";
		var dzone_title = "Speaking at the Oakland Java SIG";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>I will be presenting at the <a href="http://www.ebig.org/java">Oakland Java SIG</a> on July 15th.  The topic is &#8220;Supercharging Your JavaFX Programs with WidgetFX and JFXtras,&#8221; and will include some brand new content based on the WidgetFX 1.2 and JFXtras 0.5 releases.</p>
<p>As usual, I will incur some significant demo risk for the sake of showing some jaw-dropping demo awesomeness!  You will either be totally impressed or get a good laugh at my expense&#8230;</p>
<p>If you are in the SF Bay Area, be sure to drop by and check it out!</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/speaking-at-the-oakland-java-sig/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JFXtras 0.5 Release Announcement</title>
		<link>http://steveonjava.com/jfxtras-0-5-release-announcement/</link>
		<comments>http://steveonjava.com/jfxtras-0-5-release-announcement/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 15:31:21 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[jfxtras]]></category>
		<category><![CDATA[borders]]></category>
		<category><![CDATA[layouts]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[shapes]]></category>

		<guid isPermaLink="false">http://steveonjava.com/?p=365</guid>
		<description><![CDATA[


		
		
		
		I am pleased to announce the 0.5 release of JFXtras.  This release updates the project with JavaFX 1.2 support, plus includes a major overhaul of the Shapes, Borders, and Layouts.
You can grab the latest bits here:
http://code.google.com/p/jfxtras/downloads/list
And browse the Javadoc online.
Pure JavaFX Shapes
Why should you care that we spent months re-implementing all the Shapes from scratch in pure [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: left;margin-right: 0.75em;; margin-top: 4px; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fsteveonjava.com%252Fjfxtras-0-5-release-announcement%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FaMeqnb%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22JFXtras%200.5%20Release%20Announcement%22%20%7D);"></div>
<!--S-ButtonZ 1.1.5 Start--><div style="float: left; width: 42px; padding-right: 10px; margin: 0 10px 0 0;">
		<script type="text/javascript">
		<!--
		var dzone_url = "http://steveonjava.com/jfxtras-0-5-release-announcement/";
		var dzone_title = "JFXtras 0.5 Release Announcement";
		var dzone_style = "1";
		var dzone_blurb = "";
		//-->
		</script>
		<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script></div><!--S-ButtonZ 1.1.5 End--><p>I am pleased to announce the 0.5 release of JFXtras.  This release updates the project with JavaFX 1.2 support, plus includes a major overhaul of the Shapes, Borders, and Layouts.</p>
<p>You can grab the latest bits here:<br />
<a href="http://code.google.com/p/jfxtras/downloads/list">http://code.google.com/p/jfxtras/downloads/list</a></p>
<p>And browse the Javadoc <a href="http://jfxtras.googlecode.com/svn/site/javadoc/release-0.5/index.html">online</a>.</p>
<h2>Pure JavaFX Shapes</h2>
<p>Why should you care that we spent months re-implementing all the Shapes from scratch in pure JavaFX code?  Well, here are a few reasons:</p>
<ol>
<li><strong>JavaFX 1.2 Compatibility</strong> - The JavaFX scene graph was pretty-much rewritten from the ground up in the 1.2 release, so porting the old Shape code was non-trivial.</li>
<li><strong>Mobile Deployment</strong> - Yes, you can now draw stars, balloons, and reuleaux triangles on your new HTC Diamond.  (What, you didn&#8217;t pick up a JavaFX Mobile device at JavaOne?  Your loss&#8230;)</li>
<li><strong>Richard Bair said to do it&#8230;</strong>  <a href="http://weblogs.java.net/blog/rbair/">Rich</a> isn&#8217;t the sort of guy you say no to, and he was pretty adament about the fact that we shouldn&#8217;t be hacking the scene graph directly.  Well, now we aren&#8217;t.  (although don&#8217;t let him know about our new hack to embed JavaFX in Swing&#8230;)</li>
</ol>
<p>You can try out the new shapes by running the <a href="http://projavafx.com/portal/samples">DrawJFXtras sample program</a> from the <a href="http://projavafx.com/">Pro JavaFX Platform book</a> (which has an entire chapter dedicated to the JFXtras project and other JavaFX FOSS):</p>
<div id="attachment_370" class="wp-caption alignnone" style="width: 520px"><a href="http://jfxtras.org/portal/webdav/liferay.com/guest/document_library/Samples/Pro%20JavaFX%20Platform/DrawJFXtras/DrawJFX.jnlp"><img class="size-full wp-image-370  " title="screenshot" src="http://steveonjava.files.wordpress.com/2009/06/screenshot1.png" alt="Draw JFXtras Sample Application" width="510" height="376" /></a><p class="wp-caption-text">Draw JFXtras Sample Application</p></div>
<p>Note:  When playing with the demo be careful using the balloon and rounded rectangle shapes.  They trigger a nasty bounds-detection bug that we still haven&#8217;t tracked down.</p>
<p>Thanks to my coworker, Steve Bixby for doing the rewrite in his spare time.  He was looking for a little project to learn JavaFX, and went way above and beyond!</p>
<h2>Redesigned Borders</h2>
<p>We also redesigned the JFXtras Borders from scratch.  Here are some of the new and noteworthy improvements:</p>
<ul>
<li><strong><span id="more-365"></span>Improved performance</strong> &#8211; The borders render much more quickly, because they take advantage of the new layout infrastructure. This means you can layer and nest borders to your heart&#8217;s content without worrying about slow rendering or resizing.</li>
<li><strong>Developer-friendly properties</strong> &#8211; The border properties are still available via CSS, but can now easily be set using variables on the classes as well.</li>
<li><strong>Shape-to-Fit support</strong> &#8211; There is a new property on the border class called shapeToFit that allows you to choose between having the border fill the available width/height or hugging the component.</li>
</ul>
<div class="mceTemp">
<dl class="wp-caption alignnone">
<dt class="wp-caption-dt"><a href="http://blogs.sun.com/clarkeman/entry/javafx_borders"><img class="size-full wp-image-366" title="BorderEnsemble" src="http://steveonjava.files.wordpress.com/2009/06/borderensemble.png" alt="Jim Clarke's Border Ensemble" width="509" height="465" /></a></dt>
<dd class="wp-caption-dd">Jim Clarke&#8217;s JFXtras Border Ensemble</dd>
</dl>
<p>Jim Clarke was responsible for most of this goodness, and did a great blog post that goes into more details here: <a href="http://blogs.sun.com/clarkeman/entry/javafx_borders">http://blogs.sun.com/clarkeman/entry/javafx_borders</a></div>
<h2>Layouts Reloaded</h2>
<p>What JFXtras release would be complete without at least a partial layout rewrite?  Well, the JavaFX team didn&#8217;t leave us much of a choice here, given all the great work they did on layouts in JavaFX 1.2.</p>
<p>The good news is that <a href="http://weblogs.java.net/blog/aim/">Amy Fowler</a> and I were mostly on the same wavelength, so the upgrade should be relatively painless.  Here are some of the reasons to use the new JFXtras layout classes:</p>
<ul>
<li><strong>Take advantage of JavaFX 1.2 features</strong> &#8211; All the JFXtras layouts will honor layoutInfo constraints set on Nodes such as hpos, vpos, and managed.</li>
<li><strong>Plus Extended layout features</strong> &#8211; JFXtras layers fill, span, grow, and full support for resizable layouts.  Simply drop in the ResizableXXX replacement classes (ResizableScene, ResizableHBox, ResizableImageView, etc.) and forget about manual binding of layouts.</li>
<li><strong>Plus the JFXtras Defaults System</strong> &#8211; Most components want to be laid out a certain way.  For example, you usually want Labels left aligned and TextBoxes to grow horizontally.  JFXtras provides defaults for all the new JavaFX 1.2 controls so you don&#8217;t have to.</li>
<li><strong>And still the best Grids around</strong> &#8211; The JFXtras Grid and MigLayout have both been fully updated to work with JavaFX 1.2.  Combined together, you have the most powerful layout system available for JavaFX (or any RIA platform) period.</li>
</ul>
<p>A great way to learn about the JFXtras layouts is by reading Chapter 8 of the <a href="http://projavafx.com/">Pro JavaFX Platform book</a>.  It goes over a complex <a href="http://projavafx.com/portal/samples">MediaExplorer Sample</a> built from the ground up using all the JFXtras layouts from ResizableScene to Grid to MigLayout.</p>
<div class="mceTemp">
<dl class="wp-caption alignnone">
<dt class="wp-caption-dt"><a href="http://jfxtras.org/portal/webdav/liferay.com/guest/document_library/Samples/Pro%20JavaFX%20Platform/MediaExplorer4/MediaExplorer.jnlp"><img class="size-full wp-image-368 " title="mediaexplorer" src="http://steveonjava.files.wordpress.com/2009/06/screenshot.png" alt="MediaExplorer sample demonstrating JFXtras Layouts" width="510" height="335" /></a></dt>
<dd class="wp-caption-dd">MediaExplorer sample demonstrating JFXtras Layouts</dd>
</dl>
<p>All the Pro JavaFX book samples including DrawJFXtras and MediaExplorer have been open-sourced under the New BSD license as a part of the <a href="http://jfxtras.org/portal/samples">JFXtras Samples</a> project.  More details on this project will be coming up in the next few weeks.</div>
<h2>JavaFX Wrapper for Swing</h2>
<p>Amy had a great <a href="http://weblogs.java.net/blog/aim/archive/2009/06/insiders_guide.html">blog</a> that described how to makeover a JavaFX application by embedding Swing, but how about going the other direction?  With the new SceneToJComponent class, you can do exactly that from a standard API like this:</p>
<pre class="brush: java;">
public SceneToJComponentTest() {
    String sceneClass = &quot;org.jfxtras.scene.SceneToJComponentScene&quot;;
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle(&quot;FX Panel Test&quot;);
    getContentPane().setLayout(new BorderLayout());

    JComponent theScene = SceneToJComponent.loadScene(sceneClass);
    getContentPane().add(new JLabel(&quot;JLabel: The following is a JavaFX Scene&quot;), BorderLayout.NORTH);
    getContentPane().add(theScene, BorderLayout.CENTER);

    pack();
}
</pre>
<p>This class allows you convert any JavaFX Scene to a Swing JComponent that can be embedded in a larger application, insulating you from future changes in the JavaFX internal APIs.</p>
<h2>Full List of Features, Enhancements, and Changes</h2>
<p>For existing JFXtras users who want all the gory details that they will need to migrate their applications and take advantage of new features, here it is:</p>
<ul>
<li>JavaFX Wrapper for Swing:
<ul>
<li>The new SceneToJComponent class makes it easy to wrap your JavaFX user interface in a JComponent that you can use from any Swing UI</li>
<li>This insulates you from directly calling the JavaFX internal APIs, which may change in any release.</li>
</ul>
</li>
<li>JavaFX 1.2 Compatibility:
<ul>
<li>This breaks binary compatibility with old versions.  Please recompile all your code</li>
</ul>
</li>
<li>JSONHandler:
<ul>
<li>Enhanced variable name mapping support</li>
</ul>
</li>
<li>JFXtras Borders Changes:
<ul>
<li>Border child is now in a parameter called &#8220;node&#8221; rather than &#8220;content&#8221;</li>
<li>New shapeToFit property to choose between matching the container set width/height or wrapping the nested node</li>
<li>Properties are now exposed directly on the border classes in addition to being accessible from CSS.</li>
<li>Various border tweaks&#8230;  ShapeBorder is now used for clipping, TitledBorder has a line, etc.</li>
</ul>
</li>
<li>JFXtras Layout Changes:
<ul>
<li>HAlign/VAlign have been removed in favor of using the new built-in HPos/VPos classes.</li>
<li>Fill is not an orthoganal property in its own class used by ExtendedLayoutInfo (which extends LayoutInfo)</li>
<li>Grow and span are now on a new GridLayoutInfo class that extends ExtendedLayoutInfo</li>
<li>Layout contants are now all in the new LayoutConstants class (formerly GridContraints)</li>
<li>ResizableHBox/ResizableVBox have been updated with the new hpos/vpos/nodeHPos/nodeVPos parameters from HBox/VBox</li>
<li>ResizableScene now support nodeHPos/nodeVPos parameters</li>
<li>Deck now supports nodeHPos/nodeVPos parameters</li>
<li>Grid position default is LEFT/MIDDLE</li>
<li>Grid now supports nodeHPos/nodeVPos parameters</li>
<li>Grid now handles toFront/toBack correctly (and is the only layout in existence that does)</li>
<li>New DefaultLayout class for supporting the JFXtras defaults system</li>
<li>New JFXContainer class created to support JFXtras layout extensions</li>
<li>Removed org.jfxtras.layout.EmptyBorder.  User org.jfxtras.scene.border.EmptyBorder instead.</li>
</ul>
</li>
<li>Component Changes:
<ul>
<li>ScrollView now uses JavaFX ScrollBar and ClipView</li>
</ul>
</li>
<li>MigLayout Changes
<ul>
<li>MigLayout fixed to make it work with JavaFX 1.2.</li>
<li>MigLayout handles dynamic changes to node sizes and their layoutInfo&#8217;s managed flag</li>
<li>MigLayout code is no longer forked (thanks to nativearrary support in JavaFX!)</li>
</ul>
</li>
<li>JFXtras Shapes changes:
<ul>
<li>JFXtras Shapes are now defined as native JavaFX shapes</li>
<li>Shapes are generally more fault tolerant to invalid parameter values</li>
<li>Almond &amp; Asterisk &#8216;width&#8217; is now from left to right rather than left-to-center or center-to-right.</li>
<li>Asterisk arm width is now as specified (was twice as wide.)</li>
<li>ReuleauxTriangle is treated as a spherical object and has centerX, centerY, and radius, rather than x/y/width.</li>
<li>All shapes use native JavaFX transforms; specifically, angle of rotation is clockwise rather than counterclockwise as before.</li>
<li>All shapes rotate about their bounds center rather than around a starting point &#8211; as do all Path-based native JavaFX shapes.</li>
</ul>
</li>
</ul>
<p>Thanks to the whole JFXtras team, and especially Steve Bixby, Jim Clarke, Dean Iverson, and Keith Combs, for making this release possible.</p>
<p><strong>Enjoy the new JFXtras Release!</strong></p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/jfxtras-0-5-release-announcement/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
