mihosoft.eu
Programming, Art, Linux, Free Software…
mihosoft.eu
Navigation
  • Home
  • VRL-Studio
  • SonoAir
  • Monochrome Wars
  • About
  • Impressum
  • Datenschutz
You are here: Home › Featured › Workflow Visualization With VWorkflows & JavaFX [Part 1]

Workflow Visualization With VWorkflows & JavaFX [Part 1]

April 20, 2013 | Filed under: Featured, Java, JavaFX, Uncategorized, VRL and tagged with: graph, Java, JavaFX, JFXtras, JInternalFrame, MDI, VRL-Studio, window control, Window Node, Window System

JavaFX is ideal for creating interactive visualizations. We currently migrate the user interface of VRL-Studio to JavaFX. Therefore, I started a project that allows to visualize interactive workflows/graphs with JavaFX & JFXtras. In this article I’d like to give an introduction to the first draft of the library VWorkflows.

Demo:

UPDATE [23.05.2014]: This tutorial has been updated to work with recent versions of VWorkflows.

VWorkflows Needs Your Contributions!

Are you interested in creating flow visualizations with JavaFX? Currently, the library is in an early state. So this is ideal for contributing ideas on how the library should be designed. We’d love to integrate your contributions. Feel free to contact us!

Tutorial 01

Here comes the first tutorial/demo:

Creating a Flow

To create a flow, simply call the static factory method:

// create a flow controller
VFlow flow = FlowFactory.newFlow();

You can easily add nodes to the flow:

// add nodes to the flow
VNode n1 = flow.newNode();
VNode n2 = flow.newNode();

The result would look like this:

VWorkflows Nodes

VWorkflows Nodes

To allow connections between the nodes simply add the corresponding input/output capabilities:

// allow incoming connections of type "data"
n1.addInput("data");
// allow outgoing connections of type "data"
n1.addOutput("data");

After doing the same with node ‘n2’ the flow looks like this:

VWorkflows Nodes With Connectors

VWorkflows Nodes With Connectors

The user can create connections via drag & drop. Of course, the api can do this as well:

// add `data` connection between `n1` and `n2`
flow.connect(n1, n2, "data")

This is how that will look like:

Connected Nodes

Connected Nodes

To create the JavaFX user interface as shown in the images simply create a FXSkinFactory object:

// create skin factory for flow visualization and add it as child of parentContainer
FXSkinFactory fXSkinFactory = new FXSkinFactory(parentContainer);

// generate the ui for the flow
flow.setSkinFactory(fXSkinFactory);

Demo application

Download the tutorial code from GitHub.

Requirements:

  • Java 8
  • Optional: Netbeans >=7.4 with Gradle Plugin

Building & Running:

To compile from the command line just type ./gradlew build. Run it with ./gradlew run.

Next steps

Download VWorkflows and create your own flow visualization apps/controls.

Stay tuned and follow me on Twitter

To be continued…

Update: here is part 2

Did you like this article? Share it with your friends!

Tweet

Written by admin

Visit my Website Follow me on Twitter

5 Responses to "Workflow Visualization With VWorkflows & JavaFX [Part 1]"

  1. Java desktop links of the week, April 22 | Jonathan Giles says:
    April 22, 2013 at 01:40

    […] mihosoft have blogged about workflow visualization With VWorkflows & JavaFX. […]

  2. Martin says:
    May 28, 2013 at 10:21

    Very cool 🙂

  3. amn says:
    December 18, 2013 at 19:26

    I want to make a data modeler tool. How do I add components to that node?

    1. miho says:
      December 20, 2013 at 10:36

      See part 5 of the vworkflow tutorials: https://mihosoft.eu/?p=827#comment-633. There is also a wiki that contains a growing number of code snippets: https://github.com/miho/VWorkflows/wiki/FAQ

  4. amn says:
    December 20, 2013 at 14:03

    I’m so glad for I discovered this place 🙂 ben burdan herşekil yürürüm artık hehe! No translation of it 😀 thanks again…

Comments are closed.

Pages

  • About
  • Datenschutz
  • Impressum
  • Seminar 2019

Categories

  • 3D Printing
  • Any-Key
  • Art
  • C/C++
  • Devoxx
  • Digital Painting
  • Featured
  • IoT
  • Java
  • JavaFX
  • Javakurs 2015
  • JavaOne
  • Linux
  • Linux on Apple Hardware
  • Linux: Daily Usage Tips
  • Mobile Apps
  • Mobile Devices
  • Programming Languages
  • Repair Things
  • Science
  • Sonos
  • Teaching
  • Uncategorized
  • Virtual Reality
  • VRL

Tags

3D 3D Printing 3d visualization AirSonos Apple Music Devoxx Devoxx 2013 gradle graph iOS Java Java 8 JavaFX JavaFX 8 JavaOne JavaOne 2013 jdk9 JFXtras JInternalFrame Linux MacBook MDI mobile apps OpenDive OpenJDK OpenJFX Open Source Performance scientific visualization SonoAir Sonos Ultimaker Virtual Reality Virtual World visual programming VPlot VRL VRL-Studio VWorkflows window control Window Node Window System workflow workflows X11

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

JavaOne Rockstar

JavaOne Rockstar
Follow @mihosoft

Recent Posts

  • Native JDK9 Application Bundles
  • Running C code from Java via VTCC
  • SonoAir finally supports macOS High Sierra!
  • JavaOne 2017 Community Keynote Artwork
  • The JGrounds App: better teaching apps for Java 9 [BOF5047]

Recent Comments

  • ¿Ventanas completamente personalizadas de JavaFX? - Fallosweb.com on VFXWindows
  • JavaFX entirely customized windows? – w3toppers.com on VFXWindows
  • Volel Mondesir on Adding Custom Icons to JFXtras Window Control (VFXWindows)
  • Volel Mondesir on Adding Custom Icons to JFXtras Window Control (VFXWindows)
  • Switching between different JDK versions in Windows - ErrorsFixing on JSelect: switch between different JDK versions

Archives

  • February 2018
  • October 2017
  • September 2017
  • February 2017
  • June 2016
  • May 2016
  • November 2015
  • September 2015
  • July 2015
  • March 2015
  • September 2014
  • March 2014
  • February 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • November 2010
  • February 2010
  • November 2009
  • October 2009
  • February 2009
  • August 2008
  • May 2008
  • April 2008
  • March 2008
Privacy & Cookies: this site uses cookies. By continuing to use this website, you agree to their use.
To find out more, see here: Impressum & Datenschutz

© 2025 mihosoft.eu