summaryrefslogtreecommitdiff
path: root/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java')
-rw-r--r--plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java63
1 files changed, 25 insertions, 38 deletions
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java
index 5fe19963cf93..191acf387b86 100644
--- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java
+++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/RepositoryBrowserDialog.java
@@ -53,6 +53,7 @@ import org.jetbrains.idea.svn.SvnBundle;
import org.jetbrains.idea.svn.SvnUtil;
import org.jetbrains.idea.svn.SvnVcs;
import org.jetbrains.idea.svn.actions.BrowseRepositoryAction;
+import org.jetbrains.idea.svn.browse.DirectoryEntry;
import org.jetbrains.idea.svn.checkout.SvnCheckoutProvider;
import org.jetbrains.idea.svn.commandLine.SvnBindException;
import org.jetbrains.idea.svn.dialogs.browser.*;
@@ -60,7 +61,9 @@ import org.jetbrains.idea.svn.dialogs.browserCache.Expander;
import org.jetbrains.idea.svn.dialogs.browserCache.KeepingExpandedExpander;
import org.jetbrains.idea.svn.dialogs.browserCache.SyntheticWorker;
import org.jetbrains.idea.svn.history.SvnRepositoryLocation;
-import org.tmatesoft.svn.core.*;
+import org.tmatesoft.svn.core.SVNErrorCode;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.internal.util.SVNPathUtil;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc2.SvnTarget;
@@ -345,8 +348,8 @@ public class RepositoryBrowserDialog extends DialogWrapper {
if (node == null) {
return;
}
- boolean isDirectory = node.getUserObject() instanceof SVNURL ||
- (node.getSVNDirEntry() != null && node.getSVNDirEntry().getKind() == SVNNodeKind.DIR);
+ boolean isDirectory =
+ node.getUserObject() instanceof SVNURL || (node.getSVNDirEntry() != null && node.getSVNDirEntry().isDirectory());
String url = node.getURL().toDecodedString();
AbstractVcsHelper.getInstance(myProject)
@@ -500,14 +503,8 @@ public class RepositoryBrowserDialog extends DialogWrapper {
}
public void update(AnActionEvent e) {
- RepositoryTreeNode node = myBrowserComponent.getSelectedNode();
//e.getPresentation().setText(SvnBundle.message("repository.browser.new.folder.action"), true);
- if (node != null) {
- SVNDirEntry entry = node.getSVNDirEntry();
- e.getPresentation().setEnabled(entry == null || entry.getKind() == SVNNodeKind.DIR);
- } else {
- e.getPresentation().setEnabled(false);
- }
+ setEnabled(e, myBrowserComponent.getSelectedNode());
}
public void actionPerformed(AnActionEvent e) {
@@ -537,14 +534,8 @@ public class RepositoryBrowserDialog extends DialogWrapper {
protected class DiffAction extends AnAction {
public void update(AnActionEvent e) {
- RepositoryTreeNode node = getRepositoryBrowser().getSelectedNode();
e.getPresentation().setText("Compare With...", true);
- if (node != null) {
- SVNDirEntry entry = node.getSVNDirEntry();
- e.getPresentation().setEnabled(entry == null || entry.getKind() == SVNNodeKind.DIR);
- } else {
- e.getPresentation().setEnabled(false);
- }
+ setEnabled(e, getRepositoryBrowser().getSelectedNode());
}
public void actionPerformed(AnActionEvent e) {
@@ -854,14 +845,8 @@ public class RepositoryBrowserDialog extends DialogWrapper {
public void update(AnActionEvent e) {
e.getPresentation().setVisible(showImportAction());
e.getPresentation().setText(SvnBundle.message("repository.browser.import.action"));
- RepositoryTreeNode node = getRepositoryBrowser().getSelectedNode();
- final boolean running = ProjectLevelVcsManager.getInstance(myProject).isBackgroundVcsOperationRunning();
- if (node != null) {
- SVNDirEntry entry = node.getSVNDirEntry();
- e.getPresentation().setEnabled((entry == null || entry.getKind() == SVNNodeKind.DIR) && (! running));
- } else {
- e.getPresentation().setEnabled(false);
- }
+ setEnabled(e, getRepositoryBrowser().getSelectedNode(),
+ ProjectLevelVcsManager.getInstance(myProject).isBackgroundVcsOperationRunning());
}
public void actionPerformed(AnActionEvent e) {
@@ -897,13 +882,7 @@ public class RepositoryBrowserDialog extends DialogWrapper {
protected class CheckoutAction extends AnAction {
public void update(AnActionEvent e) {
e.getPresentation().setText("_Checkout...", true);
- RepositoryTreeNode node = getRepositoryBrowser().getSelectedNode();
- if (node != null) {
- SVNDirEntry entry = node.getSVNDirEntry();
- e.getPresentation().setEnabled(entry == null || entry.getKind() == SVNNodeKind.DIR);
- } else {
- e.getPresentation().setEnabled(false);
- }
+ setEnabled(e, getRepositoryBrowser().getSelectedNode());
}
public void actionPerformed(AnActionEvent e) {
final RepositoryTreeNode selectedNode = getSelectedNode();
@@ -914,6 +893,14 @@ public class RepositoryBrowserDialog extends DialogWrapper {
}
}
+ private static void setEnabled(@NotNull AnActionEvent e, @Nullable RepositoryTreeNode node) {
+ setEnabled(e, node, false);
+ }
+
+ private static void setEnabled(@NotNull AnActionEvent e, @Nullable RepositoryTreeNode node, boolean isRunning) {
+ e.getPresentation().setEnabled(node != null && (node.getSVNDirEntry() == null || node.getSVNDirEntry().isDirectory()) && !isRunning);
+ }
+
protected class BrowseChangesAction extends AnAction {
public BrowseChangesAction() {
super(SvnBundle.message("repository.browser.browse.changes.action"),
@@ -1051,14 +1038,14 @@ public class RepositoryBrowserDialog extends DialogWrapper {
SVNURL url = selectedNode.getURL();
String relativePath = "";
- final SVNDirEntry dirEntry = selectedNode.getSVNDirEntry();
- if (dirEntry != null) {
- if (dirEntry.getRepositoryRoot() != null) {
- if (! dirEntry.getRepositoryRoot().equals(url)) {
- relativePath = SVNPathUtil.getRelativePath(dirEntry.getRepositoryRoot().toString(), url.toDecodedString());
+ final DirectoryEntry entry = selectedNode.getSVNDirEntry();
+ if (entry != null) {
+ if (entry.getRepositoryRoot() != null) {
+ if (! entry.getRepositoryRoot().equals(url)) {
+ relativePath = SVNPathUtil.getRelativePath(entry.getRepositoryRoot().toString(), url.toDecodedString());
}
} else {
- relativePath = dirEntry.getRelativePath();
+ relativePath = entry.getRelativePath();
}
} else {
relativePath = url.getPath();