Friday Feb 07, 2014

James Webb Space Telescope on NetBeans

Great screenshot by Sean Phillips, Duke's Choice Award winner, that provides a visualization of the James Webb Space Telescope Contact Analysis. It uses JavaFX 8 and NetBeans Platform 8 as its basis.

Saturday Dec 28, 2013

New Book: "JavaFX Rich Client Programming on the NetBeans Platform"

Now built into Java and closely integrated with the NetBeans Platform, JavaFX 8 is today's state-of-the-art Java-based toolkit for creating advanced user interfaces, manipulating media, generating graphical effects and animations, and much more. This guide covers everything you need to know to create industrial-strength business applications with JavaFX 8 and NetBeans -- including how JavaFX impacts user experience design, graphical design, and development processes.

Focusing on JavaFX as the front end for tomorrow's most powerful rich client applications, this is the first book to cover the version of JavaFX 8 incorporated into the Java APIs with the official release of Java SE8, instead of obsolete preview versions.

Gail and Paul Andersen fully explain both JavaFX 8 and its relationships with the NetBeans Platform architecture, and systematically show Java developers how to use them effectively together. To support sophisticated real-world business development, they also thoroughly address JavaFX 8 interactions with backend databases, JavaEE, RESTful web services, and the Jersey client.

Release date is September 2014. More info here!

Sunday Dec 15, 2013

Quick Browser for NetBeans IDE 7.4

The Quick Browser I created sometime ago is now available for NetBeans IDE 7.4:

It's pretty handy, e.g., open NetBeans projects by clicking on them in the browser. Open individual files too:

Get it here:

More details on this are here:

Still same open issue as before, unresolved so far:

Monday Oct 21, 2013

OrbitFX: JavaFX 8 3D & NetBeans Platform in Space!

Here is a collection of screenshots from a proof of concept tool being developed by Nickolas Sabey and Sean Phillips from a.i. solutions. Before going further, read a great new article here written on by Kevin Farnham, in light of the Duke's Choice Award (DCA) recently received at JavaOne 2013 by the a.i. solutions team. Here's Sean receiving the award on behalf of the a.i. solutions team, surrounded by the DCA selection committee and other officials:

They won the DCA for helping facilitate and deploy the 2014 launch of NASA's Magnetospheric Multiscale mission, using JDK 7, the NetBeans Platform, and JavaFX to create the GEONS Ground Support System, helping reduce software development time by approximately 35%.

The prototype tool that Nicklas and Sean are now working on uses JavaFX 3D with the NetBeans Platform and is nicknamed OrbitFX. Much of the early development is being done to experiment with different patterns, so that accuracy is currently not the goal. For example, you'll notice in the screenshots that the Earth is really close to the Sun, which is obviously not correct.

The screenshots are generated using Java 8 build 111, together with NetBeans Platform 7.4. Inspired by various JavaOne demos using JavaFX 3D, Nick began development integrating them into their existing NetBeans Platform infrastructure.

The 3D scene showing the Sun and Earth objects is all JavaFX 8 3D, demonstrating the use of Phong Material support, along with multiple light and camera objects. Each JavaFX component extends a JFXPanel type, so that each can easily be added to NetBeans Platform TopComponents. Right-clicking an item in the explorer view offers a context menu that animates and centers the 3D scene on the selected celestial body. 

With each JavaFX scene component wrapped in a JFXPanel, they can easily be integrated into a NetBeans Platform Visual Library scene.  In this case, Nick and Sean are using an instance of their custom Slipstream PinGraphScene, which is an extension of the NetBeans Platform VMDGraphScene.

Now, via the NetBeans Platform Visual Library, the OrbitFX celestial body viewer can be used in the same space as a WorldWind viewer, which is provided by a previously developed plugin.

"This is a clear demonstration of the power of the NetBeans Platform as an application development framework," says Sean Phillips. "How else could you have so much rich application support placed literally side by side so easily?"

Tuesday Oct 15, 2013

YouTube: Eye-Tracking Data Visualization on the NetBeans Platform

A very interesting (silent) screencast shared in the comments to this blog yesterday by Paul Orlov from St. Petersburg State Polytechnical University, shows the visualization of data in a NetBeans Platform application for an eye-tracking study. Related to that, read this very interesting PDF document in the same domain, i.e., investigating the role of peripheral vision in visual attention in programming.

Anyway, the screencast itself is too good not to share with the world:

Of course, the charts that you see in the screencast come from JavaFX.

Saturday Oct 12, 2013

Improve Office Productivity with JavaFX and the NetBeans Platform

