<?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; contest</title>
	<atom:link href="http://steveonjava.com/tag/contest/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>30 Lines of JavaFX</title>
		<link>http://steveonjava.com/30-lines-of-javafx/</link>
		<comments>http://steveonjava.com/30-lines-of-javafx/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 07:49:43 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[jfxstudio]]></category>
		<category><![CDATA[time]]></category>

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


		
		
		
		What can you do in 30 lines of JavaFX?  JFXStudio is running a contest right now to find this out&#8230;
http://jfxstudio.wordpress.com/2009/08/31/jfxstudio-challenge-small-is-the-new-big/
I strongly encourage you to give it a try.  So much so that I took a quick stab at putting together a sample myself this evening.  Welcome to the Time Wheel:
Everything is rendered using JavaFX Shape [...]]]></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%252F30-lines-of-javafx%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%2230%20Lines%20of%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/30-lines-of-javafx/";
		var dzone_title = "30 Lines of 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>What can you do in 30 lines of JavaFX?  JFXStudio is running a contest right now to find this out&#8230;</p>
<p><a href="http://jfxstudio.wordpress.com/2009/08/31/jfxstudio-challenge-small-is-the-new-big/">http://jfxstudio.wordpress.com/2009/08/31/jfxstudio-challenge-small-is-the-new-big/</a></p>
<p>I strongly encourage you to give it a try.  So much so that I took a quick stab at putting together a sample myself this evening.  Welcome to the Time Wheel:</p>
<p><a href="http://steveonjava.com/30-lines-of-javafx/"><em>Click here to view the embedded video.</em></a></p>
<p>Everything is rendered using JavaFX Shape and Text primitives with clever PerspectiveTransform effects applied.  I also made use of an overlay gradient Flooded and Blended on an outer group in order to create the top and bottom shadow giving it a rounded 3d appearance.</p>
<p><span id="more-621"></span>Below is the full code for the application (clearly I was going for the 3000 character limit).  The formatted version was about 200 lines long and over 4000 characters, but by shortening variable names, removing white space, and merging lines, I was able to bring it down substantially.  This is definitely not a recommended coding practice, but met the contest constraints:</p>
<pre>import javafx.scene.*;import javafx.scene.effect.*;import javafx.scene.layout.*;import javafx.scene.paint.*;import javafx.scene.paint.Color.*;
import javafx.scene.shape.*;import javafx.scene.text.*;import javafx.stage.*;import javafx.util.Math;import javafx.animation.*;import javafx.scene.media.*;
var ez=Interpolator.EASEBOTH;class Slot{var n:Node[];var v:Number on replace{
Timeline{keyFrames:at(.9s){c =&gt; v tween ez}}.play();a();}
var a:function();var c:Number;var e:String[];var s:Number;var f:Number;
init{var entryHeight=bind Math.sin(Math.PI/sizeof e)*h;n=for(entry in e)Stack{
var textLine:Text;content:[Group{var w1=bind Math.max(w,textLine.boundsInLocal.width);
content:[Rectangle{width:bind w1,height:bind h/12,fill:bind if(indexof entry mod 3==0){LIGHTGRAY} else if(indexof entry mod 3==1){DARKGRAY}
else{hsb(360*Math.abs((indexof entry*2-sizeof e as Number)/sizeof e),.4,.7)}}]}
textLine=Text{content:bind entry font:bind Font.font(null,h/12*.75)}]
visible:bind Math.abs(indexof entry-(c mod sizeof e))&lt;=(sizeof e as Number)/4 or Math.abs(indexof entry-(c mod sizeof e))&gt;=(sizeof e as Number)*3/4
effect:PerspectiveTransform{var sw=bind 360.0/sizeof e;var a=bind(indexof entry-c mod sizeof e)/sizeof e*360 + 90-sw/2;def sr=bind Math.toRadians(a + 90);
def er=bind Math.toRadians(a + 90 + sw);def r=bind h/2;var uy=bind r + Math.sin(er)*r;uly:bind uy ury:bind uy var ly=bind r + Math.sin(sr)*r;
lly:bind ly lry:bind ly ulx:bind Math.cos(er)*r*s;llx:bind Math.cos(sr)*r*s;urx:bind w-Math.cos(er)*r*f;lrx:bind w-Math.cos(sr)*r*f;}}}}
var x=45;var y=10;var w=24;var h=200;var ss=for(i in [1..9])Slot{e:for(j in [0..9])"{j}"s:.3-indexof i*.07 f:-.25 + indexof i*.07}
var so=MediaPlayer{media:Media{source:"http://jfxtras.org/sounds/beep.wav";}}
var bg:Color;ss[5].a=function(){so.stop();so.currentTime=0s;so.play();
Timeline{keyFrames:[at(50ms){bg =&gt; GREEN tween ez}at(150ms){bg =&gt; BLACK tween ez}]}.play();}
var d:java.util.Date;
Timeline{repeatCount:Timeline.INDEFINITE keyFrames:KeyFrame{time:1ms canSkip:true action:function(){d=new java.util.Date();
ss[8].c=java.lang.System.currentTimeMillis()mod 10;ss[7].c=(java.lang.System.currentTimeMillis()mod 100 as Number)/10;
ss[6].c=(java.lang.System.currentTimeMillis()mod 1000 as Number)/100;ss[5].v=d.getSeconds()mod 10;ss[4].v=d.getSeconds()/10;
ss[3].v=d.getMinutes()mod 10;ss[2].v=d.getMinutes()/10;ss[1].v=d.getHours()mod 10;ss[0].v=d.getHours()/10;}}}.play();
Stage{width:400 height:300 title:"Time Wheel"scene:Scene{fill:bind bg content:Group{content:[for(s in ss)Panel{
translateX:x + indexof s*30 +(Math.min(indexof s,7)/2)*10 translateY:y content:s.n height:h width:w}Text{content:bind "The time is now: {d}",fill:WHITE,x:58,y:242}]
effect:Blend{mode:BlendMode.SRC_ATOP topInput:Flood{paint:LinearGradient{endX:0 stops:[
Stop{offset:0,color:color(0,0,0,.9)}Stop{offset:.3,color:TRANSPARENT}Stop{offset:.7,color:TRANSPARENT}Stop{offset:1,color:color(0,0,0,.9)}]}
y:y width:400 height:h}}}}}</pre>
<p>There is still time to get your own submission in for the contest.  The official deadline is Wednesday at midnight, so with a little hard work and determination you can easily crank out 30 lines of JavaFX goodness!</p>
<p><strong>Update</strong>:  By popular demand, here is a cleanly formatted version of the same code:</p>
<pre class="brush: java;">
import javafx.scene.*;
import javafx.scene.effect.*;
import javafx.scene.layout.*;
import javafx.scene.paint.*;
import javafx.scene.paint.Color.*;
import javafx.scene.shape.*;
import javafx.scene.text.*;
import javafx.stage.*;
import javafx.util.Math;
import javafx.animation.*;
import javafx.scene.media.*;

class Slot {
    var node:Node[];
    var value:Number on replace {
            Timeline {keyFrames: at(.9s) {center =&amp;gt; value tween Interpolator.EASEBOTH}}.play();
        action();
    }
    var action:function();
    var center:Number;
    var entries:String[];
    var start:Number;
    var finish:Number;

    init {
        var entryHeight = bind Math.sin(Math.PI / sizeof entries) * height;
        node = for (entry in entries) Stack {
            var textLine: Text;
            content: [
                Group {
                    var w1 = bind Math.max(width,textLine.boundsInLocal.width);
                    content: [
                        Rectangle {
                            width: bind w1
                            height: bind height/12
                            fill: bind if (indexof entry mod 3 == 0) {
                                LIGHTGRAY
                            } else if (indexof entry mod 3 == 1) {
                                DARKGRAY
                            } else {
                                hsb(360 * Math.abs((indexof entry*2-sizeof entries as Number) / sizeof entries), .4, .7)
                            }
                        }
                    ]
                }
                textLine = Text {
                    content: bind entry
                    font: bind Font.font(null, height / 12 * .75)
                }
            ]
            visible: bind Math.abs(indexof entry - (center mod sizeof entries)) &amp;lt;= (sizeof entries as Number) / 4 or Math.abs(indexof entry - (center mod sizeof entries)) &amp;gt;= (sizeof entries as Number) * 3/4
            effect: PerspectiveTransform {
                var sweep = bind 360.0 / sizeof entries;
                var action = bind(indexof entry - center mod sizeof entries) / sizeof entries * 360 + 90 - sweep/2;
                def startRadians = bind Math.toRadians(action + 90);
                def endRadians = bind Math.toRadians(action + 90 + sweep);
                def radius = bind height/2;
                var uy = bind radius + Math.sin(endRadians) * radius;
                uly: bind uy
                ury: bind uy
                var ly = bind radius + Math.sin(startRadians) * radius;
                lly: bind ly
                lry: bind ly
                ulx: bind Math.cos(endRadians) * radius * start
                llx: bind Math.cos(startRadians) * radius * start
                urx: bind width-Math.cos(endRadians)*radius*finish
                lrx: bind width-Math.cos(startRadians)*radius*finish
            }
        }
    }
}
var x = 45;
var y = 10;
var width = 24;
var height = 200;
var slots = for(i in [1..9]) Slot {
    entries: for(j in [0..9]) &amp;quot; {j}&amp;quot;
    start: .3 - indexof i * .07
    finish: -.25 + indexof i * .07
}
var beep = MediaPlayer {
    media: Media {
        source: &amp;quot;http://jfxtras.org/sounds/beep.wav&amp;quot;;
    }
}
var bgColor: Color;
slots[5].action = function() {beep.stop();
    beep.currentTime = 0s;
    beep.play();
    Timeline {
        keyFrames: [
            at(50ms) {bgColor =&amp;gt; GREEN tween Interpolator.EASEBOTH}
            at(150ms) {bgColor =&amp;gt; BLACK tween Interpolator.EASEBOTH}
        ]
    }.play();
}
var d: java.util.Date;

Timeline {
    repeatCount: Timeline.INDEFINITE
    keyFrames: KeyFrame {
        time: 1ms
        canSkip: true
        action: function() {
            d = new java.util.Date();
            slots[8].center = java.lang.System.currentTimeMillis() mod 10;
            slots[7].center = (java.lang.System.currentTimeMillis() mod 100 as Number) / 10;
            slots[6].center = (java.lang.System.currentTimeMillis() mod 1000 as Number) / 100;
            slots[5].value = d.getSeconds() mod 10;
            slots[4].value = d.getSeconds() / 10;
            slots[3].value = d.getMinutes() mod 10;
            slots[2].value = d.getMinutes() / 10;
            slots[1].value = d.getHours() mod 10;
            slots[0].value = d.getHours() / 10;
        }
    }
}.play();

Stage {
    width: 400
    height: 300
    title: &amp;quot;Time Wheel&amp;quot;
    scene: Scene {
        fill: bind bgColor
        content: Group {
            content: [
                for(start in slots) Panel {
                    translateX: x + indexof start*30 +(Math.min(indexof start,7)/2)*10
                    translateY: y content: start.node height: height width: width
                }
                Text {
                    content: bind &amp;quot;The time is now: {d}&amp;quot;
                    fill: WHITE
                    x: 58
                    y: 242
                }
            ]
            effect: Blend {
                mode: BlendMode.SRC_ATOP
                topInput: Flood {
                    paint: LinearGradient {
                        endX: 0
                        stops: [
                            Stop {offset: 0, color: color(0,0,0,.9)}
                            Stop {offset: .3, color: TRANSPARENT}
                            Stop {offset: .7, color: TRANSPARENT}
                            Stop {offset: 1, color: color(0,0,0,.9)}
                        ]
                    }
                    y: y
                    width: 400
                    height: height
                }
            }
        }
    }
}
</pre>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/30-lines-of-javafx/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
<enclosure url="http://jfxtras.org/sounds/beep.wav" length="4562" type="audio/x-wav" />
		</item>
		<item>
		<title>WidgetFX Contest Winners!</title>
		<link>http://steveonjava.com/widgetfx-contest-winners/</link>
		<comments>http://steveonjava.com/widgetfx-contest-winners/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 10:21:10 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[widgetfx]]></category>

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


		
		
		
		I am pleased to announce the winners of the WidgetFX Developer&#8217;s Contest.  There were lots of great entries (22 in total), which made this a very hard decision.  You can browse the full set of entries yourself on the WidgetFX Library page:
http://widgetfx.org/portal/library
To try any of the contest entries below, simply click on the image which [...]]]></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%252Fwidgetfx-contest-winners%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WidgetFX%20Contest%20Winners%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/widgetfx-contest-winners/";
		var dzone_title = "WidgetFX Contest Winners!";
		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 winners of the WidgetFX Developer&#8217;s Contest.  There were lots of great entries (22 in total), which made this a very hard decision.  You can browse the full set of entries yourself on the WidgetFX Library page:</p>
<p><a href="http://widgetfx.org/portal/library">http://widgetfx.org/portal/library</a></p>
<p>To try any of the contest entries below, simply click on the image which will install/open WidgetFX and add the widget to your dock.</p>
<h2>1st Place &#8211; ScreenshotFX</h2>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://pmdit.se/widgets/screenshotfx/launch.jnlp"><img class="alignright" title="ScreenshotFX" src="http://widgetfx.org/portal/image/journal/article?img_id=15388&amp;t=1251753765077" alt="" width="230" height="279" /></a></p>
<p>In first place is Pär Dahlberg with his ScreenshotFX widget.  Pär definitely went above and beyond in all respects, entering a full-blown application for taking screen captures and then editing them in a pop-up window.  Some of the cool features in his application include:</p>
<ul>
<li>A delay timer to give you time to arrange windows and menus before the capture occurs</li>
<li>Multi-monitor support via a drop-down (This was sure to impress Keith)</li>
<li>Drawing tools to markup the image with annotations</li>
<li>Crop/Fill and a whole host of other editing tools</li>
</ul>
<p>Pär has a great blog on JavaFX, WidgetFX, and other topics of interest, so make sure to check out his <a href="http://www.pmdit.se/blog/2009/09/27/and_the_winner_is.html">contest winning speech</a>.</p>
<h2>2nd Place &#8211; RadioFX</h2>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.jfxperience.com/repo/radiofx/RadioFX.jnlp"><img class="alignright" title="RadioFX" src="http://widgetfx.org/portal/image/journal/article?img_id=15367&amp;t=1251628907230" alt="" width="213" height="253" /></a>Second place went to Yannick Van Godtsenhoven for his RadioFX Widget.  In terms of visual design and widget polish, Yannick was head-and-shoulders above the competition.</p>
<p>He built a simple, yet functional widget that streams radio over the internet right to your WidgetFX dock.  No more reaching for a web browser to catch your favorite Belgium tunes on <a href="http://www.stubru.be/">StuBru</a>!</p>
<p>Check out Yannick&#8217;s blog to hear about the <a href="http://www.jfxperience.com/2009/09/27/widgetfx-contest-2nd-place/">contest results</a> and his <a href="http://www.jfxperience.com/2009/09/27/widgetfx-experiences/">experience with JavaFX</a>.</p>
<p>I am definitely looking forward to more great creations from Yannick!</p>
<h2>3rd Place &#8211; Infix WeatherWidget</h2>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.infix-systems.com/weatherwidget/InfixWeatherWidget.jnlp"><img class="alignright" title="WeatherWidget" src="http://widgetfx.org/portal/image/journal/article?img_id=15084&amp;t=1250601688514" alt="" width="191" height="129" /></a>Finally, third place went to Larry Dickson for his Infix WeatherWidget.  Besides his Weather widget, he also submitted 3 other widgets including a Clock, Calendar, and G-Mail widget, although his original creation was still the judges&#8217; favorite.</p>
<p>By the way, Larry submitted this widget before the start of the contest, which was perfectly valid.  Similarly, if you submit a widget anytime between now and the start of our next contest you will automatically be entered to win!</p>
<p>Congratulations to all of our winners!!!  I have already sent them their prizes, which were contributed through a generous donation from my publisher, <a href="http://www.apress.com/">Apress</a>.</p>
<div id="attachment_394" class="wp-caption aligncenter" style="width: 520px"><a href="http://widgetfx.org/portal/contest"><img class="size-full wp-image-394 " title="Widget-Contest-Banner" src="http://steveonjava.files.wordpress.com/2009/06/widget-contest-banner.jpg" alt="WidgetFX Developer Contest" width="510" height="127" /></a><p class="wp-caption-text">WidgetFX Developer Contest</p></div>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/widgetfx-contest-winners/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WidgetFX Contest Heating Up!</title>
		<link>http://steveonjava.com/widgetfx-contest-heating-up/</link>
		<comments>http://steveonjava.com/widgetfx-contest-heating-up/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 06:55:32 +0000</pubDate>
		<dc:creator>steveonjava</dc:creator>
				<category><![CDATA[widgetfx]]></category>
		<category><![CDATA[contest]]></category>

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


		
		
		
		With only 12 days left in the WidgetFX contest, there are a bunch of new entrants.  You can see them all on the Widget Library page:
http://widgetfx.org/portal/library
This includes Till Balendat&#8217;s TwitterFX Widget:

Takaaki Nakamura&#8217;s Bookmark and ColorPalet Widgets:
          
Henry Zhang&#8217;s Pac-Man Widget:

And also 4! widgets submitted by Larry Dickson:
       
       
Just as a reminder, here are the judging criteria:

Effective use of [...]]]></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%252Fwidgetfx-contest-heating-up%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22WidgetFX%20Contest%20Heating%20Up%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/widgetfx-contest-heating-up/";
		var dzone_title = "WidgetFX Contest Heating Up!";
		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://widgetfx.org/dock/launch.jnlp?arg=http://www.javafxgame.com/articles/widget/jfxgamepacmanwidget.jnlp"></a>With only 12 days left in the WidgetFX contest, there are a bunch of new entrants.  You can see them all on the Widget Library page:<br />
<a href="http://widgetfx.org/portal/library">http://widgetfx.org/portal/library</a></p>
<p>This includes Till Balendat&#8217;s TwitterFX Widget:</p>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.tillballendat.de/javafx/widgets/twitterfx/launch.jnlp"><img title="TwitterFX" src="http://widgetfx.org/portal/image/journal/article?img_id=14709&amp;t=1250251934503" alt="" width="180" height="222" /></a></p>
<p>Takaaki Nakamura&#8217;s Bookmark and ColorPalet Widgets:</p>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://tadotter.sourceforge.jp/Bookmark.jnlp"><img class="alignnone" title="Bookmark Widget" src="http://widgetfx.org/portal/image/journal/article?img_id=15008&amp;t=1250475776878" alt="" width="165" height="315" /></a>          <a href="http://widgetfx.org/dock/launch.jnlp?arg=http://tadotter.sourceforge.jp/ColorPalet.jnlp"><img title="Color Palette" src="http://widgetfx.org/portal/image/journal/article?img_id=14831&amp;t=1250317216668" alt="" width="139" height="176" /></a></p>
<p>Henry Zhang&#8217;s Pac-Man Widget:</p>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.javafxgame.com/articles/widget/jfxgamepacmanwidget.jnlp"><img title="Pac-man Widget" src="http://widgetfx.org/portal/image/journal/article?img_id=15039&amp;t=1250492634087" alt="" width="245" height="257" /></a></p>
<p>And also 4! widgets submitted by Larry Dickson:</p>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.infix-systems.com/widgets/infixclockwidget/InfixClockWidget.jnlp"><img class="alignnone" title="ClockWidget" src="http://widgetfx.org/portal/image/journal/article?img_id=15103&amp;t=1250604906386" alt="" width="127" height="137" /></a>       <a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.infix-systems.com/widgets/infixcalendarwidget/InfixCalendarWidget.jnlp"><img class="alignnone" title="CalendarWidget" src="http://widgetfx.org/portal/image/journal/article?img_id=15097&amp;t=1250604210874" alt="" width="127" height="137" /></a></p>
<p><a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.infix-systems.com/widgets/infixgmailwidget/InfixGMailWidget.jnlp"><img class="alignnone" title="GMailWidget" src="http://widgetfx.org/portal/image/journal/article?img_id=15091&amp;t=1250603298051" alt="" width="131" height="115" /></a>       <a href="http://widgetfx.org/dock/launch.jnlp?arg=http://www.infix-systems.com/weatherwidget/InfixWeatherWidget.jnlp"><img class="alignnone" title="WeatherWidget" src="http://widgetfx.org/portal/image/journal/article?img_id=15084&amp;t=1250601688514" alt="" width="115" height="77" /></a></p>
<p>Just as a reminder, here are the judging criteria:</p>
<ul>
<li>Effective use of WidgetFX features and APIs.</li>
<li>Practical utility of the widget as a pervasive prescence on the user&#8217;s desktop.</li>
<li>Broad use of JavaFX libraries and APIs.</li>
<li>Technical difficulty of implementation.</li>
<li>Community features of the widget that tie in with social networking or online services.</li>
<li>Originality of the submitted widget.</li>
<li>Quality of widget functionality and dock integration.</li>
</ul>
<p>(Also found on the contest details page: <a href="http://widgetfx.org/portal/contest">http://widgetfx.org/portal/contest</a>)</p>
<p>Good luck with the contest, and thanks for supporting WidgetFX!</p>
<div style="clear:both;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://steveonjava.com/widgetfx-contest-heating-up/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
