/* (non-Javadoc)
  * @see de.artcom.timeline.controller.TimeRangeController#mouseDragged(java.awt.event.MouseEvent)
  */
 @Override
 public void mouseDragged(MouseEvent e) {
   super.mouseDragged(e);
   boolean _myPressedShift =
       (e.getModifiersEx() & MouseEvent.SHIFT_DOWN_MASK) == MouseEvent.SHIFT_DOWN_MASK;
   if (_myPressedShift) {
     switch (_myLoopAction) {
       case MOVE_END:
         _myTrackDataController
             .trackData()
             .scaleRange(_myLoopStart, _myLoopEnd, _myNewLoopStart, _myNewLoopEnd);
         break;
       case MOVE_BOTH:
         if (_myMoveList == null) break;
         for (ControlPoint myPoint : _myMoveList) {
           _myTrackDataController
               .trackData()
               .move(
                   myPoint,
                   new ControlPoint(
                       myPoint.time() + (_myNewLoopStart - _myLoopStart), myPoint.value()));
         }
         break;
       default:
         break;
     }
   }
 }
  /* (non-Javadoc)
   * @see de.artcom.timeline.controller.TimeRangeController#mousePressed(java.awt.event.MouseEvent)
   */
  @Override
  public void mousePressed(MouseEvent e) {
    super.mousePressed(e);

    _myMoveList = null;

    boolean _myPressedShift =
        (e.getModifiersEx() & MouseEvent.SHIFT_DOWN_MASK) == MouseEvent.SHIFT_DOWN_MASK;
    if (_myPressedShift) {
      switch (_myLoopAction) {
        case MOVE_BOTH:
          _myMoveList = _myTrackDataController.trackData().rangeList(_myLoopStart, _myLoopEnd);
          break;
        default:
          break;
      }
    }
  }
 /* (non-Javadoc)
  * @see de.artcom.timeline.controller.TimeRangeController#mouseReleased(java.awt.event.MouseEvent)
  */
 @Override
 public void mouseReleased(MouseEvent theE) {
   super.mouseReleased(theE);
   _myTrackDataController.view().render();
 }