@Override
	/** Questo è il listener per la menuBar */
	public void actionPerformed(ActionEvent arg0) {		
		
		/** Per salvare prende la lista di locazioni e la salva */
		if (arg0.getSource().equals(save)) {
			JFileChooser fc = new JFileChooser();
			fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
			fc.showSaveDialog(null);
			String path = fc.getSelectedFile().getPath();		       

			try {
				// Se l'utente non ha inserito alcun percorso salvo nella home:
		        if (path == null || path.equals("")) {
		        	io.IO.saveToFile(Singleton.getLocations());
		        } else {
				io.IO.saveToFile(Singleton.getLocations(), path);
		        }
			} catch (IOException e) {
				System.out.println("Impossibile salvare il file, assicurarsi di aver inserito un percorso esisnte e di avere i permessi di scrittura.");
			}
			Singleton.getFrame().getBottomPanel().updateConsole("La partita è stata salvata.");
		}
		
		// Per il caricamento ricostruisco da capo il frame
		else if (arg0.getSource().equals(load)) {
			String path = MainFrame.loadPath();
			
			Singleton.getFrame().setVisible(false);
			Singleton.setFrame(new MainFrame(MainFrame.startFromLoad(path)));
			Singleton.getFrame().setVisible(true);
		}
		
		else if (arg0.getSource().equals(clear)) {
			Singleton.getPlayer().perdiMemoria();
			Singleton.getFrame().getBottomPanel().updateConsole("Il giocatore ha perso la memoria.");
		}
		
		else if (arg0.getSource().equals(info)) {
			JOptionPane.showMessageDialog(Singleton.getFrame(),
			    "Progetto di Metodologie di programmazione, a.a 2012.\nAdriano Di Luzio.",
			    "About", JOptionPane.INFORMATION_MESSAGE, 
			    new ImageIcon(Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemClassLoader().getResource("icon.png"))));
		}
		
		Singleton.getFrame().validate();
	}