public void setCurrentView(Object viewName) throws NoSuchElementException {
		// Make sure we have the view.
		if (!views.containsKey(viewName)) {
			// Let the developer know that we don't.
			throw new NoSuchElementException("There is no view by the name: "
					+ viewName);
		}

		// Are they the same?
		boolean same = viewName == currentViewName;

		// If not...
		if (!same) {
			// ... and the old one is non-null ...
			if (currentViewName != null && views.get(currentViewName) != null) {
				// ... let it know it's gone.
				views.get(currentViewName).viewHidden();
			}
		}

		// Set the current view name to the new view name.
		currentViewName = viewName;

		// If it's not the same...
		if (!same) {
			// ... let it know it's shown.
			views.get(currentViewName).viewShown();
		}
	}