code: public void moveRow(final int start, final int end, final int to) {
  		final int shift = to - start;
  		int first, last;
  		if (shift < 0) {
  			first = to;
  			last = end;
  		} else {
  			first = start;
  			last = to + end - start;
  		}
  		rotate(this.dataVector, first, last + 1, shift);
  
  		fireTableRowsUpdated(first, last);
  	}
docs: Moves one or more rows from the inclusive range <code>start</code> to
  <code>end</code> to the <code>to</code> position in the model. After the
  move, the row that was at index <code>start</code> will be at index
  <code>to</code>. This method will send a <code>tableChanged</code>
  notification message to all the listeners.
  <p>
  
  <pre>
  Examples of moves:
  <p>
  1. moveRow(1,3,5);
  a|B|C|D|e|f|g|h|i|j|k   - before
  a|e|f|g|h|B|C|D|i|j|k   - after
  <p>
  2. moveRow(6,7,1);
  a|b|c|d|e|f|G|H|i|j|k   - before
  a|G|H|b|c|d|e|f|i|j|k   - after
  <p>
  </pre>
  
  @param start the starting row index to be moved
  @param end   the ending row index to be moved
  @param to    the destination of the rows to be moved
  @exception ArrayIndexOutOfBoundsException if any of the elements would be
  moved out of the table's range