public void onRuleFinished(final VRule rule, final VObject object) {
   Display.getDefault()
       .syncExec(
           new Runnable() {
             public void run() {
               listener.onRuleFinished(rule, object);
             }
           });
 }
 public void onFinish() {
   Display.getDefault()
       .syncExec(
           new Runnable() {
             public void run() {
               listener.onFinish();
             }
           });
 }
 public void onRuleApplied(final VRule rule, final VObject object, final VResult[] results) {
   Display.getDefault()
       .syncExec(
           new Runnable() {
             public void run() {
               listener.onRuleApplied(rule, object, results);
             }
           });
 }