private void handleEventOnEDT(final IUserInterfaceEvent<E> event) {
		/*
		 * we check for the elements wrapped in this event, that should be 
		 * handled by the framework, i.e. a board to display, a sound to play
		 * and the informations for updating the informationPanel.
		 */
		if (event.getPauseMode() != null) {
			boardPanel.setPauseMode(event.getPauseMode());
			requestFocusInWindow();
		}
		if (event.getBoard() != null && this.boardPanel != null) {
			if (!event.getForceNewPaint()) {
				// should be the default case
				boardPanel.paintBoard(event.getBoard());
			} else {
				// repaint forced
				boardPanel.paintBoard(event.getBoard(), true);
			}
		} 
		if (event.getInformationMap() != null && infoPanel != null) {
			infoPanel.paint(event.getInformationMap());
		}

		if (initialInvisible && !this.isVisible()) {
			/* 
			 * we wait for the first paint to set the board visible in order
			 * to avoid the window "jumping around" when it changes its size.
			 * 
			 * If we don't use the default layout, the window - this - shouldn't
			 * be set visible.
			 */
				setVisible(true);	
			initialInvisible = false;
		}
		
		pack();
		handleNonFrameworkEvents(event);
	}