public void mouseDragged(MouseEvent evt)
	{
		if (currentSolution == null)
			return;

		// Ensure that we are clicking and dragging the level view.
		if (clickPos.x >= VIEW_X && clickPos.x < VIEW_X + VIEW_W
				&& clickPos.y >= VIEW_Y && clickPos.y < VIEW_Y + VIEW_H) {
			Point dragPos = evt.getPoint();
			int changeX = clickPos.x - dragPos.x;
			int changeY = clickPos.y - dragPos.y;
			viewX = viewPos.x + changeX;
			viewY = viewPos.y + changeY;
			if (viewX < 0)
				viewX = 0;
			else if (viewX + VIEW_W > currentSolution.getWidth()
					* Tile.TILE_WIDTH)
				viewX = currentSolution.getWidth() * Tile.TILE_WIDTH - VIEW_W;
			if (viewY < 0)
				viewY = 0;
			else if (viewY + VIEW_H > currentSolution.getHeight()
					* Tile.TILE_WIDTH)
				viewY = currentSolution.getHeight() * Tile.TILE_WIDTH - VIEW_H;
			repaint();
		}
	}