As promised, I am focuses on tight iterations of Dex.  The latest release of Dex can be downloaded here.

This update has been focused on:

  • Usability
    • You can now cut/paste multiple items within a workflow
    • Better icons for most tasks.
    • Task are tied to extensive online documentation via getbook.
    • Drag-And-Drop should work more reliably now.
  • Inline/Online Documentation
    • Most task are now documented.
    • More documentation being added daily.
  • Bug fixes
    • Too numerous to name.
  • Visualizations
    • NVD3 chart refresh
      • Multiple Horizontal Bar Chart
    • C3 chart refresh
      • C3 Scatterplot
    • Google
      • Diff Bar Chart
      • Diff Pie Chart
      • Timeline
    • Dex Charts
      • Radar Chart (Rough draft)


  • Pat

About patmartin

I am a coder and Data Visualization/Machine Learning enthusiast.
This entry was posted in General. Bookmark the permalink.

7 Responses to Dex

  1. Merry says:

    Hey Pat,
    Dex is super sweet in data vis platform! Love your powerful features.

    I’m a grad student working on data vis as well, and I’m also using JavaFX for basic GUI controls and charting utilities. I did a lot optimization for JavaFX plotting performance, but finally suffered the plotting limit for about 20,000 data point nodes. I find that DyGraphics.js is specifically designed for very large datasets so that I wanna integrate it into my JavaFX project.

    Would you mind give me some suggestions on how to integrate a javascript visualization lib(like,DyGraphics) into a JavaFX desktop application? I see there’s a possible solution by using the webview node in JavaFX for the bridging. I wanna give it try, and here I come for your suggestions from Dex’s experience.

    All Best,

    • patmartin says:

      A WebView is really the way to go. Within Dex, visualizations are generally templates. More specifically, Groovy Templates.

      Within Dex I share a few key data structures with the templating mechanism, and have it render into a string. The string is simply HTML content, javascript and all.

      Once within a string, I simply use the WebView’s loadContent method to load it into a WebView browser.

      You can use executeScript to pass data back and forth from javascript/java. You can actually call java directly from javascript.

      Good luck!

      – Pat

      • Merry says:

        thanks a lot, Pat. Though I don’t quite understand how to apply html as a template for setting up data structure and not familiar with web frameworks, I’ll start my explorations in designing some data parsers and info-graphics. I will post my updates on my site as well. Thanks again for your kind suggestions.


  2. patmartin says:

    The template is really irrelevant, basically the HTML is stored in a string the the WebView.loadContent(myString) is called to render the html in the webview window.

    You can share information directly through javascript/java interfaces in JavaFX, but i cut corners and simply inject the data into an HTML template rendered to a string then displayed through webview. But don’t worry about all that 🙂

  3. Is it possible to access the source code so that others might contribute and/or use parts of the library in other open source projects?

    • patmartin says:

      Not yet. I’ve been meaning to github everything, but I’m a github neophyte and I’m dreading the migration of such a large base of code. It’s on my to-do list for this year though.

      • wbuchanan says:

        Hey Pat,

        Are you using some other VCS at the moment? There are a few different extensions to Git that people have built out to interface with subversion, mercurial, cvs, and others. In this case, the easiest thing to do would be to use one of those plugins to “clone” the repository with git (this will initialize the git repository and persist the existing version history). Once you have that, you would create the new repository on GitHub and then push the cloned repository into GitHub.

        If you’ve just saved things in different directories or something similar, you may want to take a different approach. Create the generic directory with the oldest versions of the files you have. From the command line you would enter:

        git init .
        git commit -a -m “First commit message”

        That will initialize the repository and commit the initial set of files. Then you could copy and paste the next iteration of files into the same directory (choosing to replace all), and repeat the second line (commit all of the changes with the message you pass). The last step is the same as above (i.e., create the repository on GitHub and then push the contents into it).

        I’ll try to find a few links/references that I’ve found to be fairly useful in terms of both showing the higher level syntax and explaining some of the approaches to how git can be used/was intended to be used.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s