public void moveCell(int aFromIndex, int aToIndex)
    {
        if (aFromIndex < aToIndex)
            aToIndex --;
        
        if (    aFromIndex >= 0 && aFromIndex < cellList.size()
             && aToIndex >= 0 && aToIndex < cellList.size() )
        {
            // swap
            AnimationCell cell = cellList.get(aFromIndex);
            cellList.remove(aFromIndex);
            if (aToIndex < cellList.size())
                cellList.add(aToIndex, cell);
            else
                cellList.add(cell);
            
            for (int i=0; i<animationListeners.size(); ++i)
                animationListeners.get(i).cellOrderChanged(this);
        }
    }