Takhle to je komplikované protože při postupných úpravach se ti nové/už upravené left-right páry kříží s těmi ještě neupravenými a prase aby se v tom pak vyznalo.
Zjednoduš si to - rozděl si prvky v parentu přesouvaného objektu na disjunktní podmnožiny, označkuj si je a pak na nich proveď potřebné operace podle značek. V případě přesunu nahoru:
Prvky před cilovým umístěním - nechat být
Prvky mezi cílovým místem a zdrojovým místem - přečíslovat left i right - zvětšit o velikost přesouvaného objektu (neboli děláme díru)
Prvky objektu - přečíslovat left i right - zmenšit o vzdálenost původního a nového umístění (přesouváme do díry)
Prvy za zdrojovým ojbektem - nechat být
A nezapomeň na zámky jinak se ti to v multiuser prostředí rozese... rozpadne.