public function setSelectedItemIndex($value)
{
if (($value = TPropertyValue::ensureInteger($value)) < 0) {
$value = -1;
}
if (($current = $this->getSelectedItemIndex()) !== $value) {
$this->setViewState('SelectedItemIndex', $value, -1);
$items = $this->getItems();
$itemCount = $items->getCount();
if ($current >= 0 && $current < $itemCount) {
$item = $items->itemAt($current);
if ($item->getItemType() !== TListItemType::EditItem) {
$item->setItemType($current % 2 ? TListItemType::AlternatingItem : TListItemType::Item);
}
}
if ($value >= 0 && $value < $itemCount) {
$item = $items->itemAt($value);
if ($item->getItemType() !== TListItemType::EditItem) {
$item->setItemType(TListItemType::SelectedItem);
}
}
}
}