@Override
 public void preStartup() {
   super.preStartup();
   Set<IWorkbenchListener> listener = WorkbenchListenerRegistry.sharedInstance().getListener();
   for (IWorkbenchListener workbenchListener : listener) {
     workbenchListener.preStartup();
   }
 }
 @Override
 public boolean openWindows() {
   boolean openWindows = super.openWindows();
   Set<IWorkbenchListener> listener = WorkbenchListenerRegistry.sharedInstance().getListener();
   for (IWorkbenchListener workbenchListener : listener) {
     workbenchListener.openWindows();
   }
   return openWindows;
 }
  @Override
  public void postShutdown() {
    super.postShutdown();
    checkClearWorkspace();

    Set<IWorkbenchListener> listener = WorkbenchListenerRegistry.sharedInstance().getListener();
    for (IWorkbenchListener workbenchListener : listener) {
      workbenchListener.postShutdown();
    }
  }
  /** saves the Config before the Application is shutDown */
  @Override
  public boolean preShutdown() {
    boolean superResult = super.preShutdown();
    try {
      org.nightlabs.config.Config.sharedInstance().save();
    } catch (ConfigException e) {
      logger.error("Saving config failed!", e); // $NON-NLS-1$
    }

    Set<IWorkbenchListener> listener = WorkbenchListenerRegistry.sharedInstance().getListener();
    for (IWorkbenchListener workbenchListener : listener) {
      workbenchListener.preShutdown();
    }

    return superResult;
  }