/**
   * Default constructor.
   *
   * @param page Workbench page.
   */
  protected AbstractNetworkAnimator(IWorkbenchPage page) {
    super(page);
    this.cached = new HashSet<Connector>();

    // Listen to preference changes.
    ReoUIPlugin.getInstance().getPreferenceStore().addPropertyChangeListener(this);
    setupEngine();
  }
 /*
  * (non-Javadoc)
  * @see org.ect.reo.animation.animators.AbstractViewAnimator#dispose()
  */
 @Override
 public void dispose() {
   if (animateJob != null) {
     animateJob.cancel();
   }
   ReoUIPlugin.getInstance().getPreferenceStore().removePropertyChangeListener(this);
   super.dispose();
 }