@Override
  public boolean canMoveComponent(RadComponent c, int rowDelta, int colDelta, final int rowSpanDelta, final int colSpanDelta) {
    final int newRow = getNewRow(c, rowDelta);
    final int newCol = getNewColumn(c, colDelta);
    final int newRowSpan = getNewRowSpan(c, rowSpanDelta);
    final int newColSpan = getNewColSpan(c, colSpanDelta);
    if (newRow < 0 || newCol < 0 || newRowSpan < 1 || newColSpan < 1 ||
        newRow + newRowSpan > c.getParent().getGridRowCount() ||
        newCol + newColSpan > c.getParent().getGridColumnCount()) {
      return false;
    }
    c.setDragging(true);
    final RadComponent overlap = c.getParent().findComponentInRect(newRow, newCol, newRowSpan, newColSpan);
    c.setDragging(false);
    if (overlap != null) {
      return false;
    }
    return true;
  }
@Override
  public boolean canMoveComponent(RadComponent c, int rowDelta, int colDelta, final int rowSpanDelta, final int colSpanDelta)