This post will show how to customize Eclipse RCP preferences. This came from the need to have a user friendly interface in our product instead of the rough default tree view of Eclipse preferences.
Default Eclipse preferences TreeView
If you are not familiar with Eclipse preferences, you can have an in-depth look of how preferences works in this article by Lars Vogel.
First remove all the preferences you don’t need in your RCP. Some of these were brought in by 3rd party plug-ins such as JDT.
You’ll have to override the postWindowOpen() method of the WorkbenchWindowAdvisor application:
This gives you better visibility of your RCP preferences.
Next the idea is to build a new UI for this dialog, keeping the Eclipse PreferencePage mechanism. To show a quick preview of the result I made a mockup of this dialog using the WindowBuilder tool. With this tool, you can draw your UI very easily, though a background knowledge of SWT helps a lot.
WindowBuilder overview
Using mockups is a good practice to test your user interface and collect your team’s feedback. Here we clearly want to have an “OS X style” for our preferences. Once the mockup shows the interface the way you want it, you can go ahead with your implementation using the code generated by WindowBuilder. The generated code is pretty clean and easy to modify.
Eclipse preference API
Next the goal is to integrate the PreferencePages to the new Dialog. In Eclipse you can define a preference page using an extension point. Thus a PreferencePage is bound to an ID. To find them you can use the PreferenceManager like this :
In addition, I found it useful to reuse the Eclipse keyword contributions linked to those pages. To achieve this, I implemented my own listener inspired from the one in the default preference tree filter.
Reporting is critical to decision making and the administration of a business application. Yet, too few people know about the real power of reporting and its ease of use.
Here’s a short video that will introduce you to the built-in reporting features that Bonita Open Solution provides.
You’ll see the default user dashboard and how to configure it to include some basic reports such as: “Steps per priority”, “Average step pending time” and “Number of cases started”.
Extract valuable information from your application in a few clicks!
You can use this feature to monitor runtime issues – solving them leads to better performance management, for instance, detect tasks that are exceedingly time-consuming and perhaps improve the process design to get rid of the bottlenecks.
Also, reporting can provide additional information needed when performing load balancing. For example, by detecting a variation in the volume of cases started; you may allocate more or less resources to it (be it servers or human operators).
People (well, me at least ) very often have a need for some hands-on control. And in a process that drives itself, there are guaranteed to be some users who are going to need to take the wheel, either because a tree has suddenly appeared in the middle of the flow path, or – just because.
Human steps in a process flow need flexibility for the humans who act in them.
This video shows a bit about how the user in a process designed with Bonita Open Solution can manually “push the pause button,”
reassign a task, change its priority, modify some data in it, and so on.
Nice to know that if you need it, the driver’s seat is yours.
Wherever you can enter or apply a data variable in Bonita Solution, the “Edit Expression” option gives you access to a Groovy editor to create a script.
Groovy is a scripting language with syntax similar to Java. In fact, the Groovy editor accepts Java script as well as Groovy, but if you want to streamline and simplify your code even further, Groovy is a good option.
Expressions allow you to customize the behavior of your process. You can, for example:
define conditions on transitions;
initialize data variables;
configure connectors;
and more.
Here’s a video overview of the Groovy editor in Bonita Open Solution, with a very simple example.
Processes modeled in Bonita Studio are not only executable – the graphic representation or process diagram is also useful when stakeholders in the process need to participate in process design.
Business Process Modeling (BPMN) uses links to allow the process designer to graphically cut up a long and/or complex process sequence and link up parts that are not next to each other on the whiteboard.
This video shows an example process diagram using links.