T element = getSelectedNode();
if (element == null) {
resetControlButtons();
return;
}
Treeitem item = tree.getSelectedItem();
btnNew.setDisabled(isNewButtonDisabled()
|| element.isUpdatedFromTimesheets());
btnNewFromTemplate.setDisabled(isNewButtonDisabled()
|| element.isUpdatedFromTimesheets());
boolean disabled = readOnly || isPredicateApplied();
downButton.setDisabled(disabled || isLastItem(element));
upButton.setDisabled(disabled || isFirstItem(element));
disabled |= element.isUpdatedFromTimesheets();
leftButton.setDisabled(disabled
|| isFirstLevelElement(item)
|| element.getParent().isUpdatedFromTimesheets());
boolean previousSiblingIsUpdatedFromTimesheets = false;
try {
Treeitem previousItem = (Treeitem) item.getParent()
.getChildren().get(item.getIndex() - 1);
T previousSibling = type.cast(previousItem.getValue());
previousSiblingIsUpdatedFromTimesheets = previousSibling
.isUpdatedFromTimesheets();
} catch (IndexOutOfBoundsException e) {
// Do nothing
}