restore goto file/action/etc in dumb mode

This commit is contained in:
peter
2015-07-20 22:00:49 +02:00
parent 07eab62590
commit 42d1b3ec91
5 changed files with 14 additions and 6 deletions
@@ -33,6 +33,7 @@ import com.intellij.ide.util.treeView.NodeRenderer;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.util.Condition;
@@ -367,7 +368,7 @@ public final class TreeFileChooserDialog extends DialogWrapper implements TreeFi
return myTree;
}
private final class MyGotoFileModel implements ChooseByNameModel {
private final class MyGotoFileModel implements ChooseByNameModel, DumbAware {
private final int myMaxSize = WindowManagerEx.getInstanceEx().getFrame(myProject).getSize().width;
@Override
@NotNull
@@ -1524,12 +1524,17 @@ public abstract class ChooseByNameBase {
@Override
public void runBackgroundProcess(@NotNull final ProgressIndicator indicator) {
DumbService.getInstance(myProject).runReadActionInSmartMode(new Runnable() {
Runnable r = new Runnable() {
@Override
public void run() {
computeInReadAction(indicator);
}
});
};
if (DumbService.isDumbAware(myModel)) {
ApplicationManager.getApplication().runReadAction(r);
} else {
DumbService.getInstance(myProject).runReadActionInSmartMode(r);
}
}
@Override
@@ -32,6 +32,7 @@ import com.intellij.openapi.keymap.KeymapManager;
import com.intellij.openapi.keymap.KeymapUtil;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.SystemInfo;
@@ -62,7 +63,7 @@ import java.util.List;
import static com.intellij.ui.SimpleTextAttributes.STYLE_PLAIN;
import static com.intellij.ui.SimpleTextAttributes.STYLE_SEARCH_MATCH;
public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, Comparator<Object>, EdtSortingModel {
public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, Comparator<Object>, EdtSortingModel, DumbAware {
@Nullable private final Project myProject;
private final Component myContextComponent;
@@ -25,6 +25,7 @@ import com.intellij.navigation.NavigationItem;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.vfs.VirtualFile;
@@ -40,7 +41,7 @@ import java.util.Collection;
/**
* Model for "Go to | File" action
*/
public class GotoFileModel extends FilteringGotoByModel<FileType> {
public class GotoFileModel extends FilteringGotoByModel<FileType> implements DumbAware {
private final int myMaxSize;
public GotoFileModel(@NotNull Project project) {
@@ -118,7 +118,7 @@ public class GotoTaskAction extends GotoActionBase implements DumbAware {
});
}
private static class GotoTaskPopupModel extends SimpleChooseByNameModel {
private static class GotoTaskPopupModel extends SimpleChooseByNameModel implements DumbAware {
private ListCellRenderer myListCellRenderer;