use of com.intellij.cvsSupport2.ui.CvsTabbedWindow in project intellij-community by JetBrains.
the class IgnoreFileAction method refreshFilesAndStatuses.
private static void refreshFilesAndStatuses(final CvsContext context, final MultiMap<VirtualFile, VirtualFile> parentToSelectedChildren) {
final Refreshable refreshablePanel = context.getRefreshableDialog();
if (refreshablePanel != null)
refreshablePanel.saveState();
final int[] refreshedParents = new int[] { 0 };
final Collection<VirtualFile> createdCvsIgnoreFiles = new ArrayList<>();
for (final VirtualFile parent : parentToSelectedChildren.keySet()) {
final Runnable runnable = new Runnable() {
public void run() {
try {
final VirtualFile cvsIgnoreFile = CvsVfsUtil.refreshAndfFindChild(parent, CvsUtil.CVS_IGNORE_FILE);
if (cvsIgnoreFile == null) {
final String path = parent.getPath() + "/" + CvsUtil.CVS_IGNORE_FILE;
LOG.error(String.valueOf(CvsVfsUtil.findFileByPath(path)) + " " + parent.getPath() + " " + new File(VfsUtil.virtualToIoFile(parent), CvsUtil.CVS_IGNORE_FILE).isFile());
return;
}
if (!CvsUtil.fileIsUnderCvs(cvsIgnoreFile) && !ChangeListManager.getInstance(context.getProject()).isIgnoredFile(cvsIgnoreFile) && !CvsEntriesManager.getInstance().fileIsIgnored(cvsIgnoreFile)) {
createdCvsIgnoreFiles.add(cvsIgnoreFile);
}
final Collection<VirtualFile> filesToUpdateStatus = parentToSelectedChildren.get(parent);
for (final VirtualFile file : filesToUpdateStatus) {
FileStatusManager.getInstance(context.getProject()).fileStatusChanged(file);
VcsDirtyScopeManager.getInstance(context.getProject()).fileDirty(file);
}
} finally {
refreshedParents[0]++;
if (refreshedParents[0] == parentToSelectedChildren.size()) {
// all parents are refreshed
if (createdCvsIgnoreFiles.isEmpty()) {
refreshPanel(context);
} else {
addCvsIgnoreFilesToCvsAndRefreshPanel();
}
}
}
}
private void addCvsIgnoreFilesToCvsAndRefreshPanel() {
createAddFilesAction().actionPerformed(createContext(createdCvsIgnoreFiles, context));
}
private AddFileOrDirectoryAction createAddFilesAction() {
return new AddFileOrDirectoryAction(CvsBundle.message("adding.cvsignore.files.to.cvs.action.name"), Options.ON_FILE_ADDING) {
protected void onActionPerformed(CvsContext context, CvsTabbedWindow tabbedWindow, boolean successfully, CvsHandler handler) {
refreshPanel(context);
}
};
}
};
parent.refresh(true, true, runnable);
}
}
use of com.intellij.cvsSupport2.ui.CvsTabbedWindow in project intellij-community by JetBrains.
the class ImportAction method createCheckoutAction.
private AbstractAction createCheckoutAction(final boolean makeNewFilesReadOnly) {
return new AbstractAction(false) {
protected String getTitle(VcsContext context) {
return CvsBundle.message("operation.name.check.out.project");
}
protected CvsHandler getCvsHandler(CvsContext context) {
final Project project = context.getProject();
return CommandCvsHandler.createCheckoutHandler(myImportDetails.getCvsRoot(), new String[] { myImportDetails.getModuleName() }, myImportDetails.getBaseImportDirectory(), true, makeNewFilesReadOnly, project == null ? null : VcsConfiguration.getInstance(project).getCheckoutOption());
}
protected void onActionPerformed(CvsContext context, CvsTabbedWindow tabbedWindow, boolean successfully, CvsHandler handler) {
super.onActionPerformed(context, tabbedWindow, successfully, handler);
final Project project = context.getProject();
if (successfully) {
if (project != null) {
final VirtualFile importedRoot = CvsVfsUtil.findFileByIoFile(myImportDetails.getBaseImportDirectory());
updateDirectoryMappings(project, importedRoot);
}
}
}
/**
* Basically copied from GitInit/HgInit
*/
private void updateDirectoryMappings(Project project, VirtualFile mapRoot) {
if (project == null || project.isDefault()) {
return;
}
final VirtualFile projectBaseDir = project.getBaseDir();
if (projectBaseDir == null || !VfsUtil.isAncestor(projectBaseDir, mapRoot, false)) {
return;
}
mapRoot.refresh(false, false);
final String path = mapRoot.equals(projectBaseDir) ? "" : mapRoot.getPath();
ProjectLevelVcsManager manager = ProjectLevelVcsManager.getInstance(project);
manager.setDirectoryMappings(VcsUtil.addMapping(manager.getDirectoryMappings(), path, CvsVcs2.getInstance(project).getName()));
manager.updateActiveVcss();
}
};
}
Aggregations