protected void setupMouseControls() {
		// right click to set the color
		final int tilesWide = _stamp.getTilesWide();
		final int tilesHigh = _stamp.getTilesHigh();
		final int oamsWide = tilesWide / 2;
		_stamp.addMouseListener(new MouseInputAdapter() {
			public void mouseClicked(MouseEvent e) {
				if (e.getButton() == MouseEvent.BUTTON1
						|| e.getButton() == MouseEvent.BUTTON3) {
					
					int xPos = e.getX();
					int sx = 2 * PPUConstants.CHR_WIDTH * _stampControls.getScale();
					if (xPos < 0 || xPos > sx * tilesWide) {
						// ignore it
						return;
					}
					int yPos = e.getY();
					int sy = 2 * PPUConstants.CHR_HEIGHT * _stampControls.getScale();
					if (yPos < 0 || yPos > sy * tilesHigh) {
						// ignore it
						return;
					}
					int relX = xPos / sx;
					int relY = yPos / sy;
					int index = (relY * oamsWide) + relX;
					if (e.getButton() == MouseEvent.BUTTON1) {
						processLeftClick(relX, relY, index);
					}
					if (e.getButton() == MouseEvent.BUTTON3) {
						processRightClick(relX, relY, index);
					}
				}
			}
		});
	}