Search in sources :

Example 6 with CvsTabbedWindow

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);
    }
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) CvsTabbedWindow(com.intellij.cvsSupport2.ui.CvsTabbedWindow) CvsHandler(com.intellij.cvsSupport2.cvshandlers.CvsHandler) CvsContext(com.intellij.cvsSupport2.actions.cvsContext.CvsContext) ArrayList(java.util.ArrayList) Refreshable(com.intellij.openapi.vcs.ui.Refreshable) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File)

Example 7 with CvsTabbedWindow

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();
        }
    };
}
Also used : VcsContext(com.intellij.openapi.vcs.actions.VcsContext) CvsTabbedWindow(com.intellij.cvsSupport2.ui.CvsTabbedWindow) VirtualFile(com.intellij.openapi.vfs.VirtualFile) Project(com.intellij.openapi.project.Project) CvsHandler(com.intellij.cvsSupport2.cvshandlers.CvsHandler) CommandCvsHandler(com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler) CvsContext(com.intellij.cvsSupport2.actions.cvsContext.CvsContext) ProjectLevelVcsManager(com.intellij.openapi.vcs.ProjectLevelVcsManager)

Aggregations

CvsTabbedWindow (com.intellij.cvsSupport2.ui.CvsTabbedWindow)4 Project (com.intellij.openapi.project.Project)4 CvsContext (com.intellij.cvsSupport2.actions.cvsContext.CvsContext)3 CvsHandler (com.intellij.cvsSupport2.cvshandlers.CvsHandler)3 VcsContext (com.intellij.openapi.vcs.actions.VcsContext)2 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 CvsBundle (com.intellij.CvsBundle)1 CvsRootConfiguration (com.intellij.cvsSupport2.config.CvsRootConfiguration)1 ImportConfiguration (com.intellij.cvsSupport2.config.ImportConfiguration)1 SelectCvsConfigurationDialog (com.intellij.cvsSupport2.config.ui.SelectCvsConfigurationDialog)1 CvsEnvironment (com.intellij.cvsSupport2.connections.CvsEnvironment)1 BrowserPanel (com.intellij.cvsSupport2.cvsBrowser.ui.BrowserPanel)1 CommandCvsHandler (com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler)1 FileSetToBeUpdated (com.intellij.cvsSupport2.cvshandlers.FileSetToBeUpdated)1 LoginPerformer (com.intellij.cvsSupport2.cvsoperations.common.LoginPerformer)1 EditorInfo (com.intellij.cvsSupport2.cvsoperations.cvsEdit.EditorInfo)1 EditorsPanel (com.intellij.cvsSupport2.cvsoperations.cvsEdit.ui.EditorsPanel)1 WatcherInfo (com.intellij.cvsSupport2.cvsoperations.cvsWatch.WatcherInfo)1 WatchersPanel (com.intellij.cvsSupport2.cvsoperations.cvsWatch.ui.WatchersPanel)1 AnActionEvent (com.intellij.openapi.actionSystem.AnActionEvent)1