TreeTableView and sorting

I have a TreeTableView in my application that I use as a comment panel. Users can create new thread, reply to each other etc. These comments are coming from a server and I need to refresh that panel quite often. I recently discovered that a sorted column before a refresh, was not sorted after. Let’s understand the issue, and resolve it.

Continue reading “TreeTableView and sorting”

Change your application theme dynamically.

I recently spent quite some time on a trivial (apparently not) issue. I wanted to deliver custom themes for my application, and allow users to radically change the look with a click in a Menu.

The difficulty went with the fact that I wanted to allow people to modify my application JAR, in order for them to ship their own theme.

Here is how I’ve done it.
Continue reading “Change your application theme dynamically.”

About caching and optimizing your application.

Working on the SpreadsheetView taught me that I had to profile my application on a regular basis. In fact, I always discover something.

But it’s not always simple to find bad implementation or memory leaks. For example, I rarely put some images inside my SpreadsheetView. I recently discovered a SpreadsheetView, built by a colleague, with the same image repeated on all rows. And just like that, you take up to 35% of your time fetching and displaying images!
Continue reading “About caching and optimizing your application.”

Close options for TabPane

Currently, you have three closing options for a TabPane, that you can set with TabClosingPolicy :

  • All_TABS : All tabs will have the option to be closed and have the cross displayed in the upper-right corner.
  • SELECTED_TAB : Only the selected tab will have the option to be closed.
  • UNAVAILABLE : Tabs can not be closed by the user.

Continue reading “Close options for TabPane”