private void initFileActions()
	{
		copyToOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser fileChooser = new JFileChooser();
				fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

				// Return value will be JFileChooser.APPROVE_OPTION iff a folder was chosen. Any
				// other value means the window was closed
				int returnVal = fileChooser.showOpenDialog(null);

				// We're a go
				if(returnVal == JFileChooser.APPROVE_OPTION)
				{
					new GuiController().copyTo(MainFrame.getInstance().selectedFile,
							fileChooser.getSelectedFile().toPath());
				}
			}
		});

		revisionsOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				RevisionDialog revisionWindow = new RevisionDialog(
						FileOp.convertPath(MainFrame.getInstance().selectedFile));
				revisionWindow.setLocationRelativeTo(MainFrame.getInstance());
				revisionWindow.setModalityType(ModalityType.APPLICATION_MODAL);
				revisionWindow.setVisible(true);
			}
		});

		restoreAllOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser fileChooser = new JFileChooser();
				fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

				// Return value will be JFileChooser.APPROVE_OPTION iff a folder was chosen. Any
				// other value means the window was closed
				int returnVal = fileChooser.showOpenDialog(null);

				// We're a go
				if(returnVal == JFileChooser.APPROVE_OPTION)
				{
					new GuiController().restoreBackup(fileChooser.getSelectedFile().toPath());
					JOptionPane.showMessageDialog(MainFrame.getInstance(),
							"All files in the backup directory have been restored to "
									+ fileChooser.getSelectedFile().toString());
				}
			}
		});

		changeBackupDirOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser fileChooser = new JFileChooser();
				fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

				// Return value will be JFileChooser.APPROVE_OPTION iff a folder was chosen. Any
				// other value means the window was closed
				int returnVal = fileChooser.showOpenDialog(null);

				// We're a go
				if(returnVal == JFileChooser.APPROVE_OPTION)
				{
					Path chosenPath = fileChooser.getSelectedFile().toPath();

					// We must make sure that the selected path isn't a child of the live directory
					// or vice versa
					if(!chosenPath.startsWith(Main.liveDirectory)
							&& !Main.liveDirectory.startsWith(chosenPath))
					{
						new GuiController().changeBackupDirectory(fileChooser.getSelectedFile().toPath());
					}
					else
					{
						JOptionPane.showMessageDialog(MainFrame.getInstance(),
								"Backup directory cannot be a child of the live directory and vice versa.");
					}
				}
			}
		});

		changeLiveDirOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser fileChooser = new JFileChooser();
				fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

				// Return value will be JFileChooser.APPROVE_OPTION iff a folder was chosen. Any
				// other value means the window was closed
				int returnVal = fileChooser.showOpenDialog(null);

				// We're a go
				if(returnVal == JFileChooser.APPROVE_OPTION)
				{
					Path chosenPath = fileChooser.getSelectedFile().toPath();

					// We must make sure that the selected path isn't a child of the live directory
					// or vice versa
					if(!chosenPath.startsWith(Main.backupDirectory)
							&& !Main.backupDirectory.startsWith(chosenPath))
					{
						new GuiController().changeLiveDirectory(fileChooser.getSelectedFile().toPath());
						MainFrame.getInstance().redrawTable(Main.liveDirectory);
					}
					else
					{
						JOptionPane.showMessageDialog(MainFrame.getInstance(),
								"Live directory cannot be a child of the live directory and vice versa.");
					}
				}
			}
		});

		settingsOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				// Create the setting dialog, position it in the center of the current window, and
				// lock the current window while the settings window is open.
				SettingsDialog settingsDialog = new SettingsDialog();
				settingsDialog.setLocationRelativeTo(MainFrame.getInstance());
				settingsDialog.setModalityType(ModalityType.APPLICATION_MODAL);
				settingsDialog.setVisible(true);
			}
		});

		exitOption.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				int choice = JOptionPane.showConfirmDialog(MainFrame.getInstance(),
						"Are you sure you want to quit?", "Confirmation", JOptionPane.YES_NO_OPTION);
				if(choice == JOptionPane.YES_OPTION)
				{
					System.exit(0);
				}
			}
		});
	}