[platform] extract project from event IDEA-CR-31501

This commit is contained in:
Sergey Karashevich
2018-04-06 19:44:11 +03:00
parent 27addff482
commit 0bd345d169
2 changed files with 12 additions and 8 deletions
@@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.wm.impl.welcomeScreen.NewWelcomeScreen;
import org.jetbrains.annotations.NotNull;
@@ -34,7 +35,10 @@ public class NewProjectAction extends AnAction implements DumbAware {
public void actionPerformed(AnActionEvent e) {
NewProjectWizard wizard = new NewProjectWizard(null, ModulesProvider.EMPTY_MODULES_PROVIDER, null);
ApplicationManager.getApplication().invokeLater(() -> NewProjectUtil.createNewProject(getEventProject(e), wizard));
Project eventProject = getEventProject(e);
ApplicationManager.getApplication().invokeLater(() -> {
NewProjectUtil.createNewProject(eventProject, wizard);
});
}
@Override
@@ -44,12 +44,12 @@ import java.util.List;
public class OpenFileAction extends AnAction implements DumbAware {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ApplicationManager.getApplication().invokeLater(() -> prepareFileChooserAndOpen(e));
final Project eventProject = e.getProject();
ApplicationManager.getApplication().invokeLater(() -> prepareFileChooserAndOpen(eventProject));
}
private void prepareFileChooserAndOpen(@NotNull AnActionEvent e) {
final Project project = e.getProject();
final boolean showFiles = project != null || PlatformProjectOpenProcessor.getInstanceIfItExists() != null;
private void prepareFileChooserAndOpen(final Project eventProject) {
final boolean showFiles = eventProject != null || PlatformProjectOpenProcessor.getInstanceIfItExists() != null;
final FileChooserDescriptor descriptor = showFiles ? new ProjectOrFileChooserDescriptor() : new ProjectOnlyFileChooserDescriptor();
VirtualFile toSelect = null;
@@ -59,15 +59,15 @@ public class OpenFileAction extends AnAction implements DumbAware {
descriptor.putUserData(PathChooserDialog.PREFER_LAST_OVER_EXPLICIT, toSelect == null && showFiles);
FileChooser.chooseFiles(descriptor, project, toSelect != null ? toSelect : getPathToSelect(), files -> {
FileChooser.chooseFiles(descriptor, eventProject, toSelect != null ? toSelect : getPathToSelect(), files -> {
for (VirtualFile file : files) {
if (!descriptor.isFileSelectable(file)) {
String message = IdeBundle.message("error.dir.contains.no.project", file.getPresentableUrl());
Messages.showInfoMessage(project, message, IdeBundle.message("title.cannot.open.project"));
Messages.showInfoMessage(eventProject, message, IdeBundle.message("title.cannot.open.project"));
return;
}
}
doOpenFile(project, files);
doOpenFile(eventProject, files);
});
}