Я решил это, сделав ручную сортировку в списке моделей. Я понял, что при использовании перетаскивания это только визуально изменяет порядок элементов списка. вот мой рабочий код
<listbox id="listBox_Action"
fixedLayout="true" width="300px"
model="@{mainCtrl.comboModelAction}"
selectedItem="@{mainCtrl.selectedAction}" mold="paging"
pageSize="25" forward="onSelect=onSelectedPanelChange()"
onSelect="bd.value=self.selectedItem.label;bd.close();">
<listhead>
<listheader
label="${c:l('SYSADM.SelectAction.combo.ActionName')}" />
</listhead>
<listitem
self="@{each=ACTION_LIST}">
<listcell
label="@{ACTION_LIST.action_func}"
value="@{ACTION_LIST.action_func}" />
</listitem>
</listbox>
А вот класс java
public void onChangeList(ForwardEvent event) {
DropEvent dropEvent = (DropEvent) event.getOrigin();
// Listitem li = (Listitem)event.getTarget();
// Listbox lb =(Listbox)event.getOrigin().getTarget();
int indexOfdraggedListitem =0;
int indexOfdroppedListitem =0;
Listitem draggedListitem = (Listitem) dropEvent.getDragged();
if (dropEvent.getTarget() instanceof Listitem) {
droppedListitem = (Listitem) dropEvent.getTarget();
indexOfdraggedListitem = left.getIndexOfItem(draggedListitem);
indexOfdroppedListitem = left.getIndexOfItem(droppedListitem);
if (indexOfdraggedListitem > indexOfdroppedListitem) {
droppedListitem.getParent().insertBefore(draggedListitem, droppedListitem);
draggableListLeft.add(indexOfdroppedListitem, draggableListLeft.get(indexOfdraggedListitem));
// Collections.swap(draggableListLeft, indexOfdraggedListitem,
// indexOfdroppedListitem);
draggableListLeft.remove(indexOfdraggedListitem + 1);
// draggableListLeft.add(indexOfdroppedListitem + 1,
// temp_Fie_Dif_Request_Set);
} else {
droppedListitem.getParent().insertBefore(draggedListitem, droppedListitem);
draggableListLeft.add(indexOfdroppedListitem, draggableListLeft.get(indexOfdraggedListitem));
draggableListLeft.remove(indexOfdraggedListitem);
}
} else {
indexOfdraggedListitem = left.getIndexOfItem(draggedListitem);
left.appendChild(draggedListitem);
draggableListLeft.add(draggableListLeft.get(indexOfdraggedListitem));
draggableListLeft.remove(indexOfdraggedListitem);
}
}