CaseLnk Case Management System, by CaseForge Technology, is a brand new piece of software for improving office productivity, user collaboration, and customer satisfaction. It supports cases, documents, tasks, events, processes, and contacts.

The technologies used are Java 7 with NetBeans Platform 7.3 and JavaFX.

NetBeans Visual Library API is used to design workflows:

The Case Editor window to input case information:

A window integrated with JavaFX for displaying weekly tasks and events:

JavaFX chart is used in reporting:

Much more info, including free trial and YouTube movies:

Friday Oct 04, 2013

EPUB Tool Fosfor Lives On

There have been some questions recently about Fosfor, the open source EPUB tool that I started creating some time ago. Well, it's been rearchitected from scratch and now includes the WYSIWYG editor based on JavaFX that I blogged about over the past days:

I ended up abandoning the WebView and went with the HTMLEditor, despite its problems, e.g., problems displaying images within HTML. Hoping to workaround that somehow, right now hardcoded for the screenshot above, probably need a File Protocol URLStreamHandler.

More info about this in the coming days and I will be updating the open source repository as well with all the new code.

Wednesday Oct 02, 2013

Thanks JavaFX: WYSIWYG HTML Editor for NetBeans IDE

In this very short screencast (a mere 44 seconds), you see one of my personal holy grails has come along quite far. It shows an initial implementation of integration between the JavaFX HTMLEditor component and the NetBeans IDE HTML Source Editor. Two way editing, synchronized between the two views (visual and source) is successfully demonstrated.

However, rather than rewriting the entire source file when a change is made in the JavaFX HTMLEditor, which is what currently happens, and which explains the slight delay when switching to the source view, it would be better if only the change were to be written into the file. That's the next step in this integration and probably the most challenging one.

The key pieces of this solution, following on from my blog entry from yesterday, where "obj" is the FileObject that the MultiViewElement is viewing to the user:

