@Override
 public void mouseReleased(MouseEvent e) {
   isLeftButtonPressed = false;
   if (e.getButton() == MouseEvent.BUTTON3) {
     ((DrawPad) parent).getSelectedLayer().undoLastDraw();
   } else if ((e.getButton() == MouseEvent.BUTTON1) && ((DrawPad) parent).isRubberMode()) {
     ((DrawPad) parent).getSelectedLayer().eraseEnd();
   }
   parent.repaint();
 }
 @Override
 public void mousePressed(MouseEvent e) {
   DrawPad drawPad = (DrawPad) parent;
   if (drawPad.getSelectedLayer().isHidden()) {
     return;
   }
   if (e.getButton() == MouseEvent.BUTTON1) {
     isLeftButtonPressed = true;
     drawPad.getSelectedLayer().startToDraw(e.getPoint());
     parent.repaint();
   } else {
     isLeftButtonPressed = false;
   }
 }
 @Override
 public void mouseDragged(MouseEvent e) {
   DrawPad drawPad = (DrawPad) parent;
   if (drawPad.getSelectedLayer().isHidden()) {
     return;
   }
   if (isLeftButtonPressed) {
     if (drawPad.isRubberMode()) {
       drawPad.getSelectedLayer().erase(e.getPoint());
     } else {
       drawPad.getSelectedLayer().drawLine(e.getPoint());
     }
     parent.repaint();
   }
 }