public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D) g;
		g2.translate(offset, offset);

		Font font = new Font("Monospaced", Font.BOLD, 30);
		g2.setFont(font);
		g2.drawString(frame.getSelectedTool().toString(), 600, -10);
		// grid
		g2.setStroke(new BasicStroke(1));
		g2.setColor(Color.LIGHT_GRAY);
		for (int i = 0; i < 31; i++)
			g2.drawLine(0, i * 20, 900, i * 20);
		for (int i = 0; i < 46; i++)
			g2.drawLine(i * 20, 0, i * 20, 600);

		// objects
		g2.setColor(new Color(200, 10, 10, 150));
		if (map.getNextLevelStep() != null)
			g2.draw(map.getNextLevelStep());
		if(firstPointNextLevel != null)
			g2.draw(getRectangle(firstPointNextLevel, positionMouse));
		
		if (firstPointLine != null)
			g2.draw(new Line2D.Float(firstPointLine, positionMouse));
		g2.setColor(new Color(200, 10, 10, 255));
		g2.setStroke(new BasicStroke(4));
		for (Line2D.Float line : map.getLines())
			g2.draw(line);

		g2.setStroke(new BasicStroke(2));
		g2.setColor(new Color(40, 40, 40));
		if (objects != null)
		{
			for (EditorObjectInformation object : objects)
				object.drawObject(g2);
			drawSelectedObject(g2);
		}
	}