Open Source JavaFX Now!

Steve On Java

Hacking JavaFX and Java with Agility
  • rss
  • Home
  • About
  • Contact
  • SvJugFX
  • Open Source JavaFX Petition

Petition to Open Source JavaFX

steveonjava | July 16, 2010

At last night’s Silicon Valley JavaFX User Group event, I announced a petition to Open Source the JavaFX Platform.  This is a petition from the Java and JavaFX Community directed to the management of Oracle Corporation. The goal of the petition is to increase the viability of the JavaFX platform to the benefit of both the community and Oracle.

To the Leaders, Management, and Board of Directors at Oracle Corporation,

We the undersigned formally request that Oracle Corporation release the entire JavaFX Platform as open source software available for modification and reuse by individuals, educators, and corporations.

…We believe that an essential part of the future success of this platform is to release it as open source software. … In our estimation, the increased adoption of JavaFX will make the platform even more profitable for Oracle than it currently is as a proprietary technology.

…read more

This petition has been embraced by community and industry leaders alike.  Here are some quotes from leaders in the JavaFX community:

Jim Weaver
JavaFX holds the potential of bringing back rich-client Java, after fifteen years of force-fitting the Web to be an application execution environment.   Open-sourcing JavaFX and related deployment technologies will help rescue users and developers from continuing to settle for far less than what could be experienced with rich-client Java.

Peter Pilgrim
JavaFX is still a fantastic solution to be portable, cross-platform, a technology which runs across multiple deployment targets: desktop, mobile and other embedded devices and across multiple operating systems. An Open JavaFX will allow innovation to take place outside of Oracle completely and yet I also believe that the repository, the service / provider owner, intellectual property must be paid or monetised as well. I believe that people, individuals, groups and companies will recognise the work of those who innovate. It is possible to monetise JavaFX.

If you adding your name to the list of signatures, please visit the petition signatory page here:

.
Sign the Petition

.

JavaFX was first announced three years ago at JavaOne 2007.  We would like to be able to present this petition to the management of Oracle at JavaOne on the 3rd event anniversary of this great technology.

.
 
Comments
2 Comments »
Categories
JavaFX
Tags
JavaFX, open source, petition
Comments rss Comments rss
Trackback Trackback

Bay Area JUG Round-Up and Stuart’s Hands-on JavaFX Videos Available

steveonjava | June 17, 2010

I am pleased to announce that we have a couple new videos available on the Silicon Valley JavaFX User Group (SvJugFx) video site. Here is a link to the landing page where you can watch these videos as well as all our previous sessions:

http://web.ubivent.com/svjugfx.html

The first new video is a Hands-On JavaFX Lab given by Stuart Marks, core JavaFX team member, and regular SvJugFx attendee. This was our most successful meeting so far for the local audience, because it filled in the gap between the very technical rich presentations we started with and the experience level of the attendees. The entire flood tutorial was published as an HTML document, but it is much more entertaining to see Stuart do it first hand:

Hands-on JavaFX:  http://jnlp.ubivent.com/jnlp/eventid=10/guest=1/path=doc:129,doc:128,doc:210

The second was the wildly popular Bay Area JUG Round-Up event.  All the Bay Area user groups cooperated to host a massive event with a live recording of the Java Posse.  Oracle sponsored the event, with an introduction by Justin Kestelyn and update on Java.net from Sonya Barry.  And of course the Java Posse did an amazing job working the crowd with some hilarious techie humor.

Justin Kestelyn: http://jnlp.ubivent.com/jnlp/eventid=10/guest=1/path=doc:129,doc:128,doc:217,goto:v:-0

Sonya Barry: http://jnlp.ubivent.com/jnlp/eventid=10/guest=1/path=doc:129,doc:128,doc:217,goto:v:-1

The Java Posse: http://jnlp.ubivent.com/jnlp/eventid=10/guest=1/path=doc:129,doc:128,doc:217,goto:v:-2

For our meeting next month we have the esteemed Max Katz coming to speak on Enterprise JavaFX.  He will demonstrate how to use the open-source Flamingo framework to connect a JavaFX application to an enterprise backend using JBoss Seam.  For those of you who don’t know, Exadel also develops an Eclipse plug-in for JavaFX, which he will be using for all his coding examples.  It should be an exciting event, so please sign-up to attend in person or online:

Enterprise JavaFX with Max Katz:  http://www.svjugfx.org/calendar/13605800/

 
Comments
1 Comment »
Categories
Events, JavaFX, SvJugFx, Video, presentation
Tags
java, java posse, JavaFX, oracle, round-up, SvJugFx
Comments rss Comments rss
Trackback Trackback

Building Data Rich Interfaces with JavaFX

steveonjava | June 2, 2010

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 the benefit of folks who couldn’t make it out to Zurich this week. The agenda for the talk was as follows:

  • JavaFX Technology Stack
  • Data Binding
  • JavaFX 1.3 Controls
  • Control Styling
  • JavaFX 1.3 Layouts
  • Web Service Integration
  • JFXtras Data-driven ControlsApropos Demo

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.

