@Override
 public void windowStateChanged(final WindowEvent e) {
   if (e.getNewState() == Frame.ICONIFIED) {
     Logger.debug("Window Iconified");
     windowIconifiedEvent();
   } else if (e.getNewState() != Frame.ICONIFIED) {
     Logger.debug("Window Deiconified");
     windowDeiconifiedEvent();
   }
 }
 /**
  * Creates and starts a new repository transaction
  *
  * @param repository
  * @param listeners
  */
 public RepositoryTransaction(
     final IRepository repository, final Collection<IRepositoryListener> listeners) {
   this.repository = repository;
   this.listeners = listeners;
   this.pending = true;
   Logger.debug("Creating new repository transaction: ", new DateTime().toString());
 }
 /** Called when transaction is finished */
 @Override
 public void finishTransaction() {
   if (this.listeners != null) {
     for (IRepositoryListener listener : this.listeners) {
       listener.repositoryChanged(this.repository);
     }
   }
   this.pending = false;
   Logger.debug("Finished repository transaction: ", new DateTime().toString());
 }