public WorldView() {
		addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent evt) {
				if (!doSelectClick(evt))
					doScroll(evt);
			}
		});

		addMouseWheelListener(new MouseWheelListener() {
			public void mouseWheelMoved(MouseWheelEvent e) {
				float newScale = m_camera.getScale() + e.getWheelRotation() * 0.5f
				    * e.getScrollAmount();
				if (newScale >= 0.00000001) {
					m_camera.setScale(newScale);
				}
				repaint();
			}
		});

		addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				doKeyPress(e);
			}
		});

		addComponentListener(new ComponentAdapter() {
			public void componentResized(ComponentEvent ce) {
				m_camera.setViewPort(getBounds());
			}
		});

		setFocusable(true);
		requestFocusInWindow();
	}