Without further ado, here are the slides from today’s talk:

You can also download the slides as a PDF.

 
Comments
5 Comments »
Categories
JavaFX, jfxtras, presentation
Tags
controls, JavaFX, jazoon, jfxtras, layouts
Comments rss Comments rss
Trackback Trackback

JavaFX Talks Accepted

steveonjava | May 22, 2010

I am honored to be accepted by some great conferences to speak on JavaFX.  Each of the talks I am giving is unique, which means more work for me, but is a great opportunity to talk about some different topics that I think are important for folks using JavaFX.

First up is Jazoon in Zurich, Switzerland on June 1-3.  I have heard great things about this conference from folks who have attended in past years, and have already heard from some folks who will be attending my talk.  The topic for my session will be Building Data Rich Interfaces with JavaFX.  I have some good content lined up from my open source projects (actually too much content), so it should be a great session.

Next I will be speaking at JavaOne in my hometown of San Francisco on September 19-23.  Oracle is pulling out all the stops for this conference, taking over a full block of Mason Street as the JavaOne “Zone”.  They will be putting up a big tent with videostreaming and other festivities, in addition to the 4,000 square feet of space dedicated to talks and sessions.  For those of you who are not aware of the magnitude of Oracle, here is a shot of what they have done in past years for Oracle Open World:

I am fortunate enough to be able to co-present 2 Technical Sessions and 2 BOFs at JavaOne 2010:

Technical Session 1: Pro JavaFX: Developing Enterprise Applications
Co-presented with Jim Weaver

Technical Session 2: Take Control of JavaFX
Co-presented with Jonathan Giles from the JavaFX Control Team

Birds of a Feather Session 1: JFXtras: JavaFX Controls, Layouts, Services, and More
Co-presented with Dean Iverson and the rest of the JFXtras Team

Birds of a Feather Session 2: JavaFX Author JAM
Co-presented with Jim Weaver, Jim Clarke, Dean Iverson, and many other JavaFX authors (to be announced)

If you haven’t already, it is not too late to book your ticket for JavaOne.  This will definitely be a year you won’t want to miss!

 
Comments
2 Comments »
Categories
Announcements, Events, JavaFX, jfxtras
Tags
JavaFX, javaone, jazoon
Comments rss Comments rss
Trackback Trackback

Announcing the Apropos Project

steveonjava | May 3, 2010

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 corporate information.  The final release will include a test bed of public data, which can be used for display and testing.

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 JFXtras features, such as the XTableView.

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 Rally Community Edition, 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.

If you are interested in helping out with this project, please contact me.  I will have limited bandwidth until after the initial launch, but after that would love to scale up this project with interested parties.

Here is the full presentation, which includes additional screenshots of Apropos at the end (slides 15-19):

 
Comments
1 Comment »
Categories
Agile, Announcements, JavaFX, jfxtras, presentation
Tags
Agile, apropos, JavaFX, jfxtras, kanban, lean
Comments rss Comments rss
Trackback Trackback

JavaFX 1.3 Top 10

steveonjava | April 22, 2010

JavaFX 1.3 has just gone live on JavaFX.com.  This release is deceptively small, but has an enormous number of changes under the hood.  In this post I will take you through the Top 10 major features, giving you background information I learned from working with the JavaFX team, and flooding you with details on interesting tidbits you might otherwise miss.

JavaFX 1.3 Top 10 Features

1. New Controls

Read the rest of this entry »

 
Comments
20 Comments »
Categories
Announcements, JavaFX
Tags
JavaFX, javafx 1.3, top-10
Comments rss Comments rss
Trackback Trackback

JFXtras 0.6 Final Released

steveonjava | April 5, 2010

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 the very latest release (currently JavaFX 1.2.3), which can be downloaded from JavaFX.com.

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 follow my blog.

JFXtras Functionality

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.

Data-Driven Controls

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.

XTableView (browse demo source)

Read the rest of this entry »

 
Comments
39 Comments »
Categories
Announcements, JavaFX, jfxtras
Tags
JavaFX, jfxtras, open source, release
Comments rss Comments rss
Trackback Trackback

Launching Hyperlinks from JavaFX (including Mobile)

steveonjava | March 4, 2010

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 The Easy Way Out now).  Finally, I will show how you can do the same thing for JavaFX Mobile applications.

A Tale of 3 APIs

There are 3 different ways that you can launch hyperlinks in Java/JavaFX. It helps to have an internet connection such as broadband 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:

AppletStageExtensionWeb Start BasicServiceDesktop.browse
Works in AppletYesYesYes
Works in Web StartNoYesYes
Works in ApplicationNoNoYes
Works on Java 1.5YesYesNo
Can Set TargetYesNoNo
Default Target_self_blank_self

AppletStageExtension

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 AppletStageExtension javadocs):

Target ArgumentDescription
"_self"Show in the window and frame that contain the applet.
"_parent"Show in the applet’s parent frame. If the applet’s frame has no parent frame, acts the same as “_self”.
"_top"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”.
"_blank"Show in a new, unnamed top-level window.
nameShow 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.

