@Override
  public synchronized void dispose() {
    if (myLookupListener != null) {
      final Lookup lookup = getEditor() != null ? LookupManager.getActiveLookup(getEditor()) : null;
      if (lookup != null) {
        lookup.removeLookupListener(myLookupListener);
      }
      myLookupListener = null;
    }

    myEditorDocumentListener = null;

    myProcessor = null;
    getProperties().clear();
    myListeners.clear();

    //Avoid the leak of the editor
    releaseAll();
    setDocument(null);
  }
@Override
  public synchronized void dispose()