tmf: Fix for bug 415795: IndexOutOfBoundsException in time graph combo
authorPatrick Tasse <patrick.tasse@gmail.com>
Fri, 23 Aug 2013 20:10:28 +0000 (16:10 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Mon, 26 Aug 2013 21:07:15 +0000 (17:07 -0400)
Change-Id: I8e89eaf0b86b40039a320ba98192198415e5d540
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/15821
Tested-by: Hudson CI
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
IP-Clean: Bernd Hufmann <bernd.hufmann@ericsson.com>

org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/TimeGraphCombo.java

index df507bbc78b14eafe7ae9a7365d22609cd2702d3..f19cd1d23c3e6e0b65d4ddfe7c8fc6431deda780 100644 (file)
@@ -399,10 +399,11 @@ public class TimeGraphCombo extends Composite {
             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);
             }
 
@@ -415,10 +416,11 @@ public class TimeGraphCombo extends Composite {
                     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() {
@@ -477,10 +479,11 @@ public class TimeGraphCombo extends Composite {
                 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);
             }
         });
@@ -524,10 +527,11 @@ public class TimeGraphCombo extends Composite {
             @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);
             }
         });
@@ -545,10 +549,11 @@ public class TimeGraphCombo extends Composite {
                         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);
                 }
             }
@@ -568,10 +573,11 @@ public class TimeGraphCombo extends Composite {
                 }
                 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);
             }
         });
@@ -581,10 +587,11 @@ public class TimeGraphCombo extends Composite {
             @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);
             }
         });
@@ -594,10 +601,11 @@ public class TimeGraphCombo extends Composite {
             @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);
             }
         });
@@ -937,10 +945,11 @@ public class TimeGraphCombo extends Composite {
         }
         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);
     }
 
This page took 0.02844 seconds and 5 git commands to generate.