public void performOpenCommand()
	{
		// Show jFileChooser

		JFileChooser fileChooser = new JFileChooser();
		FileNameExtensionFilter filter = new FileNameExtensionFilter(
				"Timeflecks Database Files", "db");
		fileChooser.setFileFilter(filter);
		int returnVal = fileChooser.showOpenDialog(menu);
		if (returnVal == JFileChooser.APPROVE_OPTION)
		{
			File selectedFile = fileChooser.getSelectedFile();

			try
			{
				Timeflecks.getSharedApplication().getTaskList()
						.saveAllTasksAndEvents();
			}
			catch (Exception e)
			{
				ExceptionHandler.handleDatabaseSaveException(e, this.getClass()
						.getName(), "performOpenCommand", "1300");
			}

			// Make sure it is a different .db file
			try
			{
				if (selectedFile.getCanonicalPath().equals(
						Timeflecks.getSharedApplication().getCurrentFile()
								.getCanonicalPath()))
				{
					// If they are the same file
					JOptionPane.showMessageDialog(menu,
							"This is the currently open file.",
							"Currently Open File", JOptionPane.WARNING_MESSAGE);

					return; // Do nothing for this part
				}
			}
			catch (IOException e)
			{
				ExceptionHandler.handleDatabaseCompareException(e, this
						.getClass().getName(), "performOpenCommand", "1500");
			}

			try
			{
				Timeflecks.getSharedApplication()
						.openDatabaseFile(selectedFile); // Shouldn't this be
															// handled here?
															// (return success
															// or failure?)
			}
			catch (Exception e)
			{
				ExceptionHandler.handleDatabaseOpenException(e,
						"MenuBarController", "performOpenCommand", "1310");
			}

			Timeflecks.getSharedApplication().postNotification(
					TimeflecksEvent.GENERAL_REFRESH);
		}
	}