public void performSaveAsCommand()
	{
		JFileChooser fileChooser = new JFileChooser();
		FileNameExtensionFilter filter = new FileNameExtensionFilter(
				"Timeflecks Database Files", "db");
		fileChooser.setFileFilter(filter);

		boolean success = false;

		do
		{
			int returnVal = fileChooser.showSaveDialog(menu);
			if (returnVal == JFileChooser.APPROVE_OPTION)
			{
				GlobalLogger.getLogger().logp(Level.INFO, "MenuBar",
						"performSaveAsCommand",
						"User chose file " + fileChooser.getSelectedFile());

				File selectedFile = fileChooser.getSelectedFile();
				if (FileUtility.fileExistsAndIsNotSame(selectedFile))
				{
					// We need to prompt the user to see if they want to
					// overwrite the file.
					Object[] options = { "Overwrite File", "Choose New File" };
					int reply = JOptionPane
							.showOptionDialog(
									menu,
									"This file already exists. Would you like to overwrite it with the current data file?",
									"File Exists", JOptionPane.DEFAULT_OPTION,
									JOptionPane.WARNING_MESSAGE, null, options,
									options[1]);

					if (reply == JOptionPane.YES_OPTION)
					{
						// The user selected to overwrite the file
						GlobalLogger.getLogger().logp(Level.INFO, "MenuBar",
								"performSaveAsCommand",
								"User elected to overwrite existing file.");

						// We just keep going
					}
					else
					{
						// User selected to not overwrite file
						GlobalLogger
								.getLogger()
								.logp(Level.INFO, "MenuBar",
										"performSaveAsCommand",
										"User declined to overwrite file, prompting for new file choice.");

						success = false;
						continue;
					}

				}

				// Take the file that comes in and try, catch
				// IllegalArgumentException, show alert asking for new file -
				// they can go back and cancel
				// Call switch
				try
				{
					Timeflecks.getSharedApplication().saveDatabaseFileAs(
							selectedFile);

					success = true;
				}
				catch (IllegalArgumentException e)
				{
					GlobalLogger
							.getLogger()
							.logp(Level.WARNING,
									"MenuBar",
									"performSaveAsCommand",
									"Illegal argument from SQLiteConnector when attempting to switch database. Showing dialog, prompting for proper extension.");
					success = false;

					JOptionPane
							.showMessageDialog(
									menu,
									"Invalid filename. (1200)\nPlease make sure that your file is valid and has the extension \".db\".",
									"Invalid Filename",
									JOptionPane.ERROR_MESSAGE);
				}
				catch (Exception e)
				{
					ExceptionHandler.handleDatabaseSaveException(e, this
							.getClass().getName(), "performSaveAsCommand()",
							"1300");
				}
			}
			else
			{
				GlobalLogger.getLogger().logp(Level.INFO, "MenuBar",
						"performSaveAsCommand",
						"User cancelled Save As operation, continuing.");
				success = true;
			}
		} while (!success);
	}