Slicker Widgets for ProM

I’ve already earlier whined about SlickerBox, the look-and-feel (L&F) toolkit used in ProM.  Not how it looks, as that’s pretty neat, but that it is not a real L&F using Java’s pluggable L&F (PLAF) architecture, so as soon as you go beyond what is built-in, you bang your head against a wall consisting of troublesome customization and hard-coded color values.

As I don’t have time (nor the inclination to be frank) to rewrite SlickerBox using PLAF, I did the next best thing: cleaned up and released all my widgets for common use.  Initially, I did this to be able to use the Widgets in all my plug-ins and didn’t feel that copying them around would be an optimal solution.  I’ve also received feedback that I’m not the only one with this problem, so I hereby urge everybody to use this toolkit and contribute it, so in time we’ll have a toolbox of widgets for ProM, which makes it easier to make spiffy as well as consistent user-interfaces.

Currently, the toolkit consists of replacements for JTextField, JTextArea, JList, JTable, a new panel for showing properties in a neat way, and a couple of helpers.  The components have an API similar to the corresponding Swing components, but it is not complete; it only supports what I’ve come to need!  Feel free to extend widgets with needed APIs and add new widgets.  Note that especially event-handling is treacherous at this moment; most widgets seem to provide event handling as you’d expect, but doesn’t.  This is because they are typically really some sub-class of JPanel, so event handlers will be installed on the wrong components.

I expect the package to evolve very quickly this week.  Get the package at https://svn.win.tue.nl/repos/prom/Packages/Widgets/Trunk/.  There’s also a release at https://svn.win.tue.nl/repos/prom/Releases/Packages/Widgets/ (currently version 6.1.1, but that may change later today).

In addition to the current set of widgets, I’ll add the inspector (described here) and some visualizations using it. If I find anything else while refactoring my code, I’ll add that as well.

Let me give a quick run-down of the widgets available no, mention the helpers, and show examples of the widgets in use:

org.processmining.framework.util.ui.widgets.ProMTextField
Input a single line of text

org.processmining.framework.util.ui.widgets.ProMTextArea
Input or show larger blocks of text

org.processmining.framework.util.ui.widgets.ProMList
Display a scrollable list of things. Allows selection.

org.processmining.framework.util.ui.widgets.ProMTable
Show tabular data.

org.processmining.framework.util.ui.widgets.ProMHeaderPanel
A panel with a header.

org.processmining.framework.util.ui.widgets.ProMPropertiesPanel
A panel which makes it easy to input multiple parameters; perfect for configuration dialogs. When a mouse hovers over a property, its group is highlighted. These panels use widgets from this package or created using com.fluxicon.slickerbox.factory.SlickerFactory (the checkboxes and radio buttons).


Source here.


Source here.

org.processmining.framework.util.ui.widgets.LeftAlignedHeader
A header styled to match ProM and always aligned to the left. Used for ProMHeaderPanel.
org.processmining.framework.util.ui.widgets.BorderPanel
A JPanel with a border. Similar to com.fluxicon.slickerbox.components.RoundedPanel except only a border is painted rather than also the background of the component. Used for ProMTextField to make the light border around it.
org.processmining.framework.util.ui.widgets.WidgetColors
Various symbolic names for colors used in Widgets.
org.processmining.framework.util.ui.widgets.WidgetImages
Various images useful for setting up tabbed panels. Borrowed from the Log plug-in.

5 thoughts on “Slicker Widgets for ProM

  1. Pingback: Tweets that mention Slicker Widgets for ProM | Michael Westergaard's Homepage -- Topsy.com
    1. Oops… My bad, the documentation is within the tar ball itself [http://code.deckfour.org/slickerbox/slickerbox-1.0rc1.tar.gz]

      Your post on slicker widgets is really very helpful for beginners like me.

      Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.