/**
  * Method that recreates all the dispositions
  *
  * @param animate If the recreate should be done with an animation
  */
 private void recreateDispositions(boolean animate) {
   // Remove all the current views and add the new ones
   removeAllViews();
   for (Disposition disposition : mDispositions) {
     createFrame(getLocationFromDisposition(disposition), animate);
   }
   mOldResizeFrameLocation = null;
   mTarget = null;
   if (mOnFrameSelectedListener != null) {
     mOnFrameSelectedListener.onFrameUnselectedListener();
   }
 }
  /**
   * Method that finalizes the delete animation
   *
   * @param target The disposition target
   */
  void finishDeleteAnimation(Disposition target) {
    removeView(mTarget);
    mDispositions.remove(target);
    Collections.sort(mDispositions);
    mChanged = true;

    // Clean status
    mOldResizeFrameLocation = null;
    mTarget = null;
    if (mOnFrameSelectedListener != null) {
      mOnFrameSelectedListener.onFrameUnselectedListener();
    }
  }
 /** {@inheritDoc} */
 @Override
 public void onCancel() {
   if (mOldResizeFrameLocation != null) {
     mTarget.setLeft(mOldResizeFrameLocation.left);
     mTarget.setRight(mOldResizeFrameLocation.right);
     mTarget.setTop(mOldResizeFrameLocation.top);
     mTarget.setBottom(mOldResizeFrameLocation.bottom);
   }
   mOldResizeFrameLocation = null;
   mTarget = null;
   if (mOnFrameSelectedListener != null) {
     mOnFrameSelectedListener.onFrameUnselectedListener();
   }
 }