public void treeCollapsed(TreeExpansionEvent event) {
fTimeGraphViewer.setExpandedState((ITimeGraphEntry) event.getElement(), false);
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
fTimeGraphViewer.setExpandedState(child, expanded);
}
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- final TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ final TreeItem treeItem = treeItems.get(topIndex);
// queue the top item update because the tree can change its top item
// autonomously immediately after the listeners have been notified
getDisplay().asyncExec(new Runnable() {
Slider scrollBar = fTimeGraphViewer.getVerticalBar();
fTimeGraphViewer.setTopIndex(scrollBar.getSelection() - event.count);
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
});
@Override
public void controlResized(ControlEvent e) {
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
});
fTimeGraphViewer.setSelection((ITimeGraphEntry) selection);
}
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
}
}
fInhibitTreeSelection = false;
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
});
@Override
public void widgetSelected(SelectionEvent e) {
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
});
@Override
public void mouseScrolled(MouseEvent e) {
List<TreeItem> treeItems = getVisibleExpandedItems(tree);
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
tree.setTopItem(treeItem);
}
});
}
fInhibitTreeSelection = false;
List<TreeItem> treeItems = getVisibleExpandedItems(fTreeViewer.getTree());
- if (treeItems.size() == 0) {
+ int topIndex = fTimeGraphViewer.getTopIndex();
+ if (topIndex >= treeItems.size()) {
return;
}
- TreeItem treeItem = treeItems.get(fTimeGraphViewer.getTopIndex());
+ TreeItem treeItem = treeItems.get(topIndex);
fTreeViewer.getTree().setTopItem(treeItem);
}