public void componentDeactivated() {
    FileLock fileLock = null;
    OutputStreamWriter osw;
    try {
        fileLock = obj.lock();
        OutputStream fout = obj.getOutputStream(fileLock);
        OutputStream bout = new BufferedOutputStream(fout);
        osw = new OutputStreamWriter(bout, "UTF-8");
    } catch (IOException ex) {
    } finally {
        if (fileLock != null) {

The above writes the current content of the JavaFX HTMLEditor into the file when the user switches to the source view.

In addition, I have implemented org.openide.filesystems.FileChangeListener on the MultiViewElement, with this implementation of fileChanged:

public void fileChanged(final FileEvent fe) {
    Platform.runLater(new Runnable() {
        public void run() {
            try {
            } catch (IOException ex) {

Friday Aug 23, 2013

JavaFX 8 DatePicker with Lambdas in NetBeans IDE 7.4

The JavaFX 8 API, which is bundled with JDK 8, contains a new UI control known as the DatePicker. The video below by Jim Weaver demonstrates how to use NetBeans IDE 7.4 Beta to create a JavaFX application from scratch that contains a DatePicker. It also touches on using Java lambda expressions to simplify event handling. In addition, the new date/time API is discussed, and the JFXtras CalendarPicker is demonstrated.

The blog post associated with this video is located in Jim Weaver's Rich-Client Java Blog at the following URL:

Monday Aug 19, 2013

Yet Another NetBeans Platform Application: Oracle SQL Developer Data Modeler 4.0

Yup, there's another NetBeans Platform application in Oracle's software stable. And it is Oracle SQL Developer Data Modeler 4.0:

Interesting that one can create diagrams and then export them. Maybe someone should look at those export formats and see whether one or more of them could be imported into NetBeans IDE and then converted into Java classes, methods, and so forth. At least the CSV format looks promising.

The flexible window system, as with Oracle SQL Developer 4.0 and Oracle JDeveloper 12c, is the NetBeans Platform window system, made possible by the fact that Oracle SQL Developer Data Modeler 4.0 is now integrated into the NetBeans Platform too, as evidenced by the NetBeans artifacts that you'll find in the installation directory:

Thursday Apr 18, 2013

Digital Forensics Platform on the NetBeans Platform

Autopsy is a graphical interface to The Sleuth Kit and other analysis tools. It is designed to be an extensible platform so that it can be an end-to-end digital forensics solution that incorporates plug-in modules from both open and closed source projects.  The focus of the application is to make a fast, easy to use, and extensible platform for digital forensic analysts.

The screenshot below shows that Autopsy provides a natural tree view interface to a disk image, as well as nodes that display common data views, such as all images, videos, and documents found on a system, with the ability to view those files using a hex view, string view, or even applicable modules (i.e., a media viewer):

Next, you can see that Autopsy has a timelining feature that graphically depicts activity on the system (events) over a specified period of time.  A user can "zoom in" and "zoom out" and focus on specific days or even years:

As can be seen above, Autopsy uses JavaFX. Currently, Autopsy uses JavaFX in its Timeline Viewer (for bar charts) and in its Media Viewer (for viewing images). The Autopsy team is very excited to start integrating JavaFX into Autopsy for several reasons.  Firstly, JavaFX components add a more modern look and feel to a slightly dated looking Swing and add the missing rich-client capabilities. Secondly, JavaFX simplifies the build and integration process as it is a drop-in replacement for some of the external libraries, with consistent functionality and behavior across the operating systems. In the near future, the Autopsy team would like to utilize the built-in WebKit HTML renderer and web browser, as the team begins to add support for HTML viewers that integrate with existing native Java components. In short, the Autopsy team is very impressed with JavaFX and has hopes to use it more in the future. They have found that the JavaFX programming model looks very familiar, is easy to get into, and components integrate nicely with Swing components.

Next, notice that Autopsy has multiple ingest modules that perform fast indexing and custom keyword searching that can be configured before processing a disk image.  This creates real-time results as keywords and patterns that are configured and are discovered while an analyst is performing other searching tasks. In addition, the indexing makes ad-hoc querying very fast during an investigation.

Next, you can see that when items of interest are found on a hard drive image, an analyst can use Autopsy to quickly categorize and tag the information to recall quickly later on or include in their report:

Finally, you can see that as a final step for an investigation, Autopsy includes flexible report generation in multiple formats, out of the box, including HTML, XML, and CSV:

How the NetBeans Platform Helps

The NetBeans Platform was chosen because an extensible platform was needed that other open source developers would write modules for. The aim is to make a complete end-to-end digital forensics solution, instead of people needing to use lots of small tools for various tasks, many of those tools without a GUI. The NetBeans Platform allows third-party modules to be contributed in three places in Autopsy:

  • Ingest Modules. Run on each disk image as they are added to the case and perform some type of analysis to find evidence.

  • Report Modules. Run after the analysis to create a final report in HTML, XML, etc.

  • Content Viewers. In the lower right (where you see the skull and hex views above) is a framework that can be extended to offer different modes of viewing different file types.

Saturday Apr 13, 2013

NASA Mission Operations on the NetBeans Platform (Part 3 of 4)

The GEONS Ground System Software (GGSS) is an extensible ground system software tool designed to support any space mission that uses GEONS as its onboard navigation system. The GGSS has been deployed into mission operations and is proceeding through a multiple phase feature release schedule and acceptance testing in preparation for mission support. The first mission slated to use this operational tool is the Magnetospheric Multiscale mission, which is scheduled to launch in October 2014 on an ATLAS V.

The ground system software continues to be developed alongside mission planning and other ground system software components at the Goddard Space Flight Center (GSFC), Greenbelt, MD, USA. The software will be deployed to the Mission Operations Center at the GSFC. Development of the GGSS and other MMS ground system components are led by Aerospace Industry contractor ai Solutions.

GGSS Ephemeris Visualization:

GGSS Uplink Command Differencing:

GGSS Matlab Data Product Automation:

GGSS Operational Testing and Product Generation Wizards:

What Does the Software Do?

The GGSS has been designed to not only support the MMS mission but be extended to support any mission using GEONS for onboard navigation. The GGSS provides a platform for leveraging existing Matlab and Python analysis scripts to QA daily data product generation. An assortment of wizards guarantees simple and easy workflows. Plugins have been developed that provide 3D rendering of orbital ephemeris data using NASA’s GOTS product WorldWind. Day-in-the-life operational workflows are captured as single projects which are committed to repositories for storage and retrieval for offline scientific analysis.

How Does the NetBeans Platform Help?

The NetBeans Platform module system allows for clean encapsulation of disparate features. This makes acceptance and regression testing much simpler and efficient. The wizard framework reduces risk of failure of daily operations. The NetBeans Platform support for custom projects and file types makes organization of data simple. Coupling that with seamless integration of version control systems allows analysts to access and exchange operational data in a manner with which software developers are familiar.

The on-mission development costs for these components were significantly reduced from projections by using the NetBeans Platform module system. Using the NetBeans Platform as a base allowed developers to leverage an existing collection of NetBeans plugins developed internally by ai Solutions, called the Polaris Platform. Reusing Polaris plugins saved an estimated 35% development time through the first two years of development.

For the most recent release (March 2013) the GGSS performs a significant amount of data generation using a custom Matlab toolbox developed explicitly for the mission. The GGSS makes strong use of the built-in asynchronous processing support that is provided by the NetBeans Platform, especially the RequestProcessor support. This allows Matlab-based data operations to be requested by the user in parallel with other GUI actions. When complete, data vectors can be extracted from the Matlab runtime via a custom proxy directly into the JavaFX charts. The next release will see an expansion of the JavaFX chart components for historical trending using the ai Solutions developed Matlab Dashboard plugins, which are all part of the Polaris Platform.

All the info and text above was provided by Sean Phillips (@SeanMiPhillips), who is a Software Engineer and NASA contractor with aerospace experts ai Solutions.

Friday Apr 12, 2013

NASA Mission Operations on the NetBeans Platform (Part 2 of 4)

The NASA Goddard Flight Dynamics Mission Services Monitor (AKA System Console) provides multiple mission post-launch support for flight dynamics data services. System Console was developed by NASA as part of the Goddard Flight Dynamics Modernization effort in 2011, led by Aerospace Industry contractor ai Solutions. The software is deployed in the Flight Dynamics Facility at the Goddard Space Flight Center, Greenbelt, MD USA.

What Does the Software Do?

System Console serves as a facility mission operations health monitor, data forwarder and logger. At a glance operators and analysts can determine what mission software services are connected to the facility message bus, GMSEC. Detailed information on whom and what is connected to the various mission support data services can be searched and examined. Historic records and detailed messages can be queried from databases and compared to current information.

How Does the NetBeans Platform Help?

The rich support for Node Trees via the Explorer Views makes displaying nested services simple. The straightforward MVC architecture of the NetBeans Platform makes managing the multitude of asynchronous background communication simple. The NetBeans Platform allows for developers to produce software that is very lean and easy to maintain.

All the info and text above was provided by Sean Phillips (@SeanMiPhillips), who is a Software Engineer and NASA contractor with aerospace experts ai Solutions.

Thursday Apr 11, 2013

NASA Mission Operations on the NetBeans Platform (Part 1 of 4)

The Deep Space Flight Dynamics Support System (DSFDSS) is a proposed prototype for auxiliary ground system support on Lagrange point missions. Lagrange point missions and similar deep space missions have different mission planning profiles than standard Low Earth Orbit missions. While COTS and custom ground system software exist that can provide this planning, standard data services available at most NASA Mission Operations centers are seldom integrated with the data products produced by these tools. The DSFDSS will bridge this gap reducing downstream complexity for offline scientific analysis.

The initial prototype was developed in support of the Deep Space Climate Observatory (DSCOVR). The DSCOVR mission (PDF) is scheduled for a SpaceX launch in 2014. Mission planning proceeds at the Goddard Space Flight Center, Greenbelt, MD, USA. The software will be deployed in the NOAA Satellite Operations Center located in Suitland, MD, USA and backed up in the Flight Dynamics Facility at GSFC NASAA. Development of the DSFDSS is led by Aerospace Industry contractor ai Solutions.

Orbit Compare:

Performance Box Plots:

Thruster Scatter Plot Matrices:

What Does the Software Do?

The DSFDSS has been designed to not only support the DSCOVR mission but all similar deep space/Lagrange missions in the future. The DSFDSS provides a platform for leveraging existing analysis scripts, data file comparison and conversion tools using an assortment of wizards. Plugins have been developed that provide 3D rendering of orbital ephemeris data using NASA’s GOTS product WorldWind. Complex visualizations of day-in-the-life data products are developed as custom projects and then committed to team repositories.

How Does the NetBeans Platform Help?

The NetBeans Platform allowed for a rapid prototype to be bootstrapped on an otherwise thin mission budget. The wizard framework makes daily operational procedures simple and greatly reduces risk of failure. The docking system makes drag and drop actions simple allowing for highly interactive analyst workflow. The simplicity of JavaFX interop facilitated adding non-traditional web-based visualizations seamlessly for an enhanced overall analysis and understanding.

All the info and text above was provided by Sean Phillips (@SeanMiPhillips), who is a Software Engineer and NASA contractor with aerospace experts ai Solutions.

Friday Mar 08, 2013

Python in NetBeans IDE 7.3

Via this update center (which you can register in Tools | Plugins | Settings), you'll find you have the Python plugin available in NetBeans IDE 7.3:

Lots of features are provided ( but I especially like the ability of opening existing Python projects, such as the open source Cheetah templating engine, which I succeeded to build, as can be seen here:

Tuesday Feb 19, 2013

YouTube: JavaFX and the NetBeans Platform


Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.


« April 2014