Web Start BasicService

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 “_blank”.

Here is a small code excerpt showing how you would call the Web Start BasicService from your JavaFX code:

def basicService = ServiceManager.lookup("javax.jnlp.BasicService") as BasicService;
basicService.showDocument(new URL(url));

Desktop.browse

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’t work from JavaFX without a little hacking.

The quick and dirty hack is to modify your JavaFX distribution to include the rt.jar from Java 1.6 as explained in this earlier post.  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).

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!).

Since the code is easier to follow without reflection, I will show that first:

Desktop.getDesktop().browse(new URI(url));

And here is the munged version with reflection:

try {
    def desktopClazz = Class.forName("java.awt.Desktop");
    def desktop = desktopClazz.getMethod("getDesktop").invoke(null);
    def browseMethod = desktopClazz.getMethod("browse", [URI.class] as java.lang.Class[]);
    browseMethod.invoke(desktop, new URI(url));
} catch (e) {
    println("Upgrade to Java 6 or later to launch hyperlinks: {url}");
}

The Easy Way Out

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 JFXtras that takes care of all the plumbing for you.

There is a new JFXtras class called BrowserUtil that has a very simple API:

BrowserUtil.browse(url);

or

BrowserUtil.browse(url, target);

It is that simple…  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.

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:

XHyperlink {
    text: "Oracle's Homepage", url: "http://oracle.com/"}
}

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 repo.  Otherwise we are working on a release, which I will announce on this blog shortly which you can follow.

What about JavaFX mobile?

None of these desktop techniques actually work on a mobile device, so this is not a 100% solution yet.

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:

def midlet = com.sun.javafx.runtime.adapter.MIDletAdapter.getMidlet();

And then you can call platformRequest to launch a browser on the mobile device:

midlet.platformRequest(url);

Note: This requires use of private APIs, so this may not work in future JavaFX releases.

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.

 
Comments
6 Comments »
Categories
JavaFX, JavaFX Mobile, jfxtras
Tags
hyperlinks, JavaFX, JavaFX Mobile, jfxtras
Comments rss Comments rss
Trackback Trackback

Hinkmond’s JavaFX Mobile Dojo

steveonjava | February 19, 2010

In case you missed the big event last week, I have finished post-processing and uploading the video.  We took the quality up a notch by getting a direct screen capture from the presenter laptop.  This means that you will not only get crystal clear slides, but also full-screen demos and a nice tight head-shot of the presenter.  This moves our video setup firmly up from a Level 4 to a premium Level 1 operation as detailed in Stephan Janssen’s blog.

Without further ado, here is the Parleys version of Hinkmond’s JavaFX Mobile Dojo talk:

I got a lot of requests for just the slides last time, so I am also making them available here:

Finally, a quick plug for our next SvJugFx event.  We will be doing a double feature with folks from the Java Store and JFrog Artifactory presenting back-to-back.  Even if you plan to attend online, make sure to sign-up here:
http://www.svjugfx.org/calendar/12559455/

 
Comments
6 Comments »
Categories
Events, JavaFX, SvJugFx
Tags
hinkmond wong, JavaFX, mobile, SvJugFx
Comments rss Comments rss
Trackback Trackback

JavaFX Layout Secrets

steveonjava | December 18, 2009

I am very pleased to have Amy Fowler (Aim) presenting on JavaFX Layouts at our January Silicon Valley JavaFX Users Group (SvJugFx).  For those of you who don’t know Aim, she was a founding member of the Swing team, has done some Rock Star presentations at JavaOne, and is a core member of the JavaFX team focused on all things layout.

If you are doing any JavaFX development at all, this is an event you won’t want to miss.  The presentation is on January 13th and you can sign-up on the SvJugFx website here:

Click to Sign-Up

We will also be streaming the event live from Santa Clara, so if you don’t live nearby make sure to join us online for the event.  I actually think the folks watching it online are at an advantage, because they get all the inside information in the chat window from JavaFX luminaries like Jim Weaver, Dean Iverson, and Jonathan Giles.

For those of you who missed our December event, we just finished posting Richard Bair’s December talk on JavaFX entitled “Intro to JavaFX – A Rich Client Platform for All Screens.”  You can view it on Parleys.com complete with synchronized slides by clicking on the image or link below:

Richard Bair Presenting on JavaFX at the SvJugFx

Click to View Presentation

I hope to see you at our next event!

 
Comments
4 Comments »
Categories
Events, JavaFX, SvJugFx, presentation
Tags
JavaFX, jug, SvJugFx
Comments rss Comments rss
Trackback Trackback

« Previous Entries

Publications


Upcoming Talks



Categories

  • Agile (1)
  • Announcements (15)
  • contest (3)
  • Events (17)
  • JavaFX (37)
  • JavaFX Mobile (1)
  • jfxtras (13)
  • Liferay (2)
  • presentation (7)
  • pro javafx (2)
  • SvJugFx (8)
  • Uncategorized (21)
  • Video (4)
  • widgetfx (9)

Affiliations

Awards

2009 JavaOne Rock Star!

rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox