I'll post several links to illustrate the problem; because I believe the refresh button placement is not the only problem...

The application is called grappa-debugger; its only feature, for now, is to be able to load trace files generated by a tracing listener.

Now, it has the ability to load huge trace files as well as small trace files with no distinction; some trace files barely have 100 parsing nodes, but I do have one with 22 million ones, so those are really two extremes.

The only doc I have available of it right now is here. And the problem is with this image, extracted from the link above:

enter image description here

Now, the refresh button is currently pressed; it is inactive unless the refresh is complete, and do note that this can be done while the loading is still in progress.

So, I'm no UI designer at all, have zero knowledge about ergonomics etc but there are at least three problems as I see it:

  1. the button and the loading status are too far apart;
  2. there is no visual clue anywhere as to whether the loading of one particular tab is complete or in progress;
  3. when the loading is complete, the toolbar at "the top", that is, right below the menu bar, disappears without notice.

How would you change that design so that, for starters, the user knows what is happening there? (I can fix 2; what I'm not sure is how to fix 1 and 3)


Having the button up top is a good place considering the main function of this program.

Ideally refresh links appear in context next to stale data

If you can refresh only a part of the data and show it as soon as possible while other data is still being generated then that is ideal. You can then add a refresh link to each card in a consistent location such as the upper right corner and one item can be refreshed while everything else doesn't change. For convenience you would also add a Refresh All link at the top of the page.

It sounds like partial data loading isn't possible in this case and you either have all or none of the data to display.

Inform the user but don't block them while updating

As long as the user can see that progress is being made while refreshing the data then it is clear to most people that the current values might not be accurate until the update completes.

It is better if the user interface remains responsive and continues to work rather than blocking the user until the refresh is completed.

Show a percent completed and time remaining if possible

You are right about showing the refresh status next to the refresh button but it's okay to put all the details in the status bar at the bottom or even in a tooltip.

The critical information to show up top is percent completed and time remaining

enter image description here

  • Well, partial refresh is indeed possible; now my problem here would be a lack of knowledge of JavaFX itself. Also, seeing your edited image (thanks for that!), do you actually believe it to be useful to have the load percentage information (which is computable) and the detailed information that far apart? Other comments to come...
    – fge
    Feb 20 '15 at 21:49
  • It really depends on your user base. If those details are important to almost everyone then include those up top as well. Having them far away isn't a big deal as long as only a few power users even care about them.
    – DaveAlger
    Feb 20 '15 at 21:58
  • Hmm, OK, your arguments make sense. Now, what do you suggest should be done when the load is actually complete? Replace the Refresh button with a Hide maybe (and of course change the initial message)?
    – fge
    Feb 20 '15 at 22:11
  • 1
    @fge Is it possible to display a last refreshed time so user have some way of determining the recency of the data summary? On that note: "Click to refresh" text right now isn't very useful when you already have a clear "Refresh" button. How about something like "Last Refreshed: 1 min ago [Refresh]" and hide the load bar. If you can't update the duration bit, a timestamp can work too.
    – nightning
    Feb 20 '15 at 23:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.