@Override
	public void draw(Graphic g) {

		if(zoom>0) {
			g.setTransform(AffineTransform.getScaleInstance(zoom+1, zoom+1));
			g.drawImage(screen, startScreenX, startScreenY);
			g.setTransform(AffineTransform.getScaleInstance(1, 1));
		}else if(zoom<0) {
			g.setTransform(AffineTransform.getScaleInstance((double)(1.0/(-zoom+1)), (double)(1.0/(-zoom+1))));
			g.drawImage(screen, startScreenX, startScreenY);
			g.setTransform(AffineTransform.getScaleInstance(1, 1));
		}

		else{
			g.drawImage(screen, startScreenX, startScreenY);
		}

		if(mode==PaintMode.RECTANGULAR_MARK) {

			if(temporary) {
				drawUndefinedRectangularMark(g);
			}

		}

		if(mode==PaintMode.ERASER) {
			drawEraser(g);
		}

		if((mode==PaintMode.DRAW_RECT)||(mode==PaintMode.DRAW_OVAL)||(mode==PaintMode.DRAW_ROUND||mode==PaintMode.DRAW_LINE)) {

			if(tool.isTemporary()) {
			
				tool.draw(mx, my, g);
				
			}


		}

		drawCoordinates(g);


	}