EA-39010 - IAE: AbstractTreeUi.doSelect

This commit is contained in:
Alexey Kudravtsev
2012-09-06 18:31:10 +04:00
parent d08717949a
commit 47d55ea4e9
3 changed files with 12 additions and 6 deletions
@@ -3834,7 +3834,7 @@ public class AbstractTreeUi {
}
}
Set<Object> toSelect = new HashSet<Object>();
Set<Object> toSelect = new THashSet<Object>();
clearSelection();
ContainerUtil.addAll(toSelect, elements);
if (addToSelection) {
@@ -3979,11 +3979,12 @@ public class AbstractTreeUi {
}
}
public void select(final Object element, @Nullable final Runnable onDone) {
public void select(@Nullable Object element, @Nullable final Runnable onDone) {
select(element, onDone, false);
}
public void select(final Object element, @Nullable final Runnable onDone, boolean addToSelection) {
public void select(@Nullable Object element, @Nullable final Runnable onDone, boolean addToSelection) {
if (element == null) return;
_select(new Object[]{element}, onDone, addToSelection, true, false);
}
@@ -15,6 +15,8 @@
*/
package com.intellij.ide.util.treeView;
import org.jetbrains.annotations.NotNull;
class SelectionRequest {
final Object[] myElements;
final Runnable myOnDone;
@@ -25,7 +27,7 @@ class SelectionRequest {
final boolean myDeferred;
final boolean myCanSmartExpand;
SelectionRequest(Object[] elements,
SelectionRequest(@NotNull Object[] elements,
Runnable onDone,
boolean addToSelection,
boolean checkCurrentSelection,
@@ -21,6 +21,7 @@ import com.intellij.util.ArrayUtil;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
@@ -105,15 +106,17 @@ public class UpdaterTreeState {
return target;
}
@NotNull
public Object[] getToSelect() {
return myToSelect.keySet().toArray(new Object[myToSelect.size()]);
}
@NotNull
public Object[] getToExpand() {
return myToExpand.keySet().toArray(new Object[myToExpand.size()]);
}
public boolean process(Runnable runnable) {
public boolean process(@NotNull Runnable runnable) {
try {
setProcessingNow(true);
runnable.run();
@@ -134,7 +137,7 @@ public class UpdaterTreeState {
return myProcessingCount > 0;
}
public void addAll(final UpdaterTreeState state) {
public void addAll(@NotNull UpdaterTreeState state) {
myToExpand.putAll(state.myToExpand);
Object[] toSelect = state.getToSelect();