code: public void dispatch_event(final EventData eventData) {
          final TangoChange tangoChange = this;
          if (EventUtil.graphicAvailable()) {
              //   Causes doRun.run() to be executed asynchronously
              //      on the AWT event dispatching thread.
              Runnable do_work_later = new Runnable() {
                  public void run() {
                      fireTangoChangeEvent(tangoChange, eventData);
                  }
              };
              SwingUtilities.invokeLater(do_work_later);
          }
          else {
              fireTangoChangeEvent(tangoChange, eventData);
          }
      }
docs: =======================================================================