void (@NotNull final AnActionEvent e) { final RepositoryTreeNode node = getSelectedNode(); if (node == null) { return; } RepositoryTreeNode rootNode = node; while (! rootNode.isRepositoryRoot()) { rootNode = (RepositoryTreeNode) rootNode.getParent(); } CopyOptionsDialog dialog = new CopyOptionsDialog(myProject, rootNode, node, !myMove); dialog.show(); VcsConfiguration.getInstance(myProject).saveCommitMessage(dialog.getCommitMessage()); if (dialog.isOK()) { Url dst = dialog.getTargetURL(); Url src = dialog.getSourceURL(); final String path = src.getPath(); final int folder = path.replace('\\', '/').lastIndexOf('/'); if (folder != -1) { final String lastFolder = path.substring(folder + 1); if (myMove && TRUNK_NAME.equalsIgnoreCase(lastFolder)) { final int result = Messages.showOkCancelDialog( myProject, message("dialog.message.confirm.move.folder", lastFolder), dialog.getTitle(), Messages.getWarningIcon() ); if (Messages.OK != result) return; } } String message = dialog.getCommitMessage(); doCopy(src, dst, myMove, message); final CopyMoveReloadHelper sourceReloader = myMove ? new MoveSourceReloader(node) : CopyMoveReloadHelper.EMPTY; final TargetReloader destinationReloader = new TargetReloader(dialog, node, rootNode, getRepositoryBrowser()); sourceReloader.doSynthetic(); destinationReloader.doSynthetic(); if ((! myMove) || (! Comparing.equal(sourceReloader.parent(), destinationReloader.parent()))) { destinationReloader.doRefresh(); } sourceReloader.doRefresh(); } }