}
@Override
public Serializable execute(final PrincipalActionContext inActionContext) throws ExecutionException
{
SetTabOrderRequest currentRequest = (SetTabOrderRequest) inActionContext.getParams();
Person person = personMapper.findByAccountId(inActionContext.getPrincipal().getAccountId());
List<Tab> tabs = person.getTabs(currentRequest.getTabType());
// Find the tab to be moved
int oldIndex = findTabIndex(tabs, currentRequest.getTabId());
Tab movingTab = tabs.get(oldIndex);
// move the tab
tabs.remove(oldIndex);
tabs.add(currentRequest.getNewIndex(), movingTab);
deleteKeysMapper.execute(Collections.singleton(CacheKeys.PERSON_PAGE_PROPERTIES_BY_ID
+ inActionContext.getPrincipal().getId()));
personMapper.flush();