[platform] ignoring invalid files in "reload from disk" action (EA-247223); simpler texts

GitOrigin-RevId: cf5303941eca489c30fdeff3445ed9483d65d50e
This commit is contained in:
Roman Shevchenko
2020-12-11 22:00:35 +00:00
committed by intellij-monorepo-bot
parent b4ea9f66ef
commit b9d1e88402
3 changed files with 12 additions and 29 deletions
@@ -11,39 +11,24 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.newvfs.NewVirtualFile;
import com.intellij.openapi.vfs.newvfs.RefreshQueue;
import com.intellij.openapi.vfs.newvfs.VfsPresentationUtil;
import com.intellij.openapi.wm.StatusBar;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.util.containers.JBIterable;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SynchronizeCurrentFileAction extends AnAction implements DumbAware {
@Override
public void update(@NotNull AnActionEvent e) {
List<VirtualFile> files = getFiles(e).take(2).toList();
Project project = e.getProject();
if (project == null || files.isEmpty()) {
e.getPresentation().setEnabledAndVisible(false);
}
else {
e.getPresentation().setEnabledAndVisible(true);
}
}
@NotNull
private static String getMessage(@NotNull Project project, @NotNull List<? extends VirtualFile> files) {
VirtualFile single = files.size() == 1 ? files.get(0) : null;
return single != null ?
IdeBundle.message("action.synchronize.file", VfsPresentationUtil.getPresentableNameForAction(project, single)) :
IdeBundle.message("action.synchronize.selected.files");
e.getPresentation().setEnabledAndVisible(e.getProject() != null && localFiles(e).findAny().isPresent());
}
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
Project project = getEventProject(e);
List<VirtualFile> files = getFiles(e).toList();
List<VirtualFile> files = localFiles(e).collect(Collectors.toList());
if (project == null || files.isEmpty()) return;
for (VirtualFile file : files) {
@@ -57,17 +42,15 @@ public class SynchronizeCurrentFileAction extends AnAction implements DumbAware
RefreshQueue.getInstance().refresh(true, true, () -> postRefresh(project, files), files);
}
private static void postRefresh(Project project, List<? extends VirtualFile> files) {
private static void postRefresh(Project project, List<VirtualFile> files) {
VcsFacade.getInstance().markFilesDirty(project, files);
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
if (statusBar != null) {
statusBar.setInfo(IdeBundle.message("action.sync.completed.successfully", getMessage(project, files)));
statusBar.setInfo(IdeBundle.message("action.sync.completed.successfully"));
}
}
@NotNull
private static JBIterable<VirtualFile> getFiles(@NotNull AnActionEvent e) {
return JBIterable.of(e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY))
.filter(o -> o.isInLocalFileSystem());
private static Stream<VirtualFile> localFiles(AnActionEvent e) {
return Stream.of(e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY)).filter(f -> f.isValid() && f.isInLocalFileSystem());
}
}
}
@@ -388,9 +388,7 @@ recent.locations.changed.locations=Recent Changed Locations
recent.locations.popup.empty.text=No recent locations found
recent.locations.title.text=Show changed only
recent.locations.popup.empty.file.text=Empty lines
action.sync.completed.successfully={0} completed successfully.
action.synchronize.file=Synchronize ''{0}''
action.synchronize.selected.files=Synchronize selected files
action.sync.completed.successfully=File synchronization completed successfully.
macro.column.number=Column number
macro.unix.separators=Takes a parameter and converts separators to '/'. Ex. $UnixSeparators(\\foo\\bar\\)$ == /foo/bar/
macro.file.directory=File directory
@@ -50,6 +50,8 @@ run.configuration.error.working.directory.does.not.exist=Cannot start process, t
run.configuration.error.working.directory.not.directory=Cannot start process, the working directory ''{0}'' is not a directory
go.to.file.toolwindow.title=Files matching pattern
change.color.command.text=Change color
action.synchronize.file=Synchronize ''{0}''
action.synchronize.selected.files=Synchronize selected files
#messages from ProjectBundle
project.roots.no.jdk.on.project.message=Set up created SDK on project?
project.roots.no.jdk.on.project.title=Create SDK