|
Lines 12-21
Link Here
|
| 12 |
package org.eclipse.jdt.internal.junit.ui; |
12 |
package org.eclipse.jdt.internal.junit.ui; |
| 13 |
|
13 |
|
| 14 |
import java.util.AbstractList; |
14 |
import java.util.AbstractList; |
| 15 |
import java.util.ArrayList; |
|
|
| 16 |
import java.util.Arrays; |
15 |
import java.util.Arrays; |
| 17 |
import java.util.HashSet; |
16 |
import java.util.HashSet; |
| 18 |
import java.util.Iterator; |
17 |
import java.util.Iterator; |
|
|
18 |
import java.util.LinkedHashSet; |
| 19 |
import java.util.LinkedList; |
19 |
import java.util.LinkedList; |
| 20 |
import java.util.List; |
20 |
import java.util.List; |
| 21 |
import java.util.ListIterator; |
21 |
import java.util.ListIterator; |
|
Lines 461-494
Link Here
|
| 461 |
|
461 |
|
| 462 |
private void updateElementInTree(final TestElement testElement) { |
462 |
private void updateElementInTree(final TestElement testElement) { |
| 463 |
if (isShown(testElement)) { |
463 |
if (isShown(testElement)) { |
| 464 |
ArrayList toCreate= null; |
464 |
updateShownElementInTree(testElement); |
| 465 |
TestElement current= testElement; |
|
|
| 466 |
while (! (current instanceof TestRoot)) { |
| 467 |
if (fTreeViewer.testFindItem(current) == null) { |
| 468 |
if (toCreate == null) |
| 469 |
toCreate= new ArrayList(); |
| 470 |
toCreate.add(current); |
| 471 |
} else { |
| 472 |
TestElement parent= current; |
| 473 |
if (toCreate != null) { |
| 474 |
ListIterator iter= toCreate.listIterator(toCreate.size()); // backwards, top first |
| 475 |
while (iter.hasPrevious()) { |
| 476 |
TestElement child= (TestElement) iter.previous(); |
| 477 |
fTreeViewer.add(parent, child); |
| 478 |
parent= child; |
| 479 |
} |
| 480 |
} |
| 481 |
fTreeViewer.update(current, null); |
| 482 |
} |
| 483 |
current= (TestElement) fTreeContentProvider.getParent(current); |
| 484 |
} |
| 485 |
|
| 486 |
} else { |
465 |
} else { |
| 487 |
TestElement current= testElement; |
466 |
TestElement current= testElement; |
| 488 |
do { |
467 |
do { |
| 489 |
fTreeViewer.remove(current); |
468 |
if (fTreeViewer.testFindItem(current) != null) |
|
|
469 |
fTreeViewer.remove(current); |
| 490 |
current= current.getParent(); |
470 |
current= current.getParent(); |
| 491 |
} while (! (current instanceof TestRoot) && ! isShown(current)); |
471 |
} while (! (current instanceof TestRoot) && ! isShown(current)); |
|
|
472 |
|
| 473 |
while (current != null && ! (current instanceof TestRoot)) { |
| 474 |
fTreeViewer.update(current, null); |
| 475 |
current= current.getParent(); |
| 476 |
} |
| 477 |
} |
| 478 |
} |
| 479 |
|
| 480 |
private void updateShownElementInTree(TestElement testElement) { |
| 481 |
if (testElement == null || testElement instanceof TestRoot) // paranoia null check |
| 482 |
return; |
| 483 |
|
| 484 |
TestSuiteElement parent= testElement.getParent(); |
| 485 |
updateShownElementInTree(parent); // make sure parent is shown and up-to-date |
| 486 |
|
| 487 |
if (fTreeViewer.testFindItem(testElement) == null) { |
| 488 |
fTreeViewer.add(parent, testElement); // if not yet in tree: add |
| 489 |
} else { |
| 490 |
fTreeViewer.update(testElement, null); // if in tree: update |
| 492 |
} |
491 |
} |
| 493 |
} |
492 |
} |
| 494 |
|
493 |
|
|
Lines 640-646
Link Here
|
| 640 |
} |
639 |
} |
| 641 |
|
640 |
|
| 642 |
private void clearUpdateAndExpansion() { |
641 |
private void clearUpdateAndExpansion() { |
| 643 |
fNeedUpdate= new HashSet(); |
642 |
fNeedUpdate= new LinkedHashSet(); |
| 644 |
fAutoClose= new LinkedList(); |
643 |
fAutoClose= new LinkedList(); |
| 645 |
fAutoExpand= new HashSet(); |
644 |
fAutoExpand= new HashSet(); |
| 646 |
} |
645 